...
1<lexer>
2 <config>
3 <name>ArmAsm</name>
4 <alias>armasm</alias>
5 <filename>*.s</filename>
6 <filename>*.S</filename>
7 <mime_type>text/x-armasm</mime_type>
8 <mime_type>text/x-asm</mime_type>
9 <ensure_nl>true</ensure_nl>
10 </config>
11 <rules>
12 <state name="root">
13 <rule>
14 <include state="commentsandwhitespace"/>
15 </rule>
16 <rule pattern="(\.\w+)([ \t]+\w+\s+?)?">
17 <bygroups>
18 <token type="KeywordNamespace"/>
19 <token type="NameLabel"/>
20 </bygroups>
21 </rule>
22 <rule pattern="(\w+)(:)(\s+\.\w+\s+)">
23 <bygroups>
24 <token type="NameLabel"/>
25 <token type="Punctuation"/>
26 <token type="KeywordNamespace"/>
27 </bygroups>
28 <push state="literal"/>
29 </rule>
30 <rule pattern="(\w+)(:)">
31 <bygroups>
32 <token type="NameLabel"/>
33 <token type="Punctuation"/>
34 </bygroups>
35 </rule>
36 <rule pattern="svc\s+\w+">
37 <token type="NameNamespace"/>
38 </rule>
39 <rule pattern="[a-zA-Z]+">
40 <token type="Text"/>
41 <push state="opcode"/>
42 </rule>
43 </state>
44 <state name="commentsandwhitespace">
45 <rule pattern="\s+">
46 <token type="Text"/>
47 </rule>
48 <rule pattern="[@;].*?\n">
49 <token type="CommentSingle"/>
50 </rule>
51 <rule pattern="/\*.*?\*/">
52 <token type="CommentMultiline"/>
53 </rule>
54 </state>
55 <state name="literal">
56 <rule pattern="0b[01]+">
57 <token type="LiteralNumberBin"/>
58 <pop depth="1"/>
59 </rule>
60 <rule pattern="0x\w{1,8}">
61 <token type="LiteralNumberHex"/>
62 <pop depth="1"/>
63 </rule>
64 <rule pattern="0\d+">
65 <token type="LiteralNumberOct"/>
66 <pop depth="1"/>
67 </rule>
68 <rule pattern="\d+?\.\d+?">
69 <token type="LiteralNumberFloat"/>
70 <pop depth="1"/>
71 </rule>
72 <rule pattern="\d+">
73 <token type="LiteralNumberInteger"/>
74 <pop depth="1"/>
75 </rule>
76 <rule pattern="(")(.+)(")">
77 <bygroups>
78 <token type="Punctuation"/>
79 <token type="LiteralStringDouble"/>
80 <token type="Punctuation"/>
81 </bygroups>
82 <pop depth="1"/>
83 </rule>
84 <rule pattern="(')(.{1}|\\.{1})(')">
85 <bygroups>
86 <token type="Punctuation"/>
87 <token type="LiteralStringChar"/>
88 <token type="Punctuation"/>
89 </bygroups>
90 <pop depth="1"/>
91 </rule>
92 </state>
93 <state name="opcode">
94 <rule pattern="\n">
95 <token type="Text"/>
96 <pop depth="1"/>
97 </rule>
98 <rule pattern="(@|;).*\n">
99 <token type="CommentSingle"/>
100 <pop depth="1"/>
101 </rule>
102 <rule pattern="(\s+|,)">
103 <token type="Text"/>
104 </rule>
105 <rule pattern="[rapcfxwbhsdqv]\d{1,2}">
106 <token type="NameClass"/>
107 </rule>
108 <rule pattern="=0x\w+">
109 <bygroups>
110 <token type="Text"/>
111 <token type="NameLabel"/>
112 </bygroups>
113 </rule>
114 <rule pattern="(=)(\w+)">
115 <bygroups>
116 <token type="Text"/>
117 <token type="NameLabel"/>
118 </bygroups>
119 </rule>
120 <rule pattern="#">
121 <token type="Text"/>
122 <push state="literal"/>
123 </rule>
124 </state>
125 </rules>
126</lexer>
View as plain text