51 return !(*
this == other);
72 std::variant<bool, char8_t, int16_t, int32_t, int64_t, float_t, double_t, std::string>
value;
321 FuncDeclStmt(
AccessModifier am, std::string n, std::vector<Argument> a,
Type rt, std::vector<StmtPtr> b, uint32_t l) :
access(am),
name(n),
args(std::move(a)),
ret_type(rt),
block(std::move(b)),
Stmt(l) {}
BinaryExpr(Token o, ExprPtr le, ExprPtr re, uint32_t l)
~BinaryExpr() override=default
BoolLiteral(bool v, uint32_t l)
~BoolLiteral() override=default
~BreakStmt() override=default
std::vector< ExprPtr > chain
ChainObjects(std::vector< ExprPtr > c, uint32_t l)
~ChainObjects() override=default
CharacterLiteral(char8_t v, uint32_t l)
~CharacterLiteral() override=default
~ContinueStmt() override=default
~DoWhileCycleStmt() override=default
std::vector< StmtPtr > block
DoWhileCycleStmt(ExprPtr c, std::vector< StmtPtr > b, uint32_t l)
DoubleLiteral(double_t v, uint32_t l)
~DoubleLiteral() override=default
~ExternStmt() override=default
std::vector< StmtPtr > block
std::string lang_name_lit
ExternStmt(std::string lnl, std::vector< StmtPtr > b, uint32_t l)
~FloatLiteral() override=default
FloatLiteral(float_t v, uint32_t l)
~ForCycleStmt() override=default
ForCycleStmt(StmtPtr ix, ExprPtr c, StmtPtr it, std::vector< StmtPtr > b, uint32_t l)
std::vector< StmtPtr > block
~FuncCallExpr() override=default
std::vector< ExprPtr > args
FuncCallExpr(std::string n, std::vector< ExprPtr > a, uint32_t l)
std::vector< ExprPtr > args
FuncCallStmt(std::string n, std::vector< ExprPtr > a, uint32_t l)
~FuncCallStmt() override=default
std::vector< StmtPtr > block
std::vector< Argument > args
~FuncDeclStmt() override=default
FuncDeclStmt(AccessModifier am, std::string n, std::vector< Argument > a, Type rt, std::vector< StmtPtr > b, uint32_t l)
IfElseStmt(ExprPtr c, std::vector< StmtPtr > tb, std::vector< StmtPtr > eb, uint32_t l)
std::vector< StmtPtr > else_block
std::vector< StmtPtr > then_block
~IntLiteral() override=default
IntLiteral(int32_t v, uint32_t l)
Literal(Type t, Value v, uint32_t l)
~Literal() override=default
~LongLiteral() override=default
LongLiteral(int64_t v, uint32_t l)
~ModuleStmt() override=default
std::vector< StmtPtr > block
ModuleStmt(AccessModifier am, std::string fn, std::string n, std::vector< StmtPtr > b, uint32_t l)
~ReturnStmt() override=default
ReturnStmt(ExprPtr e, uint32_t l)
ShortLiteral(int16_t v, uint32_t l)
~ShortLiteral() override=default
StringLiteral(std::string v, uint32_t l)
~StringLiteral() override=default
UnaryExpr(Token o, ExprPtr e, uint32_t l)
~UnaryExpr() override=default
UseModuleStmt(std::vector< std::string > p, uint32_t l)
~UseModuleStmt() override=default
std::vector< std::string > path
VarAsgnStmt(std::string n, ExprPtr e, bool id, uint32_t l)
~VarAsgnStmt() override=default
~VarDeclStmt() override=default
VarDeclStmt(AccessModifier am, Type t, ExprPtr e, std::string n, uint32_t l)
VarExpr(std::string n, uint32_t l)
~VarExpr() override=default
std::vector< StmtPtr > block
~WhileCycleStmt() override=default
WhileCycleStmt(ExprPtr c, std::vector< StmtPtr > b, uint32_t l)
AccessModifier
Access modifier for statements.
std::unique_ptr< Stmt > StmtPtr
TypeValue
Type values enum.
std::unique_ptr< Expr > ExprPtr
Argument(std::string n, Type t)
Structure for describing the type.
Type(TypeValue t, std::string n, bool ic=false, bool ip=false, bool in=false)
bool operator==(Type &other)
bool operator!=(Type &other)
std::string to_str()
Method for convert type to string.
Structure for describing the value.
std::variant< bool, char8_t, int16_t, int32_t, int64_t, float_t, double_t, std::string > value
Header file for defining the token.