topazc
ast.hpp File Reference

Header file for defining AST tree elements. More...

#include "../lexer/token.hpp"
#include <uchar.h>
#include <variant>
#include <memory>
#include <vector>
#include <cmath>
Include dependency graph for ast.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  AST::Type
 Structure for describing the type. More...
struct  AST::Value
 Structure for describing the value. More...
struct  AST::Argument
 Structure for describing the argument (in function or method). More...
class  AST::Stmt
 Base class of statement. More...
class  AST::Expr
 Base class of expression. More...
class  AST::Literal
 Base class of literal. More...
class  AST::BoolLiteral
 Boolean literal. More...
class  AST::CharacterLiteral
 Character literal. More...
class  AST::ShortLiteral
 Short literal. More...
class  AST::IntLiteral
 Int literal. More...
class  AST::LongLiteral
 Long literal. More...
class  AST::FloatLiteral
 Float literal. More...
class  AST::DoubleLiteral
 Double literal. More...
class  AST::StringLiteral
 String literal. More...
class  AST::BinaryExpr
 Binary expression container. More...
class  AST::UnaryExpr
 Unary expression container. More...
class  AST::VarExpr
 Variable expression container. More...
class  AST::FuncCallExpr
 Function calling expression container. More...
class  AST::ChainObjects
 Chain of objects expression container. More...
class  AST::VarDeclStmt
 Statement of variable declaration. More...
class  AST::VarAsgnStmt
 Statement of assignment of variable. More...
class  AST::FuncDeclStmt
 Statement of functions declaration. More...
class  AST::FuncCallStmt
 Statement of functions calling. More...
class  AST::ReturnStmt
 Statement of 'return'. More...
class  AST::IfElseStmt
 Statement of control flow operator. More...
class  AST::WhileCycleStmt
 Statement of while cycle. More...
class  AST::DoWhileCycleStmt
 Statement of do-while cycle. More...
class  AST::ForCycleStmt
 Statement of for cycle. More...
class  AST::BreakStmt
 Statement of break. More...
class  AST::ContinueStmt
 Statement of break. More...
class  AST::ModuleStmt
 Statement of module definition. More...
class  AST::UseModuleStmt
 Statement of import the module. More...
class  AST::ExternStmt
 Statement of extern calls. More...

Namespaces

namespace  AST

Typedefs

using AST::StmtPtr = std::unique_ptr<Stmt>
using AST::ExprPtr = std::unique_ptr<Expr>

Enumerations

enum  AST::TypeValue {
  AST::TYPE_BOOL , AST::TYPE_CHAR , AST::TYPE_SHORT , AST::TYPE_INT ,
  AST::TYPE_LONG , AST::TYPE_FLOAT , AST::TYPE_DOUBLE , AST::TYPE_NOTH ,
  AST::TYPE_STRING_LIT , AST::TYPE_TRAIT , AST::TYPE_CLASS , AST::TYPE_MODULE
}
 Type values enum. More...
enum  AST::AccessModifier { AST::ACCESS_NONE , AST::ACCESS_PRIVATE , AST::ACCESS_PUBLIC }
 Access modifier for statements. More...

Detailed Description

Header file for defining AST tree elements.

Definition in file ast.hpp.