diff options
| author | Li Jin <dragon-fly@qq.com> | 2017-07-19 10:01:27 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2017-07-19 10:01:27 +0800 |
| commit | 2531792fa8da2a2f2ae218c43937f88028d26888 (patch) | |
| tree | d06690cf05951897e6293f732226c205609ef4c3 /MoonParser/ast.hpp | |
| parent | 21328c2299eebc03c13478d7d214f9ed58d9688e (diff) | |
| download | yuescript-2531792fa8da2a2f2ae218c43937f88028d26888.tar.gz yuescript-2531792fa8da2a2f2ae218c43937f88028d26888.tar.bz2 yuescript-2531792fa8da2a2f2ae218c43937f88028d26888.zip | |
adding codes.
Diffstat (limited to '')
| -rw-r--r-- | MoonParser/ast.hpp | 4 |
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; } | ||
| 72 | private: | 74 | private: |
| 73 | //parent | 75 | //parent |
| 74 | ast_node *m_parent; | 76 | ast_node *m_parent; |
| @@ -82,7 +84,7 @@ private: | |||
| 82 | template<class T> | 84 | template<class T> |
| 83 | T* ast_cast(ast_node *node) | 85 | T* 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 | ||
| 88 | class ast_member; | 90 | class ast_member; |
