Lines Matching refs:AstNode
33 class AstNode {
35 AstNode() = default;
36 virtual ~AstNode() = default;
39 AstNode(const AstNode&) = delete;
40 AstNode(AstNode&&) = delete;
41 AstNode& operator=(const AstNode&) = delete;
42 AstNode& operator=(AstNode&&) = delete;
48 class Declaration : public AstNode {
109 class ArgList : public AstNode {
114 explicit ArgList(std::vector<std::unique_ptr<AstNode>> arg_list);
121 std::vector<std::unique_ptr<AstNode>> arguments_;
199 void AddStatement(std::unique_ptr<AstNode> statement);
200 void AddStatement(AstNode* statement); // Takes ownership
207 std::vector<std::unique_ptr<AstNode>> statements_;
253 class SwitchStatement : public AstNode {
272 class Assignment : public AstNode {
275 Assignment(const std::string& left, AstNode* right);
281 std::unique_ptr<AstNode> rhs_;
284 class MethodCall : public AstNode {
297 class IfStatement : public AstNode {
299 explicit IfStatement(AstNode* expression,
307 std::unique_ptr<AstNode> expression_;
313 class Statement : public AstNode {
315 explicit Statement(std::unique_ptr<AstNode> expression);
316 explicit Statement(AstNode* expression); // Takes possession.
322 std::unique_ptr<AstNode> expression_;
325 class Comparison : public AstNode {
327 Comparison(AstNode* lhs, const std::string& comparison, AstNode* rhs);
332 std::unique_ptr<AstNode> left_;
333 std::unique_ptr<AstNode> right_;
337 class LiteralExpression : public AstNode {
363 class Document : public AstNode {