...

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

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

     1<lexer>
     2  <config>
     3    <name>Natural</name>
     4    <alias>natural</alias>
     5    <filename>*.NSN</filename>
     6    <filename>*.NSP</filename>
     7    <filename>*.NSS</filename>
     8    <filename>*.NSH</filename>
     9    <filename>*.NSG</filename>
    10    <filename>*.NSL</filename>
    11    <filename>*.NSA</filename>
    12    <filename>*.NSM</filename>
    13    <filename>*.NSC</filename>
    14    <filename>*.NS7</filename>
    15    <mime_type>text/x-natural</mime_type>
    16    <case_insensitive>true</case_insensitive>
    17  </config>
    18  <rules>
    19    <state name="common">
    20      <rule pattern="\s+">
    21        <token type="Text"/>
    22      </rule>
    23      <rule pattern="^\*.*$">
    24        <token type="CommentSingle"/>
    25      </rule>
    26      <rule pattern="/\*.*$">
    27        <token type="CommentSingle"/>
    28      </rule>
    29    </state>
    30    <state name="variable-names">
    31      <rule pattern="[#+]?[\w\-\d]+">
    32        <token type="NameVariable"/>
    33      </rule>
    34      <rule pattern="\([a-zA-z]\d*\)">
    35        <token type="Other"/>
    36      </rule>
    37    </state>
    38    <state name="root">
    39      <rule>
    40        <include state="common"/>
    41      </rule>
    42      <rule pattern="(?:END-DEFINE|END-IF|END-FOR|END-SUBROUTINE|END-ERROR|END|IGNORE)\b">
    43        <token type="Keyword"/>
    44      </rule>
    45      <rule pattern="(?:INIT|CONST)\s*&lt;\b">
    46        <token type="Keyword"/>
    47      </rule>
    48      <rule pattern="(FORM)(\s+)(\w+)">
    49        <bygroups>
    50          <token type="Keyword"/>
    51          <token type="Text"/>
    52          <token type="NameFunction"/>
    53        </bygroups>
    54      </rule>
    55      <rule pattern="(DEFINE)(\s+)(SUBROUTINE)(\s+)([#+]?[\w\-\d]+)">
    56        <bygroups>
    57          <token type="Keyword"/>
    58          <token type="Text"/>
    59          <token type="Keyword"/>
    60          <token type="Text"/>
    61          <token type="NameFunction"/>
    62        </bygroups>
    63      </rule>
    64      <rule pattern="(PERFORM)(\s+)([#+]?[\w\-\d]+)">
    65        <bygroups>
    66          <token type="Keyword"/>
    67          <token type="Text"/>
    68          <token type="NameFunction"/>
    69        </bygroups>
    70      </rule>
    71      <rule pattern="(METHOD)(\s+)([\w~]+)">
    72        <bygroups>
    73          <token type="Keyword"/>
    74          <token type="Text"/>
    75          <token type="NameFunction"/>
    76        </bygroups>
    77      </rule>
    78      <rule pattern="(\s+)([\w\-]+)([=\-]&gt;)([\w\-~]+)">
    79        <bygroups>
    80          <token type="Text"/>
    81          <token type="NameVariable"/>
    82          <token type="Operator"/>
    83          <token type="NameFunction"/>
    84        </bygroups>
    85      </rule>
    86      <rule pattern="(?&lt;=(=|-)&gt;)([\w\-~]+)(?=\()">
    87        <token type="NameFunction"/>
    88      </rule>
    89      <rule pattern="(TEXT)(-)(\d{3})">
    90        <bygroups>
    91          <token type="Keyword"/>
    92          <token type="Punctuation"/>
    93          <token type="LiteralNumberInteger"/>
    94        </bygroups>
    95      </rule>
    96      <rule pattern="(TEXT)(-)(\w{3})">
    97        <bygroups>
    98          <token type="Keyword"/>
    99          <token type="Punctuation"/>
   100          <token type="NameVariable"/>
   101        </bygroups>
   102      </rule>
   103      <rule pattern="(?i)\b(?&lt;!-)(?&lt;!#)(ENTIRE|BY|NAME|ARRAY|SPECIFIED|VIEW|MODULE|FUNCTION|RETURNS|AND|NUMERIC|OPTIONAL|END-PARSE|TRUE|END-RESULT|LEAVING|NOT|CONDITION|NUMBER|NO|EXP|FULL|REPLACE|INSERT|DOEND|LOG|ABS|ANY|REPEAT|SET|DLOGOFF|DOWNLOAD|BREAK|VALUES|DIVIDE|COMPRESS|UPDATE|SORTKEY|OR|END-FIND|END-ENDPAGE|REDUCE|IGNORE|MIN|WASTE|END-DEFINE|SUBSTR|END|FIND|ADD|INVESTIGATE|DNATIVE|CONST|COS|ENDHOC|SGN|COPY|REDEFINE|DEFINE|MULTIPLY|ASSIGN|LE|VALUE|COMPOSE|FALSE|POS|CALL|TAN|ERROR|CLOSE|PARSE|LT|WITH_CTE|END-SORT|EJECT|RESET|SHOW|LOCAL|PERFORM|TERMINATE|VAL|BACKOUT|END-LOOP|REJECT|SUM|CREATE|SORT|RETURN|AT|SIN|SETTIME|INT|NE|GLOBAL|END-SELECT|ELSE|DELETE|TOP|INCLUDE|END-ENDDATA|LOOP|OLD|SUSPEND|SKIP|SQRT|RULEVAR|NMIN|AVER|PROCESS|SELECT|MAP|USING|END-HISTOGRAM|MAX|NEWPAGE|ON|OFF|KEY|NAMED|CONTROL|PF1|PF2|PF3|PF4|PF5|PF6|PF7|PF8|PF9|INITIAL|WRITE|STORE|FETCH|ATN|RET|END-WORK|RESTORE|GET|LIMIT|END-ERROR|SEND|OPEN|ESCAPE|COMPUTE|COUNT|TRANSFER|RELEASE|DO|DYNAMIC|ROLLBACK|END-READ|DISPLAY|UPLOAD|END-DATA|NULL-HANDLE|NCOUNT|RESIZE|END-PROCESS|REQUEST|READ|SEPARATE|EQ|INPUT|DATA|END-START|STACK|REINPUT|INCDIC|INCCONT|END-IF|WHEN|END-BEFORE|WHILE|END-ENDFILE|END-TOPPAGE|INCDIR|PARAMETER|OBTAIN|CALLDBPROC|END-BROWSE|MOVE|SUBTRACT|DLOGON|EXAMINE|SUBSTRING|BEFORE|STOP|RUN|END-BREAK|EXPORT|END-SUBROUTINE|FOR|GE|PRINT|BROWSE|IMPORT|EXPAND|ALL|PASSW|FORMAT|GT|END-NOREC|END-DECIDE|END-FOR|CALLNAT|END-ALL|OPTIONS|RETRY|NONE|INCMAC|END-FILE|DECIDE|INIT|HISTOGRAM|NAVER|START|ACCEPT|COMMIT|TOTAL|IF|FRAC|END-REPEAT|UNTIL|TO|INTO|WITH|DELIMITER|FIRST|OF|INTO|SUBROUTINE|GIVING|POSITION)\b(?!-)">
   104        <token type="Keyword"/>
   105      </rule>
   106      <rule pattern="[0-9]+">
   107        <token type="LiteralNumberInteger"/>
   108      </rule>
   109      <rule pattern="(?&lt;=(\s|.))(AND|OR|NOT|EQUAL|NE|EQ|GT|GE|LT|LE)\b">
   110        <token type="OperatorWord"/>
   111      </rule>
   112      <rule>
   113        <include state="variable-names"/>
   114      </rule>
   115      <rule pattern="[?*&lt;&gt;=\-+&amp;]">
   116        <token type="Operator"/>
   117      </rule>
   118      <rule pattern="(?:(ESCAPE)(\s+)(MODULE|ROUTINE|BOTTOM|TOP))">
   119        <bygroups>
   120          <token type="Keyword"/>
   121          <token type="Text"/>
   122          <token type="Keyword"/>
   123        </bygroups>
   124      </rule>
   125      <rule pattern="&#39;(&#39;&#39;|[^&#39;])*&#39;">
   126        <token type="LiteralStringSingle"/>
   127      </rule>
   128      <rule pattern="`([^`])*`">
   129        <token type="LiteralStringSingle"/>
   130      </rule>
   131      <rule pattern="([|}])([^{}|]*?)([|{])">
   132        <bygroups>
   133          <token type="Punctuation"/>
   134          <token type="LiteralStringSingle"/>
   135          <token type="Punctuation"/>
   136        </bygroups>
   137      </rule>
   138      <rule pattern="[/;:()\[\],.]">
   139        <token type="Punctuation"/>
   140      </rule>
   141    </state>
   142  </rules>
   143</lexer>

View as plain text