topazc
AST Namespace Reference

Classes

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

Typedefs

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

Enumerations

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

Typedef Documentation

◆ ExprPtr

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

Definition at line 126 of file ast.hpp.

◆ StmtPtr

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

Definition at line 125 of file ast.hpp.

Enumeration Type Documentation

◆ AccessModifier

Access modifier for statements.

Enumerator
ACCESS_NONE 
ACCESS_PRIVATE 
ACCESS_PUBLIC 

Definition at line 97 of file ast.hpp.

◆ TypeValue

Type values enum.

Enumerator
TYPE_BOOL 

'bool' type

TYPE_CHAR 

'char' type

TYPE_SHORT 

'short' type

TYPE_INT 

'int' type

TYPE_LONG 

'long' type

TYPE_FLOAT 

'float' type

TYPE_DOUBLE 

'double' type

TYPE_NOTH 

'noth' type (only for functions)

TYPE_STRING_LIT 

String literal type

TYPE_TRAIT 

Trait type

TYPE_CLASS 

Class type

TYPE_MODULE 

Module (is not a type)

Definition at line 19 of file ast.hpp.