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}|[\\])*['] |