fortranfixed.xml

 1<lexer>
 2  <config>
 3    <name>FortranFixed</name>
 4    <alias>fortranfixed</alias>
 5    <filename>*.f</filename>
 6    <filename>*.F</filename>
 7    <mime_type>text/x-fortran</mime_type>
 8    <case_insensitive>true</case_insensitive>
 9    <not_multiline>true</not_multiline>
10  </config>
11  <rules>
12    <state name="cont-char">
13      <rule pattern=" ">
14        <token type="TextWhitespace"/>
15        <push state="code"/>
16      </rule>
17      <rule pattern=".">
18        <token type="GenericStrong"/>
19        <push state="code"/>
20      </rule>
21    </state>
22    <state name="code">
23      <rule pattern="(.{66})(.*)(\n)">
24        <bygroups>
25          <using lexer="Fortran"/>
26          <token type="Comment"/>
27          <token type="TextWhitespace"/>
28        </bygroups>
29        <push state="root"/>
30      </rule>
31      <rule pattern="(.*)(!.*)(\n)">
32        <bygroups>
33          <using lexer="Fortran"/>
34          <token type="Comment"/>
35          <token type="TextWhitespace"/>
36        </bygroups>
37        <push state="root"/>
38      </rule>
39      <rule pattern="(.*)(\n)">
40        <bygroups>
41          <using lexer="Fortran"/>
42          <token type="TextWhitespace"/>
43        </bygroups>
44        <push state="root"/>
45      </rule>
46      <rule>
47        <mutators>
48          <push state="root"/>
49        </mutators>
50      </rule>
51    </state>
52    <state name="root">
53      <rule pattern="[C*].*\n">
54        <token type="Comment"/>
55      </rule>
56      <rule pattern="#.*\n">
57        <token type="CommentPreproc"/>
58      </rule>
59      <rule pattern=" {0,4}!.*\n">
60        <token type="Comment"/>
61      </rule>
62      <rule pattern="(.{5})">
63        <token type="NameLabel"/>
64        <push state="cont-char"/>
65      </rule>
66      <rule pattern=".*\n">
67        <using lexer="Fortran"/>
68      </rule>
69    </state>
70  </rules>
71</lexer>