      <rule pattern = "\.\d+([eE][+\-]?\d+)?">
            <token type = "LiteralNumberFloat"/>
        </rule>
        <rule pattern = "0o[0-7]+">
            <token type = "LiteralNumberOct"/>
        </rule>
        <rule pattern = "0x[0-9a-fA-F_]+">
            <token type = "LiteralNumberHex"/>
        </rule>
        <rule pattern = "0b[01_]+">
            <token type = "LiteralNumberBin"/>
        </rule>
        <rule pattern = "(0|[1-9][0-9_]*)">
            <token type = "LiteralNumberInteger"/>
        </rule>
        <rule pattern = "'(\\['&quot;\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'" >
            <token type = "LiteralStringChar"/>
        </rule>
        <rule pattern = "(`)([^`]*)(`)" >
            <token type = "LiteralString"/>
        </rule>
        <rule pattern = "&quot;(\\\\|\\&quot;|[^&quot;])*&quot;" >
            <token type = "LiteralString"/>
        </rule>
        <rule pattern = "(&lt;&lt;=|&gt;&gt;=|&lt;&lt;|&gt;&gt;|&lt;=|&gt;=|&amp;=|&amp;|\+=|-=|\*=|/=|%=|\||\^|=|&amp;&amp;|\|\||--|-&gt;|=|==|!=|:=|:|::|\.\.\&lt;|\.\.=|[&lt;&gt;+\-*/%&amp;])" >
            <token type = "Operator"/>
        </rule>
        <rule pattern="[{}()\[\],.;]">
            <token type="Punctuation"/>
        </rule>
    </state>  
  </rules>
</lexer>
