34 std::string
toString()
const override;
42 std::string
toString()
const override;
50 std::string
toString()
const override;
58 std::string
toString()
const override;
65 std::unique_ptr<VariableNode>
lhs;
66 std::unique_ptr<ASTNode>
rhs;
67 std::string
toString()
const override;
76 std::string
toString()
const override;
84 std::vector<std::vector<double>>
rows;
85 std::string
toString()
const override;
Lexer for the picceler programming language.
ASTNode(const ASTNode &)=delete
ASTNode(ASTNode &&)=default
ASTNode & operator=(ASTNode &&)=default
virtual std::string toString() const =0
virtual ~ASTNode()=default
ASTNode & operator=(const ASTNode &)=delete
AST node for assignment statements.
Definition ast.h:64
std::string toString() const override
Definition ast.cpp:15
std::unique_ptr< ASTNode > rhs
Definition ast.h:66
std::unique_ptr< VariableNode > lhs
Definition ast.h:65
AST node for function calls.
Definition ast.h:73
std::string callee
Definition ast.h:74
std::string toString() const override
Definition ast.cpp:19
std::vector< std::unique_ptr< ASTNode > > arguments
Definition ast.h:75
AST node for kernel definitions.
Definition ast.h:83
std::vector< std::vector< double > > rows
Definition ast.h:84
std::string toString() const override
Definition ast.cpp:30
AST node for the entire module.
Definition ast.h:32
std::vector< std::unique_ptr< ASTNode > > statements
Definition ast.h:33
std::string toString() const override
Definition ast.cpp:7
AST node for numeric literals.
Definition ast.h:56
std::string toString() const override
Definition ast.cpp:13
int64_t value
Definition ast.h:57
AST node for string literals.
Definition ast.h:48
std::string value
Definition ast.h:49
std::string toString() const override
Definition ast.cpp:11
AST node for variable references.
Definition ast.h:40
std::string name
Definition ast.h:41
std::string toString() const override
Definition ast.cpp:9