2
"scopeName": "source.gcode",
3
"name": "VSCode GCode Syntax",
13
"include": "#comments"
16
"include": "#speedsfeeds"
19
"include": "#prognumbers"
28
"include": "#modifiers"
31
"include": "#macrovars"
34
"include": "#keywords"
37
"include": "#operators"
40
"include": "#bracket-expression"
47
"name": "comment.gcode",
51
"name": "comment.gcode",
60
"match": "(GOTO(?>\\d+))|(IF)|(EQ)|(NE)|(LT)|(GT)|(LE)|(GE)|(DO(?>\\d+))|(WHILE)|(WH)|(END(?>\\d+))|(AND)|(OR)|(XOR)",
61
"name": "keyword.control.gcode"
64
"match": "[gG](1)?5[4-9](.1)?\\s?(P[0-9]{1,3})?",
65
"name": "constant.numeric.gcode"
68
"match": "[gG]1[1-2][0-9]",
69
"name": "constant.numeric.gcode"
72
"match": "[gG]15\\s?(H[0-9]{1,2})?",
73
"name": "constant.numeric.gcode"
76
"match": "[gG][0-9]{1,3}(\\.[0-9])?",
77
"name": "markup.bold.gcode"
80
"match": "[mM][0-9]{1,3}",
81
"name": "keyword.operator.quantifier.regexp.gcode"
85
"name": "string.gcode"
92
"match": "(SIN)|(COS)|(TAN)|(ASIN)|(ACOS)|(ATAN)|(FIX)|(FUP)|(LN)|(ROUND)|(SQRT)",
93
"name": "support.constant.math.gcode"
96
"match": "(FIX)|(FUP)|(ROUND)|(ABS)|(MOD)",
97
"name": "support.constant.math.gcode"
100
"match": "(\\+)|(\\*)|(\\/)|(\\*\\*)",
101
"name": "support.constant.math.gcode"
105
"name": "invalid.gcode"
112
"match": "([sS])\\s?(\\d+|(?=[#\\[]))",
113
"name": "constant.language.gcode"
116
"match": "([eEfF])\\s?(\\d*\\.?\\d+\\.?|\\.?(?=[#\\[]))",
117
"name": "constant.language.gcode"
124
"match": "(^[nN])(\\d+)",
125
"name": "constant.numeric.gcode"
128
"match": "(^[oO])(\\d+)",
129
"name": "string.regexp.gcode"
132
"match": "([pP])\\s?(\\d?\\.?\\d+\\.?|\\.?(?=[#\\[]))",
133
"name": "string.regexp.gcode"
140
"match": "([xX])\\s?(\\-?\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))",
141
"name": "string.gcode"
144
"match": "([yY])\\s?(\\-?\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))",
145
"name": "string.gcode"
148
"match": "([zZ])\\s?(\\-?\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))",
149
"name": "invalid.gcode"
152
"match": "([aAbBcC])\\s?(\\-?\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))",
153
"name": "constant.character.escape.gcode"
160
"match": "([dD])\\s?(\\d+\\.?\\d*|(?=[#\\[]))",
161
"name": "constant.character.gcode"
164
"match": "([hH])\\s?(\\d+\\.?\\d*|(?=[#\\[]))",
165
"name": "constant.character.gcode"
168
"match": "([tT])\\s?(\\d+\\.?\\d*|(?=[#\\[]))",
169
"name": "constant.character.gcode"
176
"match": "([iIjJkK])(\\-?\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]))",
177
"name": "constant.character.escape.gcode"
180
"match": "([qQrR])(\\-?\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]]))",
181
"name": "support.constant.math.gcode"
184
"match": "([uUwW])(\\-?\\d?\\.?\\d+\\.?|\\-?\\.?(?=[#\\[]]))",
185
"name": "support.constant.math.gcode"
192
"match": "[#][0-9]+",
193
"name": "variable.other.gcode"
196
"match": "[#][\\[].+[\\]]",
197
"name": "variable.other.gcode"
201
"bracket-expression": {
206
"name": "punctuation.paren.open"
211
"name": "punctuation.paren.close"
214
"name": "expression.group",