gcode top-level property
Language
gcode
final
Implementation
final gcode = Language(
id: "gcode",
refs: {
'~contains~5': Mode(
scope: "number",
begin:
"([-+]?((\\.\\d+)|(\\d+)(\\.\\d*)?))|(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
relevance: 0,
),
},
name: "G-code (ISO 6983)",
aliases: ["nc"],
case_insensitive: true,
keywords: {
"\$pattern": "[A-Z_][A-Z0-9_.]*",
"keyword":
"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"
},
contains: [
Mode(
className: "meta",
begin: "%",
),
Mode(
className: "meta",
begin: "([O])([0-9]+)",
),
C_LINE_COMMENT_MODE,
C_BLOCK_COMMENT_MODE,
Mode(
scope: "comment",
begin: "\\(",
end: "\\)",
contains: [
Mode(
scope: "doctag",
begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
end: "(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",
excludeBegin: true,
relevance: 0,
),
Mode(
begin:
"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
),
],
),
ModeReference('~contains~5'),
Mode(
scope: "string",
begin: "'",
end: "'",
illegal: null,
contains: [
BACKSLASH_ESCAPE,
],
),
Mode(
scope: "string",
begin: "\"",
end: "\"",
illegal: null,
contains: [
BACKSLASH_ESCAPE,
],
),
Mode(
className: "name",
begin: "([G])([0-9]+\\.?[0-9]?)",
),
Mode(
className: "name",
begin: "([M])([0-9]+\\.?[0-9]?)",
),
Mode(
className: "attr",
begin: "(VC|VS|#)",
end: "(\\d+)",
),
Mode(
className: "attr",
begin: "(VZOFX|VZOFY|VZOFZ)",
),
Mode(
className: "built_in",
begin: "(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",
contains: [
ModeReference('~contains~5'),
],
end: "\\]",
),
Mode(
className: "symbol",
variants: [
Mode(
begin: "N",
end: "\\d+",
illegal: "\\W",
),
],
),
],
);