aboutsummaryrefslogtreecommitdiffhomepage
path: root/parse_tree.h
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-06-24 12:33:40 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-06-24 12:33:40 -0700
commit66af0c1a53b8108e6509a24921a068870120244c (patch)
treed83a2a61204a0754606c7efae59fa1bfc9046989 /parse_tree.h
parent70c6ca76cb72c7a863a24ba24be3a0eec26504e7 (diff)
More work on the AST. block statements worked out a bit more.
Diffstat (limited to 'parse_tree.h')
-rw-r--r--parse_tree.h8
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