|
🛰️航天仿真算法库 SpaceAST 0.0.1
|
#include <Parser.hpp>
Public 成员函数 | |
| Parser (Lexer &lexer) | |
| int | currentTokenType () const |
| StringView | currentLexeme () const |
| size_t | getLine () const |
| void | advance () |
| bool | match (int type) |
| bool | check (int type) const |
| Expr * | parseExpression () |
| Expr * | parseStatements () |
| Expr * | parseAssignExpr () |
| Expr * | parseConditionalExpr () |
| Expr * | parseLogicalOrExpr () |
| Expr * | parseLogicalAndExpr () |
| Expr * | parseBitwiseOrExpr () |
| Expr * | parseBitwiseXorExpr () |
| Expr * | parseBitwiseAndExpr () |
| Expr * | parseEqualityExpr () |
| Expr * | parseRelationalExpr () |
| Expr * | parseRangeExpr () |
| Expr * | parseRangeExprFrom (Expr *startExpr) |
| Expr * | parseShiftExpr () |
| Expr * | parseAdditiveExpr () |
| Expr * | parseMultiplicativeExpr () |
| Expr * | parseExponentiationExpr () |
| Expr * | parseUnaryExpr () |
| Expr * | parseBeginEndBlock () |
| Expr * | parseStatementSequence () |
| Expr * | parseBlockExpr () |
| Expr * | parsePrimaryExpr () |
| Expr * | parseIfStatement () |
| Expr * | parseWhileLoop () |
| Expr * | parseForRangeLoop () |
| bool | canStartExpression () const |
静态 Public 成员函数 | |
| static Expr * | parseExpr (StringView script) |
脚本语法解析器
| void ast::Parser::advance | ( | ) |
前进到下一个令牌
获取当前行号
前进到下一个令牌
| bool ast::Parser::canStartExpression | ( | ) | const |
检查当前令牌是否可以作为表达式的开始
| Expr * ast::Parser::parseAssignExpr | ( | ) |
解析赋值表达式
解析语句序列(多个表达式,用分号或换行分隔)
解析赋值表达式
| Expr * ast::Parser::parseBitwiseAndExpr | ( | ) |
解析按位与表达式
解析位与表达式
| Expr * ast::Parser::parseBitwiseOrExpr | ( | ) |
解析按位或表达式
解析位或表达式
| Expr * ast::Parser::parseBitwiseXorExpr | ( | ) |
解析按位异或表达式
解析位异或表达式
| Expr * ast::Parser::parseExponentiationExpr | ( | ) |
解析幂指数表达式
解析幂指数表达式(右结合)
|
static |
解析表达式
| script | 脚本文本 |
| Expr * ast::Parser::parseShiftExpr | ( | ) |
解析位移表达式
解析移位表达式