-
Notifications
You must be signed in to change notification settings - Fork 2
/
syntax.jisonlex
101 lines (91 loc) · 3.88 KB
/
syntax.jisonlex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
digit [0-9]
name [a-zA-Z_][a-zA-Z_0-9]*
name_scope ([a-zA-Z_][a-zA-Z_0-9]*\:\:)*[a-zA-Z_][a-zA-Z_0-9]*
%%
\s+ /* skip whitespace */
"//".* /* ignore comment */
"/*"[\w\W]*?"*/" /* ignore comment */
"..." return yytext;
".." return yytext;
"::" return yytext;
"->" return yytext;
"++" return yytext;
"--" return yytext;
"+=" return yytext;
"-=" return yytext;
"*=" return yytext;
"/=" return yytext;
"%=" return yytext;
"^=" return yytext;
"|=" return yytext;
"&=" return yytext;
"<<=" return yytext;
">>=" return yytext;
"==" return yytext;
"!=" return yytext;
"$=" return yytext;
"!$=" return yytext;
"||" return yytext;
"&&" return yytext;
"<=" return yytext;
">=" return yytext;
"<" return yytext;
">" return yytext;
"+" return yytext;
"-" return yytext;
"*" return yytext;
"/" return yytext;
"%" return yytext;
"&" return yytext;
"^" return yytext;
"|" return yytext;
"=" return yytext;
"(" return yytext;
")" return yytext;
"[" return yytext;
"]" return yytext;
"{" return yytext;
"}" return yytext;
"<" return yytext;
">" return yytext;
":" return yytext;
"." return yytext;
";" return yytext;
"," return yytext;
"@" return yytext;
"SPC" return yytext;
"TAB" return yytext;
"NL" return yytext;
"!" return yytext;
"~" return yytext;
"scoped" return 'scoped';
"fn" return 'fn';
"new" return 'new';
"class" return 'class';
"static" return 'static';
"return" return 'return';
"break" return 'break';
"continue" return 'continue';
"if" return 'if';
"else" return 'else';
"for" return 'for';
"in" return 'in';
"loop" return 'loop';
"while" return 'while';
"package" return 'package';
"active" return 'active';
"datablock" return 'datablock';
"state" return 'state';
"use" return 'use';
"match" return 'match';
"or" return 'or';
{digit}+"."{digit}+ return 'float';
{digit}+ return 'integer';
"\""[\w\W]*?"\"" return 'string';
"'"[\w\W]*?"'" return 'tagged_string';
"true"|"false" return 'boolean';
"$"{name_scope} return 'global';
{name} return 'name';
"`"[^`]*"`" return 'ts_fence';
. return 'ROBOCOP';
<<EOF>> return 'EOF';