66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>PkgConfig</name>
|
|
4 <alias>pkgconfig</alias>
|
|
5 <filename>*.pc</filename>
|
|
6 </config>
|
|
7 <rules>
|
|
8 <state name="curly">
|
|
9 <rule pattern="\}">
|
|
10 <token type="LiteralStringInterpol"/>
|
|
11 <pop depth="1"/>
|
|
12 </rule>
|
|
13 <rule pattern="\w+">
|
|
14 <token type="NameAttribute"/>
|
|
15 </rule>
|
|
16 </state>
|
|
17 <state name="spvalue">
|
|
18 <rule>
|
|
19 <include state="interp"/>
|
|
20 </rule>
|
|
21 <rule pattern="#.*$">
|
|
22 <token type="CommentSingle"/>
|
|
23 <pop depth="1"/>
|
|
24 </rule>
|
|
25 <rule pattern="\n">
|
|
26 <token type="Text"/>
|
|
27 <pop depth="1"/>
|
|
28 </rule>
|
|
29 <rule pattern="[^${}#\n]+">
|
|
30 <token type="Text"/>
|
|
31 </rule>
|
|
32 <rule pattern=".">
|
|
33 <token type="Text"/>
|
|
34 </rule>
|
|
35 </state>
|
|
36 <state name="root">
|
|
37 <rule pattern="#.*$">
|
|
38 <token type="CommentSingle"/>
|
|
39 </rule>
|
|
40 <rule pattern="^(\w+)(=)">
|
|
41 <bygroups>
|
|
42 <token type="NameAttribute"/>
|
|
43 <token type="Operator"/>
|
|
44 </bygroups>
|
|
45 </rule>
|
|
46 <rule pattern="^([\w.]+)(:)">
|
|
47 <bygroups>
|
|
48 <token type="NameTag"/>
|
|
49 <token type="Punctuation"/>
|
|
50 </bygroups>
|
|
51 <push state="spvalue"/>
|
|
52 </rule>
|
|
53 <rule>
|
|
54 <include state="interp"/>
|
|
55 </rule>
|
|
56 <rule pattern="[^${}#=:\n.]+">
|
|
57 <token type="Text"/>
|
|
58 </rule>
|
|
59 <rule pattern=".">
|
|
60 <token type="Text"/>
|
|
61 </rule>
|
|
62 </state>
|
|
63 <state name="interp">
|
|
64 <rule pattern="\$\$">
|
|
65 <token type="Text"/>
|
|
66 </rule>
|
|
67 <rule pattern="\$\{">
|
|
68 <token type="LiteralStringInterpol"/>
|
|
69 <push state="curly"/>
|
|
70 </rule>
|
|
71 </state>
|
|
72 </rules>
|
|
73 </lexer> |