UNPKG

highlight-ts

Version:

Highlight.JS in TypeScript (and ES6).

73 lines 2.19 kB
"use strict"; /* 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. */ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var common_1 = require("../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 = [ common_1.C_LINE_COMMENT_MODE, common_1.C_BLOCK_COMMENT_MODE, common_1.COMMENT(/\(/, /\)/), tslib_1.__assign({}, common_1.C_NUMBER_MODE, { begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + common_1.C_NUMBER_RE }), tslib_1.__assign({}, common_1.APOS_STRING_MODE, { illegal: undefined }), tslib_1.__assign({}, common_1.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' } ] } ]; exports.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