{"version":3,"file":"gcode.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/gcode.js"],"sourcesContent":["/*\n Language: G-code (ISO 6983)\n Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>\n Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.\n Website: https://www.sis.se/api/document/preview/911952/\n Category: hardware\n */\n\nfunction gcode(hljs) {\n  const GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';\n  const GCODE_CLOSE_RE = '%';\n  const GCODE_KEYWORDS = {\n    $pattern: GCODE_IDENT_RE,\n    keyword: 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT '\n      + 'EQ LT GT NE GE LE OR XOR'\n  };\n  const GCODE_START = {\n    className: 'meta',\n    begin: '([O])([0-9]+)'\n  };\n  const NUMBER = hljs.inherit(hljs.C_NUMBER_MODE, { begin: '([-+]?((\\\\.\\\\d+)|(\\\\d+)(\\\\.\\\\d*)?))|' + hljs.C_NUMBER_RE });\n  const GCODE_CODE = [\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    hljs.COMMENT(/\\(/, /\\)/),\n    NUMBER,\n    hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null }),\n    hljs.inherit(hljs.QUOTE_STRING_MODE, { illegal: null }),\n    {\n      className: 'name',\n      begin: '([G])([0-9]+\\\\.?[0-9]?)'\n    },\n    {\n      className: 'name',\n      begin: '([M])([0-9]+\\\\.?[0-9]?)'\n    },\n    {\n      className: 'attr',\n      begin: '(VC|VS|#)',\n      end: '(\\\\d+)'\n    },\n    {\n      className: 'attr',\n      begin: '(VZOFX|VZOFY|VZOFZ)'\n    },\n    {\n      className: 'built_in',\n      begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\\\[)',\n      contains: [ NUMBER ],\n      end: '\\\\]'\n    },\n    {\n      className: 'symbol',\n      variants: [\n        {\n          begin: 'N',\n          end: '\\\\d+',\n          illegal: '\\\\W'\n        }\n      ]\n    }\n  ];\n\n  return {\n    name: 'G-code (ISO 6983)',\n    aliases: [ 'nc' ],\n    // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.\n    // However, most prefer all uppercase and uppercase is customary.\n    case_insensitive: true,\n    keywords: GCODE_KEYWORDS,\n    contains: [\n      {\n        className: 'meta',\n        begin: GCODE_CLOSE_RE\n      },\n      GCODE_START\n    ].concat(GCODE_CODE)\n  };\n}\n\nmodule.exports = gcode;\n"],"names":["gcode","hljs","GCODE_IDENT_RE","GCODE_CLOSE_RE","GCODE_KEYWORDS","GCODE_START","NUMBER","GCODE_CODE","gcode_1"],"mappings":";;;;AAQA,WAASA,EAAMC,GAAM;AACnB,UAAMC,IAAiB,qBACjBC,IAAiB,KACjBC,IAAiB;AAAA,MACrB,UAAUF;AAAA,MACV,SAAS;AAAA,IAEb,GACQG,IAAc;AAAA,MAClB,WAAW;AAAA,MACX,OAAO;AAAA,IACX,GACQC,IAASL,EAAK,QAAQA,EAAK,eAAe,EAAE,OAAO,yCAAyCA,EAAK,aAAa,GAC9GM,IAAa;AAAA,MACjBN,EAAK;AAAA,MACLA,EAAK;AAAA,MACLA,EAAK,QAAQ,MAAM,IAAI;AAAA,MACvBK;AAAA,MACAL,EAAK,QAAQA,EAAK,kBAAkB,EAAE,SAAS,MAAM;AAAA,MACrDA,EAAK,QAAQA,EAAK,mBAAmB,EAAE,SAAS,MAAM;AAAA,MACtD;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA;MAET;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA;MAET;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA,QACP,KAAK;AAAA;MAEP;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA;MAET;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA,QACP,UAAU,CAAEK,CAAM;AAAA,QAClB,KAAK;AAAA;MAEP;AAAA,QACE,WAAW;AAAA,QACX,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,KAAK;AAAA,YACL,SAAS;AAAA;;;IAInB;AAEE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,CAAE,IAAI;AAAA;AAAA;AAAA,MAGf,kBAAkB;AAAA,MAClB,UAAUF;AAAA,MACV,UAAU;AAAA,QACR;AAAA,UACE,WAAW;AAAA,UACX,OAAOD;AAAA;QAETE;AAAA,MACN,EAAM,OAAOE,CAAU;AAAA,IACvB;AAAA,EACA;AAEA,SAAAC,IAAiBR;;","x_google_ignoreList":[0]}