Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qbasic.xml @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 <lexer> | |
2 <config> | |
3 <name>QBasic</name> | |
4 <alias>qbasic</alias> | |
5 <alias>basic</alias> | |
6 <filename>*.BAS</filename> | |
7 <filename>*.bas</filename> | |
8 <mime_type>text/basic</mime_type> | |
9 </config> | |
10 <rules> | |
11 <state name="root"> | |
12 <rule pattern="\n+"> | |
13 <token type="Text"/> | |
14 </rule> | |
15 <rule pattern="\s+"> | |
16 <token type="TextWhitespace"/> | |
17 </rule> | |
18 <rule pattern="^(\s*)(\d*)(\s*)(REM .*)$"> | |
19 <bygroups> | |
20 <token type="TextWhitespace"/> | |
21 <token type="NameLabel"/> | |
22 <token type="TextWhitespace"/> | |
23 <token type="CommentSingle"/> | |
24 </bygroups> | |
25 </rule> | |
26 <rule pattern="^(\s*)(\d+)(\s*)"> | |
27 <bygroups> | |
28 <token type="TextWhitespace"/> | |
29 <token type="NameLabel"/> | |
30 <token type="TextWhitespace"/> | |
31 </bygroups> | |
32 </rule> | |
33 <rule pattern="(?=[\s]*)(\w+)(?=[\s]*=)"> | |
34 <token type="NameVariableGlobal"/> | |
35 </rule> | |
36 <rule pattern="(?=[^"]*)\'.*$"> | |
37 <token type="CommentSingle"/> | |
38 </rule> | |
39 <rule pattern=""[^\n"]*""> | |
40 <token type="LiteralStringDouble"/> | |
41 </rule> | |
42 <rule pattern="(END)(\s+)(FUNCTION|IF|SELECT|SUB)"> | |
43 <bygroups> | |
44 <token type="KeywordReserved"/> | |
45 <token type="TextWhitespace"/> | |
46 <token type="KeywordReserved"/> | |
47 </bygroups> | |
48 </rule> | |
49 <rule pattern="(DECLARE)(\s+)([A-Z]+)(\s+)(\S+)"> | |
50 <bygroups> | |
51 <token type="KeywordDeclaration"/> | |
52 <token type="TextWhitespace"/> | |
53 <token type="NameVariable"/> | |
54 <token type="TextWhitespace"/> | |
55 <token type="Name"/> | |
56 </bygroups> | |
57 </rule> | |
58 <rule pattern="(DIM)(\s+)(SHARED)(\s+)([^\s(]+)"> | |
59 <bygroups> | |
60 <token type="KeywordDeclaration"/> | |
61 <token type="TextWhitespace"/> | |
62 <token type="NameVariable"/> | |
63 <token type="TextWhitespace"/> | |
64 <token type="NameVariableGlobal"/> | |
65 </bygroups> | |
66 </rule> | |
67 <rule pattern="(DIM)(\s+)([^\s(]+)"> | |
68 <bygroups> | |
69 <token type="KeywordDeclaration"/> | |
70 <token type="TextWhitespace"/> | |
71 <token type="NameVariableGlobal"/> | |
72 </bygroups> | |
73 </rule> | |
74 <rule pattern="^(\s*)([a-zA-Z_]+)(\s*)(\=)"> | |
75 <bygroups> | |
76 <token type="TextWhitespace"/> | |
77 <token type="NameVariableGlobal"/> | |
78 <token type="TextWhitespace"/> | |
79 <token type="Operator"/> | |
80 </bygroups> | |
81 </rule> | |
82 <rule pattern="(GOTO|GOSUB)(\s+)(\w+\:?)"> | |
83 <bygroups> | |
84 <token type="KeywordReserved"/> | |
85 <token type="TextWhitespace"/> | |
86 <token type="NameLabel"/> | |
87 </bygroups> | |
88 </rule> | |
89 <rule pattern="(SUB)(\s+)(\w+\:?)"> | |
90 <bygroups> | |
91 <token type="KeywordReserved"/> | |
92 <token type="TextWhitespace"/> | |
93 <token type="NameLabel"/> | |
94 </bygroups> | |
95 </rule> | |
96 <rule> | |
97 <include state="declarations"/> | |
98 </rule> | |
99 <rule> | |
100 <include state="functions"/> | |
101 </rule> | |
102 <rule> | |
103 <include state="metacommands"/> | |
104 </rule> | |
105 <rule> | |
106 <include state="operators"/> | |
107 </rule> | |
108 <rule> | |
109 <include state="statements"/> | |
110 </rule> | |
111 <rule> | |
112 <include state="keywords"/> | |
113 </rule> | |
114 <rule pattern="[a-zA-Z_]\w*[$@#&!]"> | |
115 <token type="NameVariableGlobal"/> | |
116 </rule> | |
117 <rule pattern="[a-zA-Z_]\w*\:"> | |
118 <token type="NameLabel"/> | |
119 </rule> | |
120 <rule pattern="\-?\d*\.\d+[@|#]?"> | |
121 <token type="LiteralNumberFloat"/> | |
122 </rule> | |
123 <rule pattern="\-?\d+[@|#]"> | |
124 <token type="LiteralNumberFloat"/> | |
125 </rule> | |
126 <rule pattern="\-?\d+#?"> | |
127 <token type="LiteralNumberIntegerLong"/> | |
128 </rule> | |
129 <rule pattern="\-?\d+#?"> | |
130 <token type="LiteralNumberInteger"/> | |
131 </rule> | |
132 <rule pattern="!=|==|:=|\.=|<<|>>|[-~+/\\*%=<>&^|?:!.]"> | |
133 <token type="Operator"/> | |
134 </rule> | |
135 <rule pattern="[\[\]{}(),;]"> | |
136 <token type="Punctuation"/> | |
137 </rule> | |
138 <rule pattern="[\w]+"> | |
139 <token type="NameVariableGlobal"/> | |
140 </rule> | |
141 </state> | |
142 <state name="declarations"> | |
143 <rule pattern="\b(DATA|LET)(?=\(|\b)"> | |
144 <token type="KeywordDeclaration"/> | |
145 </rule> | |
146 </state> | |
147 <state name="functions"> | |
148 <rule pattern="\b(ABS|ASC|ATN|CDBL|CHR\$|CINT|CLNG|COMMAND\$|COS|CSNG|CSRLIN|CVD|CVDMBF|CVI|CVL|CVS|CVSMBF|DATE\$|ENVIRON\$|EOF|ERDEV|ERDEV\$|ERL|ERR|EXP|FILEATTR|FIX|FRE|FREEFILE|HEX\$|INKEY\$|INP|INPUT\$|INSTR|INT|IOCTL\$|LBOUND|LCASE\$|LEFT\$|LEN|LOC|LOF|LOG|LPOS|LTRIM\$|MID\$|MKD\$|MKDMBF\$|MKI\$|MKL\$|MKS\$|MKSMBF\$|OCT\$|PEEK|PEN|PLAY|PMAP|POINT|POS|RIGHT\$|RND|RTRIM\$|SADD|SCREEN|SEEK|SETMEM|SGN|SIN|SPACE\$|SPC|SQR|STICK|STR\$|STRIG|STRING\$|TAB|TAN|TIME\$|TIMER|UBOUND|UCASE\$|VAL|VARPTR|VARPTR\$|VARSEG)(?=\(|\b)"> | |
149 <token type="KeywordReserved"/> | |
150 </rule> | |
151 </state> | |
152 <state name="metacommands"> | |
153 <rule pattern="\b(\$DYNAMIC|\$INCLUDE|\$STATIC)(?=\(|\b)"> | |
154 <token type="KeywordConstant"/> | |
155 </rule> | |
156 </state> | |
157 <state name="operators"> | |
158 <rule pattern="\b(AND|EQV|IMP|NOT|OR|XOR)(?=\(|\b)"> | |
159 <token type="OperatorWord"/> | |
160 </rule> | |
161 </state> | |
162 <state name="statements"> | |
163 <rule pattern="\b(BEEP|BLOAD|BSAVE|CALL|CALL\ ABSOLUTE|CALL\ INTERRUPT|CALLS|CHAIN|CHDIR|CIRCLE|CLEAR|CLOSE|CLS|COLOR|COM|COMMON|CONST|DATA|DATE\$|DECLARE|DEF\ FN|DEF\ SEG|DEFDBL|DEFINT|DEFLNG|DEFSNG|DEFSTR|DEF|DIM|DO|LOOP|DRAW|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|NEXT|FUNCTION|GET|GOSUB|GOTO|IF|THEN|INPUT|INPUT\ \#|IOCTL|KEY|KEY|KILL|LET|LINE|LINE\ INPUT|LINE\ INPUT\ \#|LOCATE|LOCK|UNLOCK|LPRINT|LSET|MID\$|MKDIR|NAME|ON\ COM|ON\ ERROR|ON\ KEY|ON\ PEN|ON\ PLAY|ON\ STRIG|ON\ TIMER|ON\ UEVENT|ON|OPEN|OPEN\ COM|OPTION\ BASE|OUT|PAINT|PALETTE|PCOPY|PEN|PLAY|POKE|PRESET|PRINT|PRINT\ \#|PRINT\ USING|PSET|PUT|PUT|RANDOMIZE|READ|REDIM|REM|RESET|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SCREEN|SEEK|SELECT\ CASE|SHARED|SHELL|SLEEP|SOUND|STATIC|STOP|STRIG|SUB|SWAP|SYSTEM|TIME\$|TIMER|TROFF|TRON|TYPE|UEVENT|UNLOCK|VIEW|WAIT|WHILE|WEND|WIDTH|WINDOW|WRITE)\b"> | |
164 <token type="KeywordReserved"/> | |
165 </rule> | |
166 </state> | |
167 <state name="keywords"> | |
168 <rule pattern="\b(ACCESS|ALIAS|ANY|APPEND|AS|BASE|BINARY|BYVAL|CASE|CDECL|DOUBLE|ELSE|ELSEIF|ENDIF|INTEGER|IS|LIST|LOCAL|LONG|LOOP|MOD|NEXT|OFF|ON|OUTPUT|RANDOM|SIGNAL|SINGLE|STEP|STRING|THEN|TO|UNTIL|USING|WEND)\b"> | |
169 <token type="Keyword"/> | |
170 </rule> | |
171 </state> | |
172 </rules> | |
173 </lexer> |