66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>Tcsh</name>
|
|
4 <alias>tcsh</alias>
|
|
5 <alias>csh</alias>
|
|
6 <filename>*.tcsh</filename>
|
|
7 <filename>*.csh</filename>
|
|
8 <mime_type>application/x-csh</mime_type>
|
|
9 </config>
|
|
10 <rules>
|
|
11 <state name="basic">
|
|
12 <rule pattern="\b(if|endif|else|while|then|foreach|case|default|continue|goto|breaksw|end|switch|endsw)\s*\b">
|
|
13 <token type="Keyword"/>
|
|
14 </rule>
|
|
15 <rule pattern="\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|source|suspend|telltc|time|umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|ver|wait|warp|watchlog|where|which)\s*\b">
|
|
16 <token type="NameBuiltin"/>
|
|
17 </rule>
|
|
18 <rule pattern="#.*">
|
|
19 <token type="Comment"/>
|
|
20 </rule>
|
|
21 <rule pattern="\\[\w\W]">
|
|
22 <token type="LiteralStringEscape"/>
|
|
23 </rule>
|
|
24 <rule pattern="(\b\w+)(\s*)(=)">
|
|
25 <bygroups>
|
|
26 <token type="NameVariable"/>
|
|
27 <token type="Text"/>
|
|
28 <token type="Operator"/>
|
|
29 </bygroups>
|
|
30 </rule>
|
|
31 <rule pattern="[\[\]{}()=]+">
|
|
32 <token type="Operator"/>
|
|
33 </rule>
|
|
34 <rule pattern="<<\s*(\'?)\\?(\w+)[\w\W]+?\2">
|
|
35 <token type="LiteralString"/>
|
|
36 </rule>
|
|
37 <rule pattern=";">
|
|
38 <token type="Punctuation"/>
|
|
39 </rule>
|
|
40 </state>
|
|
41 <state name="data">
|
|
42 <rule pattern="(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"">
|
|
43 <token type="LiteralStringDouble"/>
|
|
44 </rule>
|
|
45 <rule pattern="(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'">
|
|
46 <token type="LiteralStringSingle"/>
|
|
47 </rule>
|
|
48 <rule pattern="\s+">
|
|
49 <token type="Text"/>
|
|
50 </rule>
|
|
51 <rule pattern="[^=\s\[\]{}()$"\'`\\;#]+">
|
|
52 <token type="Text"/>
|
|
53 </rule>
|
|
54 <rule pattern="\d+(?= |\Z)">
|
|
55 <token type="LiteralNumber"/>
|
|
56 </rule>
|
|
57 <rule pattern="\$#?(\w+|.)">
|
|
58 <token type="NameVariable"/>
|
|
59 </rule>
|
|
60 </state>
|
|
61 <state name="curly">
|
|
62 <rule pattern="\}">
|
|
63 <token type="Keyword"/>
|
|
64 <pop depth="1"/>
|
|
65 </rule>
|
|
66 <rule pattern=":-">
|
|
67 <token type="Keyword"/>
|
|
68 </rule>
|
|
69 <rule pattern="\w+">
|
|
70 <token type="NameVariable"/>
|
|
71 </rule>
|
|
72 <rule pattern="[^}:"\'`$]+">
|
|
73 <token type="Punctuation"/>
|
|
74 </rule>
|
|
75 <rule pattern=":">
|
|
76 <token type="Punctuation"/>
|
|
77 </rule>
|
|
78 <rule>
|
|
79 <include state="root"/>
|
|
80 </rule>
|
|
81 </state>
|
|
82 <state name="paren">
|
|
83 <rule pattern="\)">
|
|
84 <token type="Keyword"/>
|
|
85 <pop depth="1"/>
|
|
86 </rule>
|
|
87 <rule>
|
|
88 <include state="root"/>
|
|
89 </rule>
|
|
90 </state>
|
|
91 <state name="backticks">
|
|
92 <rule pattern="`">
|
|
93 <token type="LiteralStringBacktick"/>
|
|
94 <pop depth="1"/>
|
|
95 </rule>
|
|
96 <rule>
|
|
97 <include state="root"/>
|
|
98 </rule>
|
|
99 </state>
|
|
100 <state name="root">
|
|
101 <rule>
|
|
102 <include state="basic"/>
|
|
103 </rule>
|
|
104 <rule pattern="\$\(">
|
|
105 <token type="Keyword"/>
|
|
106 <push state="paren"/>
|
|
107 </rule>
|
|
108 <rule pattern="\$\{#?">
|
|
109 <token type="Keyword"/>
|
|
110 <push state="curly"/>
|
|
111 </rule>
|
|
112 <rule pattern="`">
|
|
113 <token type="LiteralStringBacktick"/>
|
|
114 <push state="backticks"/>
|
|
115 </rule>
|
|
116 <rule>
|
|
117 <include state="data"/>
|
|
118 </rule>
|
|
119 </state>
|
|
120 </rules>
|
|
121 </lexer> |