angular2.xml

  1<lexer>
  2  <config>
  3    <name>Angular2</name>
  4    <alias>ng2</alias>
  5  </config>
  6  <rules>
  7    <state name="attr">
  8      <rule pattern="&#34;.*?&#34;">
  9        <token type="LiteralString"/>
 10        <pop depth="1"/>
 11      </rule>
 12      <rule pattern="&#39;.*?&#39;">
 13        <token type="LiteralString"/>
 14        <pop depth="1"/>
 15      </rule>
 16      <rule pattern="[^\s&gt;]+">
 17        <token type="LiteralString"/>
 18        <pop depth="1"/>
 19      </rule>
 20    </state>
 21    <state name="root">
 22      <rule pattern="[^{([*#]+">
 23        <token type="Other"/>
 24      </rule>
 25      <rule pattern="(\{\{)(\s*)">
 26        <bygroups>
 27          <token type="CommentPreproc"/>
 28          <token type="Text"/>
 29        </bygroups>
 30        <push state="ngExpression"/>
 31      </rule>
 32      <rule pattern="([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)">
 33        <bygroups>
 34          <token type="Punctuation"/>
 35          <token type="NameAttribute"/>
 36          <token type="Punctuation"/>
 37          <token type="Text"/>
 38          <token type="Operator"/>
 39          <token type="Text"/>
 40        </bygroups>
 41        <push state="attr"/>
 42      </rule>
 43      <rule pattern="([([]+)([\w:.-]+)([\])]+)(\s*)">
 44        <bygroups>
 45          <token type="Punctuation"/>
 46          <token type="NameAttribute"/>
 47          <token type="Punctuation"/>
 48          <token type="Text"/>
 49        </bygroups>
 50      </rule>
 51      <rule pattern="([*#])([\w:.-]+)(\s*)(=)(\s*)">
 52        <bygroups>
 53          <token type="Punctuation"/>
 54          <token type="NameAttribute"/>
 55          <token type="Punctuation"/>
 56          <token type="Operator"/>
 57        </bygroups>
 58        <push state="attr"/>
 59      </rule>
 60      <rule pattern="([*#])([\w:.-]+)(\s*)">
 61        <bygroups>
 62          <token type="Punctuation"/>
 63          <token type="NameAttribute"/>
 64          <token type="Punctuation"/>
 65        </bygroups>
 66      </rule>
 67    </state>
 68    <state name="ngExpression">
 69      <rule pattern="\s+(\|\s+)?">
 70        <token type="Text"/>
 71      </rule>
 72      <rule pattern="\}\}">
 73        <token type="CommentPreproc"/>
 74        <pop depth="1"/>
 75      </rule>
 76      <rule pattern=":?(true|false)">
 77        <token type="LiteralStringBoolean"/>
 78      </rule>
 79      <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
 80        <token type="LiteralStringDouble"/>
 81      </rule>
 82      <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
 83        <token type="LiteralStringSingle"/>
 84      </rule>
 85      <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
 86        <token type="LiteralNumber"/>
 87      </rule>
 88      <rule pattern="[a-zA-Z][\w-]*(\(.*\))?">
 89        <token type="NameVariable"/>
 90      </rule>
 91      <rule pattern="\.[\w-]+(\(.*\))?">
 92        <token type="NameVariable"/>
 93      </rule>
 94      <rule pattern="(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)">
 95        <bygroups>
 96          <token type="Operator"/>
 97          <token type="Text"/>
 98          <token type="LiteralString"/>
 99          <token type="Text"/>
100          <token type="Operator"/>
101          <token type="Text"/>
102          <token type="LiteralString"/>
103          <token type="Text"/>
104        </bygroups>
105      </rule>
106    </state>
107  </rules>
108</lexer>