HTParser class abstract
A general parser, with abstract method to parse a token list or string content.
- Mixed-in types
- Implementers
Constructors
- HTParser({ParserConfig? config, required HTLexicon lexicon})
Properties
- column ↔ int
-
getter/setter pairinherited
- config ↔ ParserConfig
-
getter/setter pair
-
currentModuleImports
↔ List<
ImportExportDecl> -
getter/setter pair
-
currentPrecedings
↔ List<
ASTAnnotation> -
getter/setter pair
- currentSource ↔ HTSource?
-
getter/setter pair
- currrentFileName ↔ String?
-
The file current under processing, used in error message.
getter/setter pairinherited
- curTok ↔ Token
-
Get current token.
getter/setter pairinherited
- endOfFile ↔ Token
-
getter/setter pairinherited
-
errors
↔ List<
HTError> -
getter/setter pairinherited
- firstTok ↔ Token
-
getter/setter pairinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- lexer ↔ HTLexer
-
Lexer used by this parser, created from lexicon.
latefinal
- lexicon ↔ HTLexicon
-
Lexicon definition used by this parser.
latefinal
- line ↔ int
-
getter/setter pairinherited
- name → String
-
the identity name of this parser.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
advance(
[int distance = 1]) → Token -
Advance till reach
distance
, return the token at original position.inherited -
expect(
List< String> types, {bool consume = false}) → bool -
Check current token and some tokens after it to see if the
types
match, return a boolean result. Ifconsume
is true, will advance.inherited -
handlePrecedings(
) → bool - To handle the comments & empty lines before a expr;
-
handleTrailing(
ASTNode expr, {bool handleComma = true, String? endMarkForCommaExpressions}) → void -
match(
String type) → Token -
If the token match the
type
provided, advance 1 and return the original token. If not, generate an error.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
parseExpr(
) → ASTNode - To read the current token from current position and produce an AST expression. Normally this is the entry point of recursive descent parsing. Class that implements HTParser must define this method.
-
parseExprList<
T extends ASTNode> ({required String endToken, bool handleComma = true, required T? parseFunction()}) → List< T> - A functional programming way to parse expression seperated by comma, such as parameter list, argumetn list, list, group... etc. the comma after the last expression is optional. Note that this method will not consume either the start or the end mark.
-
parseSource(
HTSource source, {bool printPerformanceStatistics = false}) → ASTSource - Convert string content into ASTSource by a certain grammar rules set.
-
parseStmt(
{required ParseStyle style}) → ASTNode? -
parseTokens(
Token token, {HTSource? source, ParseStyle? style}) → List< ASTNode> - Convert tokens into a list of ASTNode by a certain grammar rules set.
-
peek(
int distance) → Token -
Get a token at a relative
distance
from current position.inherited -
resetFlags(
) → void -
savePrecedings(
) → List< ASTAnnotation> -
seek(
String type) → Token -
Search for a token type, return the token next to it.
inherited
-
seekGroupClosing(
Map< String, String> groupClosings) → Token -
Search for parentheses end that can close the current one, return the token next to it.
inherited
-
setPrecedings(
ASTNode expr) → bool -
setTokens(
{required Token token, int? line, int? column}) → void -
Set current tokens.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- anonymousFunctionIndex ↔ int
-
getter/setter pair