66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>BlitzBasic</name>
|
|
4 <alias>blitzbasic</alias>
|
|
5 <alias>b3d</alias>
|
|
6 <alias>bplus</alias>
|
|
7 <filename>*.bb</filename>
|
|
8 <filename>*.decls</filename>
|
|
9 <mime_type>text/x-bb</mime_type>
|
|
10 <case_insensitive>true</case_insensitive>
|
|
11 </config>
|
|
12 <rules>
|
|
13 <state name="string">
|
|
14 <rule pattern="""">
|
|
15 <token type="LiteralStringDouble"/>
|
|
16 </rule>
|
|
17 <rule pattern=""C?">
|
|
18 <token type="LiteralStringDouble"/>
|
|
19 <pop depth="1"/>
|
|
20 </rule>
|
|
21 <rule pattern="[^"]+">
|
|
22 <token type="LiteralStringDouble"/>
|
|
23 </rule>
|
|
24 </state>
|
|
25 <state name="root">
|
|
26 <rule pattern="[ \t]+">
|
|
27 <token type="Text"/>
|
|
28 </rule>
|
|
29 <rule pattern=";.*?\n">
|
|
30 <token type="CommentSingle"/>
|
|
31 </rule>
|
|
32 <rule pattern=""">
|
|
33 <token type="LiteralStringDouble"/>
|
|
34 <push state="string"/>
|
|
35 </rule>
|
|
36 <rule pattern="[0-9]+\.[0-9]*(?!\.)">
|
|
37 <token type="LiteralNumberFloat"/>
|
|
38 </rule>
|
|
39 <rule pattern="\.[0-9]+(?!\.)">
|
|
40 <token type="LiteralNumberFloat"/>
|
|
41 </rule>
|
|
42 <rule pattern="[0-9]+">
|
|
43 <token type="LiteralNumberInteger"/>
|
|
44 </rule>
|
|
45 <rule pattern="\$[0-9a-f]+">
|
|
46 <token type="LiteralNumberHex"/>
|
|
47 </rule>
|
|
48 <rule pattern="\%[10]+">
|
|
49 <token type="LiteralNumberBin"/>
|
|
50 </rule>
|
|
51 <rule pattern="\b(Before|Handle|After|First|Float|Last|Sgn|Abs|Not|And|Int|Mod|Str|Sar|Shr|Shl|Or)\b">
|
|
52 <token type="Operator"/>
|
|
53 </rule>
|
|
54 <rule pattern="([+\-*/~=<>^])">
|
|
55 <token type="Operator"/>
|
|
56 </rule>
|
|
57 <rule pattern="[(),:\[\]\\]">
|
|
58 <token type="Punctuation"/>
|
|
59 </rule>
|
|
60 <rule pattern="\.([ \t]*)([a-z]\w*)">
|
|
61 <token type="NameLabel"/>
|
|
62 </rule>
|
|
63 <rule pattern="\b(New)\b([ \t]+)([a-z]\w*)">
|
|
64 <bygroups>
|
|
65 <token type="KeywordReserved"/>
|
|
66 <token type="Text"/>
|
|
67 <token type="NameClass"/>
|
|
68 </bygroups>
|
|
69 </rule>
|
|
70 <rule pattern="\b(Gosub|Goto)\b([ \t]+)([a-z]\w*)">
|
|
71 <bygroups>
|
|
72 <token type="KeywordReserved"/>
|
|
73 <token type="Text"/>
|
|
74 <token type="NameLabel"/>
|
|
75 </bygroups>
|
|
76 </rule>
|
|
77 <rule pattern="\b(Object)\b([ \t]*)([.])([ \t]*)([a-z]\w*)\b">
|
|
78 <bygroups>
|
|
79 <token type="Operator"/>
|
|
80 <token type="Text"/>
|
|
81 <token type="Punctuation"/>
|
|
82 <token type="Text"/>
|
|
83 <token type="NameClass"/>
|
|
84 </bygroups>
|
|
85 </rule>
|
|
86 <rule pattern="\b([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?\b([ \t]*)(\()">
|
|
87 <bygroups>
|
|
88 <token type="NameFunction"/>
|
|
89 <token type="Text"/>
|
|
90 <token type="KeywordType"/>
|
|
91 <token type="Text"/>
|
|
92 <token type="Punctuation"/>
|
|
93 <token type="Text"/>
|
|
94 <token type="NameClass"/>
|
|
95 <token type="Text"/>
|
|
96 <token type="Punctuation"/>
|
|
97 </bygroups>
|
|
98 </rule>
|
|
99 <rule pattern="\b(Function)\b([ \t]+)([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?">
|
|
100 <bygroups>
|
|
101 <token type="KeywordReserved"/>
|
|
102 <token type="Text"/>
|
|
103 <token type="NameFunction"/>
|
|
104 <token type="Text"/>
|
|
105 <token type="KeywordType"/>
|
|
106 <token type="Text"/>
|
|
107 <token type="Punctuation"/>
|
|
108 <token type="Text"/>
|
|
109 <token type="NameClass"/>
|
|
110 </bygroups>
|
|
111 </rule>
|
|
112 <rule pattern="\b(Type)([ \t]+)([a-z]\w*)">
|
|
113 <bygroups>
|
|
114 <token type="KeywordReserved"/>
|
|
115 <token type="Text"/>
|
|
116 <token type="NameClass"/>
|
|
117 </bygroups>
|
|
118 </rule>
|
|
119 <rule pattern="\b(Pi|True|False|Null)\b">
|
|
120 <token type="KeywordConstant"/>
|
|
121 </rule>
|
|
122 <rule pattern="\b(Local|Global|Const|Field|Dim)\b">
|
|
123 <token type="KeywordDeclaration"/>
|
|
124 </rule>
|
|
125 <rule pattern="\b(Function|Restore|Default|Forever|Include|Return|Repeat|ElseIf|Delete|Insert|Select|EndIf|Until|While|Gosub|Type|Goto|Else|Data|Next|Step|Each|Case|Wend|Exit|Read|Then|For|New|Asc|Len|Chr|End|To|If)\b">
|
|
126 <token type="KeywordReserved"/>
|
|
127 </rule>
|
|
128 <rule pattern="([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?">
|
|
129 <bygroups>
|
|
130 <token type="NameVariable"/>
|
|
131 <token type="Text"/>
|
|
132 <token type="KeywordType"/>
|
|
133 <token type="Text"/>
|
|
134 <token type="Punctuation"/>
|
|
135 <token type="Text"/>
|
|
136 <token type="NameClass"/>
|
|
137 </bygroups>
|
|
138 </rule>
|
|
139 </state>
|
|
140 </rules>
|
|
141 </lexer> |