tp top-level property

Language tp
final

Implementation

final tp = Language(
  id: "tp",
  refs: {
    '~contains~0~contains~2': Mode(
      className: "symbol",
      begin: ":[^\\]]+",
    ),
    '~contains~0~contains~1': Mode(
      className: "number",
      begin: "[1-9][0-9]*",
      relevance: 0,
    ),
  },
  name: "TP",
  keywords: {
    "keyword": [
      "ABORT",
      "ACC",
      "ADJUST",
      "AND",
      "AP_LD",
      "BREAK",
      "CALL",
      "CNT",
      "COL",
      "CONDITION",
      "CONFIG",
      "DA",
      "DB",
      "DIV",
      "DETECT",
      "ELSE",
      "END",
      "ENDFOR",
      "ERR_NUM",
      "ERROR_PROG",
      "FINE",
      "FOR",
      "GP",
      "GUARD",
      "INC",
      "IF",
      "JMP",
      "LINEAR_MAX_SPEED",
      "LOCK",
      "MOD",
      "MONITOR",
      "OFFSET",
      "Offset",
      "OR",
      "OVERRIDE",
      "PAUSE",
      "PREG",
      "PTH",
      "RT_LD",
      "RUN",
      "SELECT",
      "SKIP",
      "Skip",
      "TA",
      "TB",
      "TO",
      "TOOL_OFFSET",
      "Tool_Offset",
      "UF",
      "UT",
      "UFRAME_NUM",
      "UTOOL_NUM",
      "UNLOCK",
      "WAIT",
      "X",
      "Y",
      "Z",
      "W",
      "P",
      "R",
      "STRLEN",
      "SUBSTR",
      "FINDSTR",
      "VOFFSET",
      "PROG",
      "ATTR",
      "MN",
      "POS"
    ],
    "literal": [
      "ON",
      "OFF",
      "max_speed",
      "LPOS",
      "JPOS",
      "ENABLE",
      "DISABLE",
      "START",
      "STOP",
      "RESET"
    ]
  },
  contains: [
    Mode(
      className: "built_in",
      begin:
          "(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",
      end: "\\]",
      contains: [
        ModeSelfReference(),
        ModeReference('~contains~0~contains~1'),
        ModeReference('~contains~0~contains~2'),
      ],
    ),
    Mode(
      className: "built_in",
      begin: "(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",
      end: "\\]",
      contains: [
        ModeSelfReference(),
        ModeReference('~contains~0~contains~1'),
        QUOTE_STRING_MODE,
        ModeReference('~contains~0~contains~2'),
      ],
    ),
    Mode(
      className: "keyword",
      begin: "/(PROG|ATTR|MN|POS|END)\\b",
    ),
    Mode(
      className: "keyword",
      begin: "(CALL|RUN|POINT_LOGIC|LBL)\\b",
    ),
    Mode(
      className: "keyword",
      begin: "\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)",
    ),
    Mode(
      className: "number",
      begin: "\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",
      relevance: 0,
    ),
    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}",
        ),
      ],
    ),
    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}",
        ),
      ],
    ),
    Mode(
      scope: "comment",
      begin: "--eg:",
      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}",
        ),
      ],
    ),
    QUOTE_STRING_MODE,
    Mode(
      className: "string",
      begin: "'",
      end: "'",
    ),
    C_NUMBER_MODE,
    Mode(
      className: "variable",
      begin: "\\\$[A-Za-z0-9_]+",
    ),
  ],
);