 |
Nabla
1.0
Nabla - a DSL for Automatic differentiation
|
Go to the documentation of this file.
10 #include <unordered_map>
83 virtual ~Node() =
default;
99 virtual ~Start() =
default;
100 void transpile(std::ostream &out,
int tab = 0)
const;
112 virtual ~Decl() =
default;
113 void transpile(std::ostream &out,
int tab = 0)
const;
124 void transpile(std::ostream &out,
int tab = 0)
const;
134 void transpile(std::ostream &out,
int tab = 0)
const;
168 Initializer(std::vector<Initializer *> *InitializerList);
173 void transpile(std::ostream &out,
int tab = 0)
const;
185 std::optional<AssignmentOperator>
op;
187 AssgnStmt(std::string, std::optional<AssignmentOperator>,
Expr *);
189 void transpile(std::ostream &out,
int tab = 0)
const;
202 virtual ~Expr() =
default;
203 virtual void transpile(std::ostream &out,
int tab = 0)
const;
215 void transpile(std::ostream &out,
int tab = 0)
const override;
230 void transpile(std::ostream &out,
int tab = 0)
const override;
244 void transpile(std::ostream &out,
int tab = 0)
const;
void transpile(std::ostream &out, int tab=0) const
Definition: ast.cpp:544
bool isInt
Definition: ast.h:146
AssignmentOperator
Definition: ast.h:55
std::optional< LibFuncs > libfunc
Definition: ast.h:224
void transpile(std::ostream &out, int tab=0) const
Definition: ast.cpp:576
~type_value()
Definition: ast.h:163
int col_num
Definition: ast.h:180
UnaryExpr(Expr *expr, std::optional< LibFuncs > libfunc, std::string identifier, ConstValue *cvalue)
Definition: ast.cpp:309
void transpile(std::ostream &out, int tab=0) const
Definition: ast.cpp:683
std::optional< AssignmentOperator > op
Definition: ast.h:185
std::string name
Definition: ast.h:184
Expr * rhs
Definition: ast.h:209
virtual ~InitDeclarator()=default
inbuilt_type value
Definition: ast.h:145
AssgnStmt(std::string, std::optional< AssignmentOperator >, Expr *)
Definition: ast.cpp:103
void transpile(std::ostream &out, int tab=0) const
Definition: ast.cpp:658
int int_val
Definition: ast.h:142
Initializer(ConstValue *value)
Definition: ast.cpp:62
void transpile(std::ostream &out, int tab=0) const
Definition: ast.cpp:597
std::vector< class Decl * > * DeclList
Definition: ast.h:94
Initializer * initializer
Definition: ast.h:121
std::string name
Definition: ast.h:241
Expr * expr
Definition: ast.h:221
GradStmt(GradType, std::string)
Definition: ast.cpp:472
BinaryExpr(Expr *lhs, Expr *rhs, char op)
Definition: ast.cpp:121
virtual void initialize_expression_node_info(std::unordered_map< std::string, SymTabItem > *symbolTable)
Definition: ast.cpp:119
virtual void printExpression()
Definition: ast.cpp:117
type_value val
Definition: ast.h:165
virtual ~Declarator()=default
Expr * expr
Definition: ast.h:186
TypeSpecifier DataType
Definition: ast.h:197
std::string identifier
Definition: ast.h:222
void transpile(std::ostream &out, int tab=0) const
Definition: ast.cpp:619
ConstValue(int value)
Definition: ast.cpp:50
virtual ~Initializer()=default
ConstValue * cvalue
Definition: ast.h:160
char op
Definition: ast.h:210
GradType grad_type
Definition: ast.h:240
std::vector< class AssgnStmt * > * AssgnStmtList
Definition: ast.h:95
LibFuncs
Definition: ast.h:47
GradSpecifier GradType
Definition: ast.h:108
float float_val
Definition: ast.h:143
virtual ~GradStmt()=default
virtual void transpile(std::ostream &out, int tab=0) const
Definition: ast.cpp:679
virtual ~UnaryExpr()=default
GradSpecifier
Definition: ast.h:25
TypeSpecifier DataType
Definition: ast.h:109
Expr()
Definition: ast.cpp:112
constexpr type_value()
Definition: ast.h:162
void printInitializerList()
Definition: ast.cpp:74
InitDeclarator(Declarator *, Initializer *)
Definition: ast.cpp:38
Declarator * declarator
Definition: ast.h:120
void transpile(std::ostream &out, int tab=0) const override
Definition: ast.cpp:299
virtual ~AssgnStmt()=default
bool isScalar
Definition: ast.h:166
Declarator(std::string)
Definition: ast.cpp:44
Node()
Definition: ast.cpp:18
GradType
Definition: ast.h:71
virtual void initialize_expression_node_info(std::unordered_map< std::string, SymTabItem > *symbolTable) override
Definition: ast.cpp:158
std::vector< Initializer * > * InitializerList
Definition: ast.h:161
void transpile(std::ostream &out, int tab=0) const
Definition: ast.cpp:513
virtual void printExpression() override
Definition: ast.cpp:317
virtual ~BinaryExpr()=default
TypeSpecifier
Definition: ast.h:31
Decl(GradSpecifier, TypeSpecifier, InitDeclarator *)
Definition: ast.cpp:31
virtual void initialize_expression_node_info(std::unordered_map< std::string, SymTabItem > *symbolTable) override
Definition: ast.cpp:357
std::unordered_map< std::string, SymTabItem > * symbolTable
Definition: ast.h:97
std::vector< int > Dimensions
Definition: ast.h:131
void transpile(std::ostream &out, int tab=0) const override
Definition: ast.cpp:421
Start(std::vector< class Decl * > *DeclList, std::vector< class AssgnStmt * > *AssgnStmtList, std::vector< class GradStmt * > *GradStmtList, std::unordered_map< std::string, SymTabItem > *symbolTable)
Definition: ast.cpp:23
int yycolumn
Definition: ast.h:14
virtual void printExpression() override
Definition: ast.cpp:149
std::string name
Definition: ast.h:130
std::vector< class GradStmt * > * GradStmtList
Definition: ast.h:96
virtual ~ConstValue()=default
Expr * lhs
Definition: ast.h:209
std::vector< int > dimensions
Definition: ast.h:196
ConstValue * cvalue
Definition: ast.h:223
int row_num
Definition: ast.h:180
InitDeclarator * InitDeclaratorList
Definition: ast.h:110