aboutsummaryrefslogtreecommitdiff
path: root/MoonParser/ast.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'MoonParser/ast.hpp')
-rw-r--r--MoonParser/ast.hpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/MoonParser/ast.hpp b/MoonParser/ast.hpp
index 01e2350..a9c2db7 100644
--- a/MoonParser/ast.hpp
+++ b/MoonParser/ast.hpp
@@ -69,6 +69,8 @@ public:
69 virtual void visit(void* user_data) {} 69 virtual void visit(void* user_data) {}
70 70
71 virtual int get_type() { return ast_type<ast_node>(); } 71 virtual int get_type() { return ast_type<ast_node>(); }
72
73 virtual ast_node* get_flattened() { return this; }
72private: 74private:
73 //parent 75 //parent
74 ast_node *m_parent; 76 ast_node *m_parent;
@@ -82,7 +84,7 @@ private:
82template<class T> 84template<class T>
83T* ast_cast(ast_node *node) 85T* ast_cast(ast_node *node)
84{ 86{
85 return ast_type<T>() == node->get_type() ? static_cast<T*>(node) : nullptr; 87 return node && ast_type<T>() == node->get_type() ? static_cast<T*>(node) : nullptr;
86} 88}
87 89
88class ast_member; 90class ast_member;