diff options
author | ridiculousfish <corydoras@ridiculousfish.com> | 2013-06-24 12:33:40 -0700 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2013-06-24 12:33:40 -0700 |
commit | 66af0c1a53b8108e6509a24921a068870120244c (patch) | |
tree | d83a2a61204a0754606c7efae59fa1bfc9046989 /parse_tree.h | |
parent | 70c6ca76cb72c7a863a24ba24be3a0eec26504e7 (diff) |
More work on the AST. block statements worked out a bit more.
Diffstat (limited to 'parse_tree.h')
-rw-r--r-- | parse_tree.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/parse_tree.h b/parse_tree.h index 49ec6a13..29365209 100644 --- a/parse_tree.h +++ b/parse_tree.h @@ -18,7 +18,7 @@ #define PARSER_DIE() assert(0) class parse_node_t; -typedef std::vector<parse_node_t> parse_node_tree_t; +class parse_node_tree_t; typedef size_t node_offset_t; #define NODE_OFFSET_INVALID (static_cast<node_offset_t>(-1)) @@ -123,7 +123,6 @@ class parse_node_t /* Type-dependent data */ uint32_t tag; - /* Description */ wcstring describe(void) const; @@ -139,6 +138,9 @@ class parse_node_t } }; +class parse_node_tree_t : public std::vector<parse_node_t> +{ +}; /* Fish grammar: @@ -163,7 +165,7 @@ class parse_node_t block_statement = block_header STATEMENT_TERMINATOR job_list <END> arguments_or_redirections_list block_header = if_header | for_header | while_header | function_header | begin_header - if_header = IF statement + if_header = IF job for_header = FOR var_name IN arguments_or_redirections_list while_header = WHILE statement begin_header = BEGIN |