...
1<lexer>
2 <config>
3 <name>Newspeak</name>
4 <alias>newspeak</alias>
5 <filename>*.ns2</filename>
6 <mime_type>text/x-newspeak</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\b(Newsqueak2)\b">
11 <token type="KeywordDeclaration"/>
12 </rule>
13 <rule pattern="'[^']*'">
14 <token type="LiteralString"/>
15 </rule>
16 <rule pattern="\b(class)(\s+)(\w+)(\s*)">
17 <bygroups>
18 <token type="KeywordDeclaration"/>
19 <token type="Text"/>
20 <token type="NameClass"/>
21 <token type="Text"/>
22 </bygroups>
23 </rule>
24 <rule pattern="\b(mixin|self|super|private|public|protected|nil|true|false)\b">
25 <token type="Keyword"/>
26 </rule>
27 <rule pattern="(\w+\:)(\s*)([a-zA-Z_]\w+)">
28 <bygroups>
29 <token type="NameFunction"/>
30 <token type="Text"/>
31 <token type="NameVariable"/>
32 </bygroups>
33 </rule>
34 <rule pattern="(\w+)(\s*)(=)">
35 <bygroups>
36 <token type="NameAttribute"/>
37 <token type="Text"/>
38 <token type="Operator"/>
39 </bygroups>
40 </rule>
41 <rule pattern="<\w+>">
42 <token type="CommentSpecial"/>
43 </rule>
44 <rule>
45 <include state="expressionstat"/>
46 </rule>
47 <rule>
48 <include state="whitespace"/>
49 </rule>
50 </state>
51 <state name="expressionstat">
52 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
53 <token type="LiteralNumberFloat"/>
54 </rule>
55 <rule pattern="\d+">
56 <token type="LiteralNumberInteger"/>
57 </rule>
58 <rule pattern=":\w+">
59 <token type="NameVariable"/>
60 </rule>
61 <rule pattern="(\w+)(::)">
62 <bygroups>
63 <token type="NameVariable"/>
64 <token type="Operator"/>
65 </bygroups>
66 </rule>
67 <rule pattern="\w+:">
68 <token type="NameFunction"/>
69 </rule>
70 <rule pattern="\w+">
71 <token type="NameVariable"/>
72 </rule>
73 <rule pattern="\(|\)">
74 <token type="Punctuation"/>
75 </rule>
76 <rule pattern="\[|\]">
77 <token type="Punctuation"/>
78 </rule>
79 <rule pattern="\{|\}">
80 <token type="Punctuation"/>
81 </rule>
82 <rule pattern="(\^|\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-|:)">
83 <token type="Operator"/>
84 </rule>
85 <rule pattern="\.|;">
86 <token type="Punctuation"/>
87 </rule>
88 <rule>
89 <include state="whitespace"/>
90 </rule>
91 <rule>
92 <include state="literals"/>
93 </rule>
94 </state>
95 <state name="literals">
96 <rule pattern="\$.">
97 <token type="LiteralString"/>
98 </rule>
99 <rule pattern="'[^']*'">
100 <token type="LiteralString"/>
101 </rule>
102 <rule pattern="#'[^']*'">
103 <token type="LiteralStringSymbol"/>
104 </rule>
105 <rule pattern="#\w+:?">
106 <token type="LiteralStringSymbol"/>
107 </rule>
108 <rule pattern="#(\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-)+">
109 <token type="LiteralStringSymbol"/>
110 </rule>
111 </state>
112 <state name="whitespace">
113 <rule pattern="\s+">
114 <token type="Text"/>
115 </rule>
116 <rule pattern=""[^"]*"">
117 <token type="Comment"/>
118 </rule>
119 </state>
120 </rules>
121</lexer>
View as plain text