comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/php.xml @ 66:787b5ee0289d draft

Use vendored modules Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Sun, 23 Jul 2023 13:18:53 +0000
parents
children
comparison
equal deleted inserted replaced
65:6d985efa0f7a 66:787b5ee0289d
1 <lexer>
2 <config>
3 <name>PHP</name>
4 <alias>php</alias>
5 <alias>php3</alias>
6 <alias>php4</alias>
7 <alias>php5</alias>
8 <filename>*.php</filename>
9 <filename>*.php[345]</filename>
10 <filename>*.inc</filename>
11 <mime_type>text/x-php</mime_type>
12 <case_insensitive>true</case_insensitive>
13 <dot_all>true</dot_all>
14 <ensure_nl>true</ensure_nl>
15 </config>
16 <rules>
17 <state name="magicfuncs">
18 <rule pattern="(__callStatic|__set_state|__construct|__debugInfo|__toString|__destruct|__invoke|__wakeup|__clone|__sleep|__isset|__unset|__call|__get|__set)\b">
19 <token type="NameFunctionMagic"/>
20 </rule>
21 </state>
22 <state name="magicconstants">
23 <rule pattern="(__NAMESPACE__|__FUNCTION__|__METHOD__|__CLASS__|__TRAIT__|__LINE__|__FILE__|__DIR__)\b">
24 <token type="NameConstant"/>
25 </rule>
26 </state>
27 <state name="classname">
28 <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
29 <token type="NameClass"/>
30 <pop depth="1"/>
31 </rule>
32 </state>
33 <state name="functionname">
34 <rule>
35 <include state="magicfuncs"/>
36 </rule>
37 <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
38 <token type="NameFunction"/>
39 <pop depth="1"/>
40 </rule>
41 <rule>
42 <pop depth="1"/>
43 </rule>
44 </state>
45 <state name="string">
46 <rule pattern="&#34;">
47 <token type="LiteralStringDouble"/>
48 <pop depth="1"/>
49 </rule>
50 <rule pattern="[^{$&#34;\\]+">
51 <token type="LiteralStringDouble"/>
52 </rule>
53 <rule pattern="\\([nrt&#34;$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})">
54 <token type="LiteralStringEscape"/>
55 </rule>
56 <rule pattern="\$(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*(\[\S+?\]|-&gt;(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)?">
57 <token type="LiteralStringInterpol"/>
58 </rule>
59 <rule pattern="(\{\$\{)(.*?)(\}\})">
60 <bygroups>
61 <token type="LiteralStringInterpol"/>
62 <usingself state="root"/>
63 <token type="LiteralStringInterpol"/>
64 </bygroups>
65 </rule>
66 <rule pattern="(\{)(\$.*?)(\})">
67 <bygroups>
68 <token type="LiteralStringInterpol"/>
69 <usingself state="root"/>
70 <token type="LiteralStringInterpol"/>
71 </bygroups>
72 </rule>
73 <rule pattern="(\$\{)(\S+)(\})">
74 <bygroups>
75 <token type="LiteralStringInterpol"/>
76 <token type="NameVariable"/>
77 <token type="LiteralStringInterpol"/>
78 </bygroups>
79 </rule>
80 <rule pattern="[${\\]">
81 <token type="LiteralStringDouble"/>
82 </rule>
83 </state>
84 <state name="root">
85 <rule pattern="\?&gt;">
86 <token type="CommentPreproc"/>
87 <pop depth="1"/>
88 </rule>
89 <rule pattern="(&lt;&lt;&lt;)([\&#39;&#34;]?)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)(\2\n.*?\n\s*)(\3)(;?)(\n)">
90 <bygroups>
91 <token type="LiteralString"/>
92 <token type="LiteralString"/>
93 <token type="LiteralStringDelimiter"/>
94 <token type="LiteralString"/>
95 <token type="LiteralStringDelimiter"/>
96 <token type="Punctuation"/>
97 <token type="Text"/>
98 </bygroups>
99 </rule>
100 <rule pattern="\s+">
101 <token type="Text"/>
102 </rule>
103 <rule pattern="#.*?\n">
104 <token type="CommentSingle"/>
105 </rule>
106 <rule pattern="//.*?\n">
107 <token type="CommentSingle"/>
108 </rule>
109 <rule pattern="/\*\*/">
110 <token type="CommentMultiline"/>
111 </rule>
112 <rule pattern="/\*\*.*?\*/">
113 <token type="LiteralStringDoc"/>
114 </rule>
115 <rule pattern="/\*.*?\*/">
116 <token type="CommentMultiline"/>
117 </rule>
118 <rule pattern="(-&gt;|::)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)">
119 <bygroups>
120 <token type="Operator"/>
121 <token type="Text"/>
122 <token type="NameAttribute"/>
123 </bygroups>
124 </rule>
125 <rule pattern="[~!%^&amp;*+=|:.&lt;&gt;/@-]+">
126 <token type="Operator"/>
127 </rule>
128 <rule pattern="\?">
129 <token type="Operator"/>
130 </rule>
131 <rule pattern="[\[\]{}();,]+">
132 <token type="Punctuation"/>
133 </rule>
134 <rule pattern="(class)(\s+)">
135 <bygroups>
136 <token type="Keyword"/>
137 <token type="Text"/>
138 </bygroups>
139 <push state="classname"/>
140 </rule>
141 <rule pattern="(function)(\s*)(?=\()">
142 <bygroups>
143 <token type="Keyword"/>
144 <token type="Text"/>
145 </bygroups>
146 </rule>
147 <rule pattern="(function)(\s+)(&amp;?)(\s*)">
148 <bygroups>
149 <token type="Keyword"/>
150 <token type="Text"/>
151 <token type="Operator"/>
152 <token type="Text"/>
153 </bygroups>
154 <push state="functionname"/>
155 </rule>
156 <rule pattern="(const)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)">
157 <bygroups>
158 <token type="Keyword"/>
159 <token type="Text"/>
160 <token type="NameConstant"/>
161 </bygroups>
162 </rule>
163 <rule pattern="(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|FALSE|print|for|require|continue|foreach|require_once|declare|return|default|static|do|switch|die|stdClass|echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|virtual|endfor|include_once|while|endforeach|global|endif|list|endswitch|new|endwhile|not|array|E_ALL|NULL|final|php_user_filter|interface|implements|public|private|protected|abstract|clone|try|catch|throw|this|use|namespace|trait|yield|finally)\b">
164 <token type="Keyword"/>
165 </rule>
166 <rule pattern="(true|false|null)\b">
167 <token type="KeywordConstant"/>
168 </rule>
169 <rule>
170 <include state="magicconstants"/>
171 </rule>
172 <rule pattern="\$\{\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*\}">
173 <token type="NameVariable"/>
174 </rule>
175 <rule pattern="\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
176 <token type="NameVariable"/>
177 </rule>
178 <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
179 <token type="NameOther"/>
180 </rule>
181 <rule pattern="(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?">
182 <token type="LiteralNumberFloat"/>
183 </rule>
184 <rule pattern="\d+e[+-]?[0-9]+">
185 <token type="LiteralNumberFloat"/>
186 </rule>
187 <rule pattern="0[0-7]+">
188 <token type="LiteralNumberOct"/>
189 </rule>
190 <rule pattern="0x[a-f0-9_]+">
191 <token type="LiteralNumberHex"/>
192 </rule>
193 <rule pattern="\d[\d_]*">
194 <token type="LiteralNumberInteger"/>
195 </rule>
196 <rule pattern="0b[01]+">
197 <token type="LiteralNumberBin"/>
198 </rule>
199 <rule pattern="&#39;([^&#39;\\]*(?:\\.[^&#39;\\]*)*)&#39;">
200 <token type="LiteralStringSingle"/>
201 </rule>
202 <rule pattern="`([^`\\]*(?:\\.[^`\\]*)*)`">
203 <token type="LiteralStringBacktick"/>
204 </rule>
205 <rule pattern="&#34;">
206 <token type="LiteralStringDouble"/>
207 <push state="string"/>
208 </rule>
209 </state>
210 </rules>
211 </lexer>