FragmentRule

A reusable part of a lexer rule that doesn't match (a token) on its own.

A consequence is that fragment rules matches are never stored as a separate parse tree nodes.

For example: INTEGER: DIGIT+ | '0' Xx HEX_DIGIT+ ; fragment DIGIT: [0-9]; fragment HEX_DIGIT: [0-9A-Fa-f];

Constructors

this
this(Token head, Pattern root, bool skipFlag)
Undocumented in source.

Members

Properties

isFragmentRule
bool isFragmentRule [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.

Inherited Members

From Rule

show
void show(Format fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
diagnoseDirectLeftRecursion
void diagnoseDirectLeftRecursion(GxLexer lexer)
Undocumented in source. Be warned that the author may not have intended to support it.
equals
bool equals(Node o)
Undocumented in source. Be warned that the author may not have intended to support it.
toMatchInSource
void toMatchInSource(Output sink, GxParserByStatement parser)
Undocumented in source. Be warned that the author may not have intended to support it.
toMatcherInSource
void toMatcherInSource(Output sink, GxParserByStatement parser)
Undocumented in source. Be warned that the author may not have intended to support it.
isFragmentRule
bool isFragmentRule [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.
isLexerTokenRule
bool isLexerTokenRule [@property getter]

Is a lexer (token) rule (beginning with a capital letter) defining a token type.

head
Token head;

< Name.

root
Pattern root;

< Root pattern.

hasRef
bool hasRef;

Set to true if is referenced by a SymbolRef. Set in GxParserByStatement.tagReferencedRules

skipFlag
bool skipFlag;

Rule is skipped (ignored). For instance WS : [\r\n]+ -> skip ;

See Also

Meta