typoscript.xml

  1<lexer>
  2  <config>
  3    <name>TypoScript</name>
  4    <alias>typoscript</alias>
  5    <filename>*.ts</filename>
  6    <mime_type>text/x-typoscript</mime_type>
  7    <dot_all>true</dot_all>
  8    <priority>0.1</priority>
  9  </config>
 10  <rules>
 11    <state name="whitespace">
 12      <rule pattern="\s+">
 13        <token type="Text"/>
 14      </rule>
 15    </state>
 16    <state name="html">
 17      <rule pattern="&lt;\S[^\n&gt;]*&gt;">
 18        <using lexer="TypoScriptHTMLData"/>
 19      </rule>
 20      <rule pattern="&amp;[^;\n]*;">
 21        <token type="LiteralString"/>
 22      </rule>
 23      <rule pattern="(_CSS_DEFAULT_STYLE)(\s*)(\()(?s)(.*(?=\n\)))">
 24        <bygroups>
 25          <token type="NameClass"/>
 26          <token type="Text"/>
 27          <token type="LiteralStringSymbol"/>
 28          <using lexer="TypoScriptCSSData"/>
 29        </bygroups>
 30      </rule>
 31    </state>
 32    <state name="operator">
 33      <rule pattern="[&lt;&gt;,:=.*%+|]">
 34        <token type="Operator"/>
 35      </rule>
 36    </state>
 37    <state name="structure">
 38      <rule pattern="[{}()\[\]\\]">
 39        <token type="LiteralStringSymbol"/>
 40      </rule>
 41    </state>
 42    <state name="constant">
 43      <rule pattern="(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})">
 44        <bygroups>
 45          <token type="LiteralStringSymbol"/>
 46          <token type="Operator"/>
 47          <token type="NameConstant"/>
 48          <token type="NameConstant"/>
 49          <token type="LiteralStringSymbol"/>
 50        </bygroups>
 51      </rule>
 52      <rule pattern="(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})">
 53        <bygroups>
 54          <token type="LiteralStringSymbol"/>
 55          <token type="NameConstant"/>
 56          <token type="Operator"/>
 57          <token type="NameConstant"/>
 58          <token type="LiteralStringSymbol"/>
 59        </bygroups>
 60      </rule>
 61      <rule pattern="(#[a-fA-F0-9]{6}\b|#[a-fA-F0-9]{3}\b)">
 62        <token type="LiteralStringChar"/>
 63      </rule>
 64    </state>
 65    <state name="comment">
 66      <rule pattern="(?&lt;!(#|\&#39;|&#34;))(?:#(?!(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3}))[^\n#]+|//[^\n]*)">
 67        <token type="Comment"/>
 68      </rule>
 69      <rule pattern="/\*(?:(?!\*/).)*\*/">
 70        <token type="Comment"/>
 71      </rule>
 72      <rule pattern="(\s*#\s*\n)">
 73        <token type="Comment"/>
 74      </rule>
 75    </state>
 76    <state name="root">
 77      <rule>
 78        <include state="comment"/>
 79      </rule>
 80      <rule>
 81        <include state="constant"/>
 82      </rule>
 83      <rule>
 84        <include state="html"/>
 85      </rule>
 86      <rule>
 87        <include state="label"/>
 88      </rule>
 89      <rule>
 90        <include state="whitespace"/>
 91      </rule>
 92      <rule>
 93        <include state="keywords"/>
 94      </rule>
 95      <rule>
 96        <include state="punctuation"/>
 97      </rule>
 98      <rule>
 99        <include state="operator"/>
100      </rule>
101      <rule>
102        <include state="structure"/>
103      </rule>
104      <rule>
105        <include state="literal"/>
106      </rule>
107      <rule>
108        <include state="other"/>
109      </rule>
110    </state>
111    <state name="literal">
112      <rule pattern="0x[0-9A-Fa-f]+t?">
113        <token type="LiteralNumberHex"/>
114      </rule>
115      <rule pattern="[0-9]+">
116        <token type="LiteralNumberInteger"/>
117      </rule>
118      <rule pattern="(###\w+###)">
119        <token type="NameConstant"/>
120      </rule>
121    </state>
122    <state name="label">
123      <rule pattern="(EXT|FILE|LLL):[^}\n&#34;]*">
124        <token type="LiteralString"/>
125      </rule>
126      <rule pattern="(?![^\w\-])([\w\-]+(?:/[\w\-]+)+/?)(\S*\n)">
127        <bygroups>
128          <token type="LiteralString"/>
129          <token type="LiteralString"/>
130        </bygroups>
131      </rule>
132    </state>
133    <state name="punctuation">
134      <rule pattern="[,.]">
135        <token type="Punctuation"/>
136      </rule>
137    </state>
138    <state name="other">
139      <rule pattern="[\w&#34;\-!/&amp;;]+">
140        <token type="Text"/>
141      </rule>
142    </state>
143    <state name="keywords">
144      <rule pattern="(\[)(?i)(browser|compatVersion|dayofmonth|dayofweek|dayofyear|device|ELSE|END|GLOBAL|globalString|globalVar|hostname|hour|IP|language|loginUser|loginuser|minute|month|page|PIDinRootline|PIDupinRootline|system|treeLevel|useragent|userFunc|usergroup|version)([^\]]*)(\])">
145        <bygroups>
146          <token type="LiteralStringSymbol"/>
147          <token type="NameConstant"/>
148          <token type="Text"/>
149          <token type="LiteralStringSymbol"/>
150        </bygroups>
151      </rule>
152      <rule pattern="(?=[\w\-])(HTMLparser|HTMLparser_tags|addParams|cache|encapsLines|filelink|if|imageLinkWrap|imgResource|makelinks|numRows|numberFormat|parseFunc|replacement|round|select|split|stdWrap|strPad|tableStyle|tags|textStyle|typolink)(?![\w\-])">
153        <token type="NameFunction"/>
154      </rule>
155      <rule pattern="(?:(=?\s*&lt;?\s+|^\s*))(cObj|field|config|content|constants|FEData|file|frameset|includeLibs|lib|page|plugin|register|resources|sitemap|sitetitle|styles|temp|tt_[^:.\s]*|types|xmlnews|INCLUDE_TYPOSCRIPT|_CSS_DEFAULT_STYLE|_DEFAULT_PI_VARS|_LOCAL_LANG)(?![\w\-])">
156        <bygroups>
157          <token type="Operator"/>
158          <token type="NameBuiltin"/>
159        </bygroups>
160      </rule>
161      <rule pattern="(?=[\w\-])(CASE|CLEARGIF|COA|COA_INT|COBJ_ARRAY|COLUMNS|CONTENT|CTABLE|EDITPANEL|FILE|FILES|FLUIDTEMPLATE|FORM|HMENU|HRULER|HTML|IMAGE|IMGTEXT|IMG_RESOURCE|LOAD_REGISTER|MEDIA|MULTIMEDIA|OTABLE|PAGE|QTOBJECT|RECORDS|RESTORE_REGISTER|SEARCHRESULT|SVG|SWFOBJECT|TEMPLATE|TEXT|USER|USER_INT)(?![\w\-])">
162        <token type="NameClass"/>
163      </rule>
164      <rule pattern="(?=[\w\-])(ACTIFSUBRO|ACTIFSUB|ACTRO|ACT|CURIFSUBRO|CURIFSUB|CURRO|CUR|IFSUBRO|IFSUB|NO|SPC|USERDEF1RO|USERDEF1|USERDEF2RO|USERDEF2|USRRO|USR)">
165        <token type="NameClass"/>
166      </rule>
167      <rule pattern="(?=[\w\-])(GMENU_FOLDOUT|GMENU_LAYERS|GMENU|IMGMENUITEM|IMGMENU|JSMENUITEM|JSMENU|TMENUITEM|TMENU_LAYERS|TMENU)">
168        <token type="NameClass"/>
169      </rule>
170      <rule pattern="(?=[\w\-])(PHP_SCRIPT(_EXT|_INT)?)">
171        <token type="NameClass"/>
172      </rule>
173      <rule pattern="(?=[\w\-])(userFunc)(?![\w\-])">
174        <token type="NameFunction"/>
175      </rule>
176    </state>
177  </rules>
178</lexer>