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