Skip to content

Commit

Permalink
Fortran syntax files (free format): add Fortran 2003 keywords
Browse files Browse the repository at this point in the history
  • Loading branch information
janusw committed Dec 26, 2016
1 parent 1043147 commit 21f5d89
Showing 1 changed file with 26 additions and 10 deletions.
36 changes: 26 additions & 10 deletions data/syntax/fortran-free.xml
Expand Up @@ -9,6 +9,7 @@
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
<list name="keywords">
<item> allocate </item>
<item> associate </item>
<item> break </item>
<item> call </item>
<item> case </item>
Expand All @@ -32,6 +33,7 @@
<item> goto </item>
<item> if </item>
<item> implicit </item>
<item> import </item>
<item> include </item>
<item> interface </item>
<item> intrinsic </item>
Expand Down Expand Up @@ -128,17 +130,30 @@
<item> pad </item>
</list>
<list name="types">
<item> abstract </item>
<item> allocatable </item>
<item> asynchronous </item>
<item> bind </item>
<item> deferred </item>
<item> double </item>
<item> precision </item>
<item> enum </item>
<item> enumerator </item>
<item> final </item>
<item> generic </item>
<item> nopass </item>
<item> optional </item>
<item> non_overridable </item>
<item> parameter </item>
<item> save </item>
<item> pointer </item>
<item> public </item>
<item> precision </item>
<item> private </item>
<item> target </item>
<item> allocatable </item>
<item> optional </item>
<item> protected </item>
<item> public </item>
<item> save </item>
<item> sequence </item>
<item> target </item>
<item> value </item>
<item> volatile </item>
</list>

<!-- There are 4 types of intrinsic procedures in Fortran 90:
Expand Down Expand Up @@ -425,7 +440,7 @@

<!-- The following two contexts match input/output statements -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_io_stmnts">
<RegExpr attribute="IO Function" context="find_io_paren" String="\b(read|write|backspace|rewind|end\s*file|close)\s*[(]" insensitive="true"/>
<RegExpr attribute="IO Function" context="find_io_paren" String="\b(read|write|backspace|rewind|flush|wait|end\s*file|close)\s*[(]" insensitive="true"/>
<RegExpr attribute="IO Function" context="find_io_paren" String="\bopen\s*[(]" insensitive="true"/>
<RegExpr attribute="IO Function" context="find_io_paren" String="\binquire\s*[(]" insensitive="true"/>
<RegExpr attribute="IO Function" context="format_stmnt" String="\bformat\s*[(]" insensitive="true"/>
Expand Down Expand Up @@ -467,7 +482,7 @@
<RegExpr attribute="Keyword" context="#stay" String="\bend\s*(subroutine|function|block\s*data)\b" insensitive="true" endRegion="Routine"/>
<RegExpr attribute="Keyword" context="#stay" String="\bend\s*(program|module)\b" insensitive="true" endRegion="Routine"/>
<RegExpr attribute="Keyword" context="#stay" String="\bend\s*(do|if)\b" insensitive="true" endRegion="Block"/>
<RegExpr attribute="Keyword" context="#stay" String="\bend\s*(select|where|forall|interface)\b" insensitive="true"/>
<RegExpr attribute="Keyword" context="#stay" String="\bend\s*(select|where|forall|interface|associate)\b" insensitive="true"/>
<RegExpr attribute="Keyword" context="#stay" String="\belse\s*if\b" insensitive="true" endRegion="Block"/>
<RegExpr attribute="Keyword" context="#stay" String="\bend\b" insensitive="true" endRegion="Routine"/>
</context>
Expand All @@ -483,13 +498,14 @@
<RegExpr attribute="Data Type" context="#stay" String="\breal[\*]\d{1,2}" insensitive="true"/>
<RegExpr attribute="Data Type" context="#stay" String="\bcomplex[\*]\d{1,2}" insensitive="true"/>
<RegExpr attribute="Data Type" context="#stay" String="\bend\s*type\b" insensitive="true"/>
<RegExpr attribute="Data Type" context="#stay" String="\bend\s*enum\b" insensitive="true"/>
<keyword attribute="Data Type" context="#stay" String="types"/>
<RegExpr attribute="Data Type" context="#stay" String="^\s*data\b" insensitive="true"/>
<RegExpr attribute="Data Type" context="find_paren" String="^\s*real\s*[(]" insensitive="true"/>
<RegExpr attribute="Data Type" context="#stay" String="^\s*real(?![\w\*])" insensitive="true"/>
<RegExpr attribute="Data Type" context="#stay" String="\bcharacter[*][0-9]+\b" insensitive="true"/>
<RegExpr attribute="Data Type" context="find_paren" String="\b(type|integer|complex|character|logical|intent|dimension)\b\s*[(]" insensitive="true"/>
<RegExpr attribute="Data Type" context="#stay" String="\b(type|integer|complex|character|logical|intent|dimension)\b" insensitive="true"/>
<RegExpr attribute="Data Type" context="find_paren" String="\b(type|class|integer|complex|character|logical|intent|dimension|extends|procedure|pass)\b\s*[(]" insensitive="true"/>
<RegExpr attribute="Data Type" context="#stay" String="\b(type|class|integer|complex|character|logical|intent|dimension|extends|procedure|pass)\b" insensitive="true"/>
<Detect2Chars attribute="Data Type" context="#stay" char=":" char1=":"/>
</context>
<!-- This context matches parenthesis in data type declarations, such as in 'real(...)'-->
Expand Down

0 comments on commit 21f5d89

Please sign in to comment.