UNPKG

highlight-ts

Version:

Highlight.JS in TypeScript (and ES6).

71 lines 2.16 kB
/* Language: G-code (ISO 6983) Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com> Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls. */ import * as tslib_1 from "tslib"; import { C_LINE_COMMENT_MODE, C_BLOCK_COMMENT_MODE, COMMENT, C_NUMBER_MODE, C_NUMBER_RE, APOS_STRING_MODE, QUOTE_STRING_MODE, } from '../common'; 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 = [ C_LINE_COMMENT_MODE, C_BLOCK_COMMENT_MODE, COMMENT(/\(/, /\)/), tslib_1.__assign({}, C_NUMBER_MODE, { begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + C_NUMBER_RE }), tslib_1.__assign({}, APOS_STRING_MODE, { illegal: undefined }), tslib_1.__assign({}, QUOTE_STRING_MODE, { illegal: undefined }), { 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' } ] } ]; export var GCode = { name: 'gcode', 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) }; //# sourceMappingURL=gcode.js.map