...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/openscad.xml

Documentation: github.com/alecthomas/chroma/v2/lexers/embedded

     1<lexer>
     2  <config>
     3    <name>OpenSCAD</name>
     4    <alias>openscad</alias>
     5    <filename>*.scad</filename>
     6    <mime_type>text/x-scad</mime_type>
     7  </config>
     8  <rules>
     9    <state name="root">
    10      <rule pattern="[^\S\n]+">
    11        <token type="Text"/>
    12      </rule>
    13      <rule pattern="\n">
    14        <token type="Text"/>
    15      </rule>
    16      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
    17        <token type="CommentSingle"/>
    18      </rule>
    19      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
    20        <token type="CommentMultiline"/>
    21      </rule>
    22      <rule pattern="/(\\\n)?[*][\w\W]*">
    23        <token type="CommentMultiline"/>
    24      </rule>
    25      <rule pattern="[{}\[\]\(\),;:]">
    26        <token type="Punctuation"/>
    27      </rule>
    28      <rule pattern="[*!#%\-+=?/]">
    29        <token type="Operator"/>
    30      </rule>
    31      <rule pattern="&lt;|&lt;=|==|!=|&gt;=|&gt;|&amp;&amp;|\|\|">
    32        <token type="Operator"/>
    33      </rule>
    34      <rule pattern="\$(f[asn]|t|vp[rtd]|children)">
    35        <token type="NameVariableMagic"/>
    36      </rule>
    37      <rule pattern="(undef|PI)\b">
    38        <token type="KeywordConstant"/>
    39      </rule>
    40      <rule pattern="(use|include)((?:\s|\\\\s)+)">
    41        <bygroups>
    42          <token type="KeywordNamespace"/>
    43          <token type="Text"/>
    44        </bygroups>
    45        <push state="includes"/>
    46      </rule>
    47      <rule pattern="(module)(\s*)([^\s\(]+)">
    48        <bygroups>
    49          <token type="KeywordNamespace"/>
    50          <token type="Text"/>
    51          <token type="NameNamespace"/>
    52        </bygroups>
    53      </rule>
    54      <rule pattern="(function)(\s*)([^\s\(]+)">
    55        <bygroups>
    56          <token type="KeywordDeclaration"/>
    57          <token type="Text"/>
    58          <token type="NameFunction"/>
    59        </bygroups>
    60      </rule>
    61      <rule pattern="\b(true|false)\b">
    62        <token type="Literal"/>
    63      </rule>
    64      <rule pattern="\b(function|module|include|use|for|intersection_for|if|else|return)\b">
    65        <token type="Keyword"/>
    66      </rule>
    67      <rule pattern="\b(circle|square|polygon|text|sphere|cube|cylinder|polyhedron|translate|rotate|scale|resize|mirror|multmatrix|color|offset|hull|minkowski|union|difference|intersection|abs|sign|sin|cos|tan|acos|asin|atan|atan2|floor|round|ceil|ln|log|pow|sqrt|exp|rands|min|max|concat|lookup|str|chr|search|version|version_num|norm|cross|parent_module|echo|import|import_dxf|dxf_linear_extrude|linear_extrude|rotate_extrude|surface|projection|render|dxf_cross|dxf_dim|let|assign|len)\b">
    68        <token type="NameBuiltin"/>
    69      </rule>
    70      <rule pattern="\bchildren\b">
    71        <token type="NameBuiltinPseudo"/>
    72      </rule>
    73      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
    74        <token type="LiteralStringDouble"/>
    75      </rule>
    76      <rule pattern="-?\d+(\.\d+)?(e[+-]?\d+)?">
    77        <token type="LiteralNumber"/>
    78      </rule>
    79      <rule pattern="[a-zA-Z_]\w*">
    80        <token type="Name"/>
    81      </rule>
    82    </state>
    83    <state name="includes">
    84      <rule pattern="(&lt;)([^&gt;]*)(&gt;)">
    85        <bygroups>
    86          <token type="Punctuation"/>
    87          <token type="CommentPreprocFile"/>
    88          <token type="Punctuation"/>
    89        </bygroups>
    90      </rule>
    91      <rule>
    92        <pop depth="1"/>
    93      </rule>
    94    </state>
    95  </rules>
    96</lexer>

View as plain text