[VER] 0.3.7-alpha

[Fix] 修复科学表达式数字解析的问题(Lexer引起) 由 Satklomi发现,感谢
[Feat] 增加Compiler相关定义,将开发BytecodeVM
[Tip] Evaluator进入Bug fix阶段,新功能延缓开发。转向VM
This commit is contained in:
2026-01-14 17:28:38 +08:00
parent 1ccc63419d
commit e28921ae02
30 changed files with 737 additions and 276 deletions

View File

@@ -7,7 +7,7 @@ namespace Fig::Ast
class InitExprAst final : public ExpressionAst
{
public:
FString structName;
Expression structe;
std::vector<std::pair<FString, Expression>> args;
@@ -30,8 +30,8 @@ namespace Fig::Ast
type = AstType::InitExpr;
}
InitExprAst(FString _structName, std::vector<std::pair<FString, Expression>> _args, InitMode _initMode) :
structName(std::move(_structName)), args(std::move(_args)), initMode(_initMode)
InitExprAst(Expression _structe, std::vector<std::pair<FString, Expression>> _args, InitMode _initMode) :
structe(std::move(_structe)), args(std::move(_args)), initMode(_initMode)
{
type = AstType::InitExpr;
}

View File

@@ -238,9 +238,11 @@ namespace Fig::Ast
};
static const std::unordered_set<Operator> unaryOps{
Operator::Not,
Operator::Subtract,
Operator::BitNot,
Operator::Not, // !
Operator::Subtract, // -
Operator::BitNot, // ~
Operator::BitAnd, // reference operator &
};
static const std::unordered_set<Operator> binaryOps{
Operator::Add,