LNORM Lexemes Specific to Fortran

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 "%"

PERCENT_PERCENT

"%%"

PLUS

"+"

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