aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/gcode.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/gcode.js')
-rw-r--r--node_modules/highlight.js/lib/languages/gcode.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/gcode.js b/node_modules/highlight.js/lib/languages/gcode.js
new file mode 100644
index 000000000..2aea84701
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/gcode.js
@@ -0,0 +1,66 @@
+module.exports = function(hljs) {
+ var GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
+ var GCODE_CLOSE_RE = '\\%';
+ var GCODE_KEYWORDS =
+ 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +
+ 'EQ LT GT NE GE LE OR XOR';
+ var GCODE_START = {
+ className: 'meta',
+ begin: '([O])([0-9]+)'
+ };
+ var GCODE_CODE = [
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.COMMENT(/\(/, /\)/),
+ hljs.inherit(hljs.C_NUMBER_MODE, {begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE}),
+ hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
+ hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
+ {
+ className: 'name',
+ begin: '([G])([0-9]+\\.?[0-9]?)'
+ },
+ {
+ className: 'name',
+ begin: '([M])([0-9]+\\.?[0-9]?)'
+ },
+ {
+ className: 'attr',
+ begin: '(VC|VS|#)',
+ end: '(\\d+)'
+ },
+ {
+ className: 'attr',
+ begin: '(VZOFX|VZOFY|VZOFZ)'
+ },
+ {
+ className: 'built_in',
+ begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)',
+ end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])'
+ },
+ {
+ className: 'symbol',
+ variants: [
+ {
+ begin: 'N', end: '\\d+',
+ illegal: '\\W'
+ }
+ ]
+ }
+ ];
+
+ return {
+ aliases: ['nc'],
+ // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.
+ // However, most prefer all uppercase and uppercase is customary.
+ case_insensitive: true,
+ lexemes: GCODE_IDENT_RE,
+ keywords: GCODE_KEYWORDS,
+ contains: [
+ {
+ className: 'meta',
+ begin: GCODE_CLOSE_RE
+ },
+ GCODE_START
+ ].concat(GCODE_CODE)
+ };
+}; \ No newline at end of file