annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 <lexer>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2 <config>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 <name>QBasic</name>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 <alias>qbasic</alias>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5 <alias>basic</alias>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6 <filename>*.BAS</filename>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 <filename>*.bas</filename>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 <mime_type>text/basic</mime_type>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 </config>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 <rules>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 <state name="root">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 <rule pattern="\n+">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 <token type="Text"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 <rule pattern="\s+">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 <rule pattern="^(\s*)(\d*)(\s*)(REM .*)$">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 <token type="NameLabel"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 <token type="CommentSingle"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 <rule pattern="^(\s*)(\d+)(\s*)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 <token type="NameLabel"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 <rule pattern="(?=[\s]*)(\w+)(?=[\s]*=)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 <token type="NameVariableGlobal"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 <rule pattern="(?=[^&#34;]*)\&#39;.*$">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 <token type="CommentSingle"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39 <rule pattern="&#34;[^\n&#34;]*&#34;">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 <token type="LiteralStringDouble"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 <rule pattern="(END)(\s+)(FUNCTION|IF|SELECT|SUB)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 <token type="KeywordReserved"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
45 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
46 <token type="KeywordReserved"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
47 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
48 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
49 <rule pattern="(DECLARE)(\s+)([A-Z]+)(\s+)(\S+)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
50 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
51 <token type="KeywordDeclaration"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
52 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
53 <token type="NameVariable"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
54 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
55 <token type="Name"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
56 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
57 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
58 <rule pattern="(DIM)(\s+)(SHARED)(\s+)([^\s(]+)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
59 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
60 <token type="KeywordDeclaration"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
61 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
62 <token type="NameVariable"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
63 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
64 <token type="NameVariableGlobal"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
65 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
66 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
67 <rule pattern="(DIM)(\s+)([^\s(]+)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
68 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
69 <token type="KeywordDeclaration"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
70 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
71 <token type="NameVariableGlobal"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
72 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
73 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
74 <rule pattern="^(\s*)([a-zA-Z_]+)(\s*)(\=)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
75 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
76 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
77 <token type="NameVariableGlobal"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
78 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
79 <token type="Operator"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
80 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
81 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
82 <rule pattern="(GOTO|GOSUB)(\s+)(\w+\:?)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
83 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
84 <token type="KeywordReserved"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
85 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
86 <token type="NameLabel"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
87 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
88 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
89 <rule pattern="(SUB)(\s+)(\w+\:?)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
90 <bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
91 <token type="KeywordReserved"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
92 <token type="TextWhitespace"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
93 <token type="NameLabel"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
94 </bygroups>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
95 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
96 <rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
97 <include state="declarations"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
98 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
99 <rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
100 <include state="functions"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
101 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
102 <rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
103 <include state="metacommands"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
104 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
105 <rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
106 <include state="operators"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
107 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
108 <rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
109 <include state="statements"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
110 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
111 <rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
112 <include state="keywords"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
113 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
114 <rule pattern="[a-zA-Z_]\w*[$@#&amp;!]">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
115 <token type="NameVariableGlobal"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
116 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
117 <rule pattern="[a-zA-Z_]\w*\:">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
118 <token type="NameLabel"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
119 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
120 <rule pattern="\-?\d*\.\d+[@|#]?">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
121 <token type="LiteralNumberFloat"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
122 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
123 <rule pattern="\-?\d+[@|#]">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
124 <token type="LiteralNumberFloat"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
125 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
126 <rule pattern="\-?\d+#?">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
127 <token type="LiteralNumberIntegerLong"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
128 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
129 <rule pattern="\-?\d+#?">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
130 <token type="LiteralNumberInteger"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
131 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
132 <rule pattern="!=|==|:=|\.=|&lt;&lt;|&gt;&gt;|[-~+/\\*%=&lt;&gt;&amp;^|?:!.]">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
133 <token type="Operator"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
134 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
135 <rule pattern="[\[\]{}(),;]">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
136 <token type="Punctuation"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
137 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
138 <rule pattern="[\w]+">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
139 <token type="NameVariableGlobal"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
140 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
141 </state>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
142 <state name="declarations">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
143 <rule pattern="\b(DATA|LET)(?=\(|\b)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
144 <token type="KeywordDeclaration"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
145 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
146 </state>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
147 <state name="functions">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
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)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
149 <token type="KeywordReserved"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
150 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
151 </state>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
152 <state name="metacommands">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
153 <rule pattern="\b(\$DYNAMIC|\$INCLUDE|\$STATIC)(?=\(|\b)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
154 <token type="KeywordConstant"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
155 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
156 </state>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
157 <state name="operators">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
158 <rule pattern="\b(AND|EQV|IMP|NOT|OR|XOR)(?=\(|\b)">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
159 <token type="OperatorWord"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
160 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
161 </state>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
162 <state name="statements">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
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">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
164 <token type="KeywordReserved"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
165 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
166 </state>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
167 <state name="keywords">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
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">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
169 <token type="Keyword"/>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
170 </rule>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
171 </state>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
172 </rules>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
173 </lexer>