Skip to content

Commit

Permalink
updated syntax definition for SetlX v2.5.0 (including BREAKING changes)
Browse files Browse the repository at this point in the history
- the syntax definition for Terms was adapted to the changes made in SetlX v2.5.0
- some parts of the syntax definition were moved around and reorganized to hopefully provide a more reliable system
  • Loading branch information
LucaVazz committed Oct 10, 2016
1 parent 777f089 commit f144819
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 123 deletions.
51 changes: 15 additions & 36 deletions SetlX.YAML-tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,8 @@ uuid: 8be6972f-85b1-4d39-b3b5-68bbfdb44d84
patterns:
- include: '#statements'
- include: '#fucntions'
- include: '#values'
- include: '#keywords'
- name: meta.variable.setlx
match: ([a-z]\w*)
- include: '#values'


repository:
Expand Down Expand Up @@ -104,14 +102,13 @@ repository:
match: ((continue)|(break))
for:
name: meta.for.setlx
begin: (for)
begin: (for )
beginCaptures:
'1': {name: keyword.control.setlx}
patterns:
- name: meta.for.iterators.setlx
begin: (\()
patterns:
- include: '#iterator-chain'
- name: keyword.operator.setlx
match: (\|)
end: (\)\s*\{)
Expand Down Expand Up @@ -208,28 +205,24 @@ repository:
- include: '#scan'
match:
name: meta.match.setlx
begin: (match)
begin: (match)(\s*\(.*\))\s*(\{)
beginCaptures:
'1': {name: keyword.control.setlx}
patterns:
- begin: (\()
name: meta.match.expression.setlx
patterns:
- include: '$self'
end: (\)\s*\{)
- name: meta.match.case.setlx
begin: (case)
beginCaptures:
'1': {name: keyword.control.setlx}
patterns:
- include: '$self'
- name: keyword.control.setlx
match: (\|)
end: (\:)
endCaptures:
'1': {name: keyword.control.setlx}
- include: '#regex-branch'
- name: keyword.control.setlx
match: (default\s*\:)
match: ((default)(\s)*(\:))
- include: '$self'
end: (\})
scan:
Expand Down Expand Up @@ -374,12 +367,10 @@ repository:
patterns:
- name: keyword.operator.setlx
match: (\:)
- include: '#iterator-chain'
- name: meta.collection.conditions.setlx
patterns:
- name: keyword.operator.setlx
match: (\|)
- include: '#iterator-chain'

lin-alg:
patterns:
Expand Down Expand Up @@ -466,7 +457,7 @@ repository:
- name: keyword.operator.product.setlx
match: (\*)
- name: keyword.operator.product.setlx
match: (/)
match: (/)(?!/|\*)
- name: keyword.operator.product.setlx
match: (\\)
- name: keyword.operator.product.setlx
Expand All @@ -487,8 +478,6 @@ repository:
match: (\-)
- name: keyword.operator.prefix.setlx
match: (\+)
- name: keyword.operator.prefix.setlx
match: (\@)
exists:
name: keyword.operator.setlx
match: (exists)
Expand All @@ -498,14 +487,6 @@ repository:
negator:
name: keyword.operator.setlx
match: (\!)
iterator-chain:
name: meta.iteratorchain.setlx
patterns:
- include: '#iterator-marker'
- match: \,
iterator-marker: # a in x
name: keyword.operator.setlx
match: (in( \s)+)
range-sign: # ..
name: keyword.operator.setlx
match: (\.\.)
Expand All @@ -516,6 +497,7 @@ repository:
patterns:
- include: '#atomic-languageConstant'
- include: '#atomic-functionSymbol'
- include: '#atomic-variable-name'
- include: '#atomic-number'
- include: '#atomic-double'
- include: '#atomic-string'
Expand All @@ -542,22 +524,19 @@ repository:
atomic-functionSymbol:
comment: combination of all three ways to defina a functionSymbol for a term
patterns:
- include: '#atomic-functionSymbol-capital'
- include: '#atomic-functionSymbol-escaped'
- include: '#atomic-functionSymbol-internal'
atomic-functionSymbol-capital:
comment: atomic value, functionSymbol for a term, written with an initial capital letter
name: entity.functionSymbol.setlx
match: ([A-Z])([a-zA-Z0-9]|_)*
atomic-functionSymbol-escaped:
comment: atomic value, functionSymbol for a term, written with an initial @ as escape-character
# used internally for definitions
name: entity.functionSymbol.setlx
match: ((@)([a-z]))([a-zA-Z0-9]|_)*
comment: atomic value, functionSymbol for a term, used by the user to define a custom Term
name: entity.functionSymbol.escaped.setlx
match: ((@[a-zA-Z])([a-zA-Z0-9]|_)+)
atomic-functionSymbol-internal:
comment: atomic value, functionSymbol for a term, used internally for definitions
name: entity.functionSymbol.setlx
match: (\^)([a-zA-Z0-9]|_)*
name: entity.functionSymbol.internal.setlx
match: ((@@@[a-zA-Z])([a-zA-Z0-9]|_)+)
atomic-variable-name:
name: meta.variable.setlx
match: (([a-zA-Z])([a-zA-Z0-9]|_)+)
atomic-number:
comment: combination of all ways to define a nuber
patterns:
Expand Down
112 changes: 26 additions & 86 deletions SetlX.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,13 @@
<key>include</key>
<string>#fucntions</string>
</dict>
<dict>
<key>include</key>
<string>#values</string>
</dict>
<dict>
<key>include</key>
<string>#keywords</string>
</dict>
<dict>
<key>match</key>
<string>([a-z]\w*)</string>
<key>name</key>
<string>meta.variable.setlx</string>
<key>include</key>
<string>#values</string>
</dict>
</array>
<key>repository</key>
Expand Down Expand Up @@ -170,10 +164,6 @@
<string>combination of all three ways to defina a functionSymbol for a term</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#atomic-functionSymbol-capital</string>
</dict>
<dict>
<key>include</key>
<string>#atomic-functionSymbol-escaped</string>
Expand All @@ -184,32 +174,23 @@
</dict>
</array>
</dict>
<key>atomic-functionSymbol-capital</key>
<dict>
<key>comment</key>
<string>atomic value, functionSymbol for a term, written with an initial capital letter</string>
<key>match</key>
<string>([A-Z])([a-zA-Z0-9]|_)*</string>
<key>name</key>
<string>entity.functionSymbol.setlx</string>
</dict>
<key>atomic-functionSymbol-escaped</key>
<dict>
<key>comment</key>
<string>atomic value, functionSymbol for a term, written with an initial @ as escape-character</string>
<string>atomic value, functionSymbol for a term, used by the user to define a custom Term</string>
<key>match</key>
<string>((@)([a-z]))([a-zA-Z0-9]|_)*</string>
<string>((@[a-zA-Z])([a-zA-Z0-9]|_)+)</string>
<key>name</key>
<string>entity.functionSymbol.setlx</string>
<string>entity.functionSymbol.escaped.setlx</string>
</dict>
<key>atomic-functionSymbol-internal</key>
<dict>
<key>comment</key>
<string>atomic value, functionSymbol for a term, used internally for definitions</string>
<key>match</key>
<string>(\^)([a-zA-Z0-9]|_)*</string>
<string>((@@@[a-zA-Z])([a-zA-Z0-9]|_)+)</string>
<key>name</key>
<string>entity.functionSymbol.setlx</string>
<string>entity.functionSymbol.internal.setlx</string>
</dict>
<key>atomic-int</key>
<dict>
Expand Down Expand Up @@ -351,6 +332,13 @@
<key>name</key>
<string>constant.language.setlx</string>
</dict>
<key>atomic-variable-name</key>
<dict>
<key>match</key>
<string>(([a-zA-Z])([a-zA-Z0-9]|_)+)</string>
<key>name</key>
<string>meta.variable.setlx</string>
</dict>
<key>atomics</key>
<dict>
<key>comment</key>
Expand All @@ -367,6 +355,10 @@
<key>include</key>
<string>#atomic-functionSymbol</string>
</dict>
<dict>
<key>include</key>
<string>#atomic-variable-name</string>
</dict>
<dict>
<key>include</key>
<string>#atomic-number</string>
Expand Down Expand Up @@ -800,7 +792,7 @@
<key>for</key>
<dict>
<key>begin</key>
<string>(for)</string>
<string>(for )</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
Expand All @@ -824,10 +816,6 @@
<string>meta.for.iterators.setlx</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#iterator-chain</string>
</dict>
<dict>
<key>match</key>
<string>(\|)</string>
Expand Down Expand Up @@ -924,10 +912,6 @@
<key>name</key>
<string>keyword.operator.setlx</string>
</dict>
<dict>
<key>include</key>
<string>#iterator-chain</string>
</dict>
</array>
</dict>
<dict>
Expand All @@ -941,10 +925,6 @@
<key>name</key>
<string>keyword.operator.setlx</string>
</dict>
<dict>
<key>include</key>
<string>#iterator-chain</string>
</dict>
</array>
</dict>
</array>
Expand Down Expand Up @@ -993,29 +973,6 @@
</dict>
</array>
</dict>
<key>iterator-chain</key>
<dict>
<key>name</key>
<string>meta.iteratorchain.setlx</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#iterator-marker</string>
</dict>
<dict>
<key>match</key>
<string>\,</string>
</dict>
</array>
</dict>
<key>iterator-marker</key>
<dict>
<key>match</key>
<string>(in( \s)+)</string>
<key>name</key>
<string>keyword.operator.setlx</string>
</dict>
<key>keywords</key>
<dict>
<key>comment</key>
Expand Down Expand Up @@ -1195,7 +1152,7 @@
<key>match</key>
<dict>
<key>begin</key>
<string>(match)</string>
<string>(match)(\s*\(.*\))\s*(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
Expand All @@ -1210,21 +1167,6 @@
<string>meta.match.setlx</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\()</string>
<key>end</key>
<string>(\)\s*\{)</string>
<key>name</key>
<string>meta.match.expression.setlx</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(case)</string>
Expand All @@ -1250,6 +1192,10 @@
<string>meta.match.case.setlx</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
<dict>
<key>match</key>
<string>(\|)</string>
Expand All @@ -1264,7 +1210,7 @@
</dict>
<dict>
<key>match</key>
<string>(default\s*\:)</string>
<string>((default)(\s)*(\:))</string>
<key>name</key>
<string>keyword.control.setlx</string>
</dict>
Expand Down Expand Up @@ -1335,12 +1281,6 @@
<key>name</key>
<string>keyword.operator.prefix.setlx</string>
</dict>
<dict>
<key>match</key>
<string>(\@)</string>
<key>name</key>
<string>keyword.operator.prefix.setlx</string>
</dict>
</array>
</dict>
<key>procedure</key>
Expand Down Expand Up @@ -1383,7 +1323,7 @@
</dict>
<dict>
<key>match</key>
<string>(/)</string>
<string>(/)(?!/|\*)</string>
<key>name</key>
<string>keyword.operator.product.setlx</string>
</dict>
Expand Down
3 changes: 2 additions & 1 deletion messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
"install": "messages/install.txt",
"1.1.0": "messages/1-1-0.txt",
"1.1.1": "messages/1-1-1.txt",
"1.1.2": "messages/1-1-2.txt"
"1.1.2": "messages/1-1-2.txt",
"1.2.0": "messages/1-2-0.txt"
}
Loading

0 comments on commit f144819

Please sign in to comment.