The lexemes in the following table are specific to Fortran. The state stays in LNORM.
Lexeme |
Representation |
|---|---|
| AMPERSAND | "&" |
| ASSIGNOP | "=" |
| CHARACTERconstantWithKind | {FortranString} {FortranCharacterKind}{FortranString} {FortranCharacterKind}?{FortranCString} |
| CharDoubleDelim | [^"\\\n]|("") |
| CharSingleDelim | [^'\\\n]|('') |
| CStringDoubleDelim | ["]({CharDoubleDelim}|{FortranEscapeChar})*["] |
| CStringSingleDelim | [']({CharSingleDelim}|{FortranEscapeChar})*['] |
| ExponentVal | [+-]?{DG}+ |
| EQ | ".EQ." |
| EQ | "==" |
| FortranBinaryValue | [Bb]((['][01]+['])|(["][01]+["])) |
| FortranCharacterKind | {FortranCharacterNamedKind} {FortranCharacterNumericKind} |
| FortranCharacterNamedKind | {FortranName}"_" |
| FortranCharacterNumericKind | {DG}+"_" |
| FortranCString | ({CStringSingleDelim}|{CStringDoubleDelim})[Cc] |
| FortranEscapeChar | [\\]([AaBbFfNnRrTtVv]|{FortranOctalEscape} |{FortranHexEscape}|0|[\\]) |
| FortranHexEscape | [Xx]{HX}{1,2} |
| FortranHexValue | [Zz](([']{HX}+['])|(["]{HX}+["])) |
| FortranHexValueAlternative | (([']{HX}+['])|(["]{HX}+["]))[Xx] |
| FortranKind | {FortranNamedKind} {FortranNumericKind} |
| FortranName | [A-Za-z$]({LT}|{DG})* |
| FortranNamedKind | "_"{FortranName} |
| FortranNumericKind | "_"{DG}+ |
| FortranOctalEscape | {OC}{1,3} |
| FortranOctalValue | [Oo](([']{OC}+['])|(["]{OC}+["])) |
| FortranOctalValueAlternative | (([']{OC}+['])|(["]{OC}+["]))[Oo] |
| FortranString | {StringSingleDelim} {StringDoubleDelim} |
| GE | ".GE." |
| GREATER | ".GT." |
| IDENTIFIER, TYPEDEFname | {LT}({LT}|{DG})* |
| INTEGERconstant | ".TRUE." ".FALSE." "0"{OC}+ "0X"{HX}+ {DG}+ |
| INTEGERconstantWithKind | {DG}+{FortranKind} {DG}*"#"[0-9A-Za-z]+ {FortranBinaryValue} {FortranOctalValue} {FortranHexValue} {FortranOctalValueAlternative} {FortranHexValueAlternative} |
| LBRACKET | "[" |
| LE | ".LE." |
| LESS | ".LT." |
| LOGAND | ".AND." |
| LOGEQV | ".EQV." |
| LOGICALconstantWithKind | ".TRUE."{FortranKind}? ".FALSE."{FortranKind}? |
| LOGNEQV | ".NEQV." |
| LOGNOT | ".NOT." |
| LOGOR | ".OR." |
| LOGXOR | ".XOR." |
| MINUS | "-" |
| NE | ".NE." |
| NE | "/=" |
| OPENSLASH | "(/" |
| PERCENT | "%" |
|
"%%" | |
|
"+" | |
| RBRACKET | "]" |
| RealConstant | {RealSingleConstant} {RealDoubleConstant} {RealQuadConstant} |
| REALconstantWithKind | RealConstant |
| RealDExponent | [Dd]{ExponentVal} |
| RealDoubleConstant | ({DG}+|{RealWithDecimal}){RealDExponent} |
| RealEExponent | [Ee]{ExponentVal} |
| RealQExponent | [Qq]{ExponentVal} |
| RealQuadConstant | ({DG}+|{RealWithDecimal}){RealQExponent} |
| RealSingleConstant | (({DG}+{RealEExponent}) ({RealWithDecimal}{RealEExponent}?)){FortranKind}? |
| RealWithDecimal | ({DG>}+"."DG}*) ({DG}*"."{DG}+) |
| SIZEOF | sizeof |
| SLASHCLOSE | "/)" |
| SLASHSLASH | "//" |
| STARSTAR | "**" |
| StringDoubleDelim | ["]({CharDoubleDelim}|[\\])*["] |
| StringSingleDelim | [']({CharSingleDelim}|[\\])*['] |