Lines Matching refs:AstNode
35 class AstNode {
37 AstNode() = default;
38 virtual ~AstNode() = default;
43 class Declaration : public AstNode {
113 class ArgList : public AstNode {
118 explicit ArgList(std::vector<std::unique_ptr<AstNode>> arg_list);
125 std::vector<std::unique_ptr<AstNode>> arguments_;
211 void AddStatement(std::unique_ptr<AstNode> statement);
212 void AddStatement(AstNode* statement); // Takes ownership
219 std::vector<std::unique_ptr<AstNode>> statements_;
268 class SwitchStatement : public AstNode {
289 class Assignment : public AstNode {
292 Assignment(const std::string& left, AstNode* right);
298 std::unique_ptr<AstNode> rhs_;
303 class MethodCall : public AstNode {
318 class IfStatement : public AstNode {
320 explicit IfStatement(AstNode* expression,
328 std::unique_ptr<AstNode> expression_;
336 class Statement : public AstNode {
338 explicit Statement(std::unique_ptr<AstNode> expression);
339 explicit Statement(AstNode* expression); // Takes possession.
345 std::unique_ptr<AstNode> expression_;
350 class Comparison : public AstNode {
352 Comparison(AstNode* lhs, const std::string& comparison, AstNode* rhs);
357 std::unique_ptr<AstNode> left_;
358 std::unique_ptr<AstNode> right_;
364 class LiteralExpression : public AstNode {
394 class Document : public AstNode {