🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::Parser类 参考

#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
 
ExprparseExpression ()
 
ExprparseStatements ()
 
ExprparseAssignExpr ()
 
ExprparseConditionalExpr ()
 
ExprparseLogicalOrExpr ()
 
ExprparseLogicalAndExpr ()
 
ExprparseBitwiseOrExpr ()
 
ExprparseBitwiseXorExpr ()
 
ExprparseBitwiseAndExpr ()
 
ExprparseEqualityExpr ()
 
ExprparseRelationalExpr ()
 
ExprparseRangeExpr ()
 
ExprparseRangeExprFrom (Expr *startExpr)
 
ExprparseShiftExpr ()
 
ExprparseAdditiveExpr ()
 
ExprparseMultiplicativeExpr ()
 
ExprparseExponentiationExpr ()
 
ExprparseUnaryExpr ()
 
ExprparseBeginEndBlock ()
 
ExprparseStatementSequence ()
 
ExprparseBlockExpr ()
 
ExprparsePrimaryExpr ()
 
ExprparseIfStatement ()
 
ExprparseWhileLoop ()
 
ExprparseForRangeLoop ()
 
bool canStartExpression () const
 

静态 Public 成员函数

static ExprparseExpr (StringView script)
 

详细描述

脚本语法解析器

成员函数说明

◆ advance()

void ast::Parser::advance ( )

前进到下一个令牌

获取当前行号

前进到下一个令牌

◆ canStartExpression()

bool ast::Parser::canStartExpression ( ) const

检查当前令牌是否可以作为表达式的开始

返回
true 如果当前令牌可以作为表达式的开始

◆ parseAssignExpr()

Expr * ast::Parser::parseAssignExpr ( )

解析赋值表达式

解析语句序列(多个表达式,用分号或换行分隔)

解析赋值表达式

◆ parseBitwiseAndExpr()

Expr * ast::Parser::parseBitwiseAndExpr ( )

解析按位与表达式

解析位与表达式

◆ parseBitwiseOrExpr()

Expr * ast::Parser::parseBitwiseOrExpr ( )

解析按位或表达式

解析位或表达式

◆ parseBitwiseXorExpr()

Expr * ast::Parser::parseBitwiseXorExpr ( )

解析按位异或表达式

解析位异或表达式

◆ parseExponentiationExpr()

Expr * ast::Parser::parseExponentiationExpr ( )

解析幂指数表达式

解析幂指数表达式(右结合)

◆ parseExpr()

Expr * ast::Parser::parseExpr ( StringView script)
static

解析表达式

参数
script脚本文本
返回
Expr* 解析得到的表达式对象,解析失败返回nullptr

◆ parseShiftExpr()

Expr * ast::Parser::parseShiftExpr ( )

解析位移表达式

解析移位表达式


该类的文档由以下文件生成: