1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | function tp(hljs) {
|
8 | const TPID = {
|
9 | className: 'number',
|
10 | begin: '[1-9][0-9]*',
|
11 | relevance: 0
|
12 | };
|
13 | const TPLABEL = {
|
14 | className: 'symbol',
|
15 | begin: ':[^\\]]+'
|
16 | };
|
17 | const TPDATA = {
|
18 | className: 'built_in',
|
19 | begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|' +
|
20 | 'TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[',
|
21 | end: '\\]',
|
22 | contains: [
|
23 | 'self',
|
24 | TPID,
|
25 | TPLABEL
|
26 | ]
|
27 | };
|
28 | const TPIO = {
|
29 | className: 'built_in',
|
30 | begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[',
|
31 | end: '\\]',
|
32 | contains: [
|
33 | 'self',
|
34 | TPID,
|
35 | hljs.QUOTE_STRING_MODE,
|
36 | TPLABEL
|
37 | ]
|
38 | };
|
39 |
|
40 | const KEYWORDS = [
|
41 | "ABORT",
|
42 | "ACC",
|
43 | "ADJUST",
|
44 | "AND",
|
45 | "AP_LD",
|
46 | "BREAK",
|
47 | "CALL",
|
48 | "CNT",
|
49 | "COL",
|
50 | "CONDITION",
|
51 | "CONFIG",
|
52 | "DA",
|
53 | "DB",
|
54 | "DIV",
|
55 | "DETECT",
|
56 | "ELSE",
|
57 | "END",
|
58 | "ENDFOR",
|
59 | "ERR_NUM",
|
60 | "ERROR_PROG",
|
61 | "FINE",
|
62 | "FOR",
|
63 | "GP",
|
64 | "GUARD",
|
65 | "INC",
|
66 | "IF",
|
67 | "JMP",
|
68 | "LINEAR_MAX_SPEED",
|
69 | "LOCK",
|
70 | "MOD",
|
71 | "MONITOR",
|
72 | "OFFSET",
|
73 | "Offset",
|
74 | "OR",
|
75 | "OVERRIDE",
|
76 | "PAUSE",
|
77 | "PREG",
|
78 | "PTH",
|
79 | "RT_LD",
|
80 | "RUN",
|
81 | "SELECT",
|
82 | "SKIP",
|
83 | "Skip",
|
84 | "TA",
|
85 | "TB",
|
86 | "TO",
|
87 | "TOOL_OFFSET",
|
88 | "Tool_Offset",
|
89 | "UF",
|
90 | "UT",
|
91 | "UFRAME_NUM",
|
92 | "UTOOL_NUM",
|
93 | "UNLOCK",
|
94 | "WAIT",
|
95 | "X",
|
96 | "Y",
|
97 | "Z",
|
98 | "W",
|
99 | "P",
|
100 | "R",
|
101 | "STRLEN",
|
102 | "SUBSTR",
|
103 | "FINDSTR",
|
104 | "VOFFSET",
|
105 | "PROG",
|
106 | "ATTR",
|
107 | "MN",
|
108 | "POS"
|
109 | ];
|
110 | const LITERALS = [
|
111 | "ON",
|
112 | "OFF",
|
113 | "max_speed",
|
114 | "LPOS",
|
115 | "JPOS",
|
116 | "ENABLE",
|
117 | "DISABLE",
|
118 | "START",
|
119 | "STOP",
|
120 | "RESET"
|
121 | ];
|
122 |
|
123 | return {
|
124 | name: 'TP',
|
125 | keywords: {
|
126 | keyword: KEYWORDS,
|
127 | literal: LITERALS
|
128 | },
|
129 | contains: [
|
130 | TPDATA,
|
131 | TPIO,
|
132 | {
|
133 | className: 'keyword',
|
134 | begin: '/(PROG|ATTR|MN|POS|END)\\b'
|
135 | },
|
136 | {
|
137 |
|
138 | className: 'keyword',
|
139 | begin: '(CALL|RUN|POINT_LOGIC|LBL)\\b'
|
140 | },
|
141 | {
|
142 | |
143 |
|
144 | className: 'keyword',
|
145 | begin: '\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'
|
146 | },
|
147 | {
|
148 |
|
149 | className: 'number',
|
150 | begin: '\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b',
|
151 | relevance: 0
|
152 | },
|
153 | hljs.COMMENT('//', '[;$]'),
|
154 | hljs.COMMENT('!', '[;$]'),
|
155 | hljs.COMMENT('--eg:', '$'),
|
156 | hljs.QUOTE_STRING_MODE,
|
157 | {
|
158 | className: 'string',
|
159 | begin: '\'',
|
160 | end: '\''
|
161 | },
|
162 | hljs.C_NUMBER_MODE,
|
163 | {
|
164 | className: 'variable',
|
165 | begin: '\\$[A-Za-z0-9_]+'
|
166 | }
|
167 | ]
|
168 | };
|
169 | }
|
170 |
|
171 | export { tp as default };
|