diff options
author | John Hodge <tpg@mutabah.net> | 2016-03-05 14:09:58 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-03-05 14:09:58 +0800 |
commit | bc539dbc6f21cc3c5d12e0606f02421fc4eb06ad (patch) | |
tree | 88ee37159dd171c0086fcd553e7a3a4c7c1228d6 | |
parent | 6791cb4e605fbccb36a160c350420fc693c36b92 (diff) | |
download | mrust-bc539dbc6f21cc3c5d12e0606f02421fc4eb06ad.tar.gz |
BNF - Clean up conflicts, extra handling
-rw-r--r-- | bnf/rust.y | 23 | ||||
-rw-r--r-- | bnf/rust_expr.y_tree.h | 6 | ||||
-rw-r--r-- | bnf/rust_tts.y.h | 1 |
3 files changed, 18 insertions, 12 deletions
@@ -154,7 +154,8 @@ attr | DOC_COMMENT { $$ = new MetaItem("doc", consume($1)); } ; meta_items - : meta_item { $$ = new MetaItems(); $$->push_back( consume($1) ); } + : { $$ = new MetaItems(); } + | meta_item { $$ = new MetaItems(); $$->push_back( consume($1) ); } | meta_items ',' meta_item { $$ = $1; $$->push_back( consume($3) ); } ; meta_item @@ -280,7 +281,7 @@ fn_def_arg_PROTO fn_qualifiers : RWD_extern extern_abi | RWD_const - | RWD_unsafe +/* | RWD_unsafe */ | RWD_const RWD_unsafe ; @@ -347,14 +348,14 @@ struct_def_item: attrs opt_pub IDENT ':' type; /* --- Enum --- */ enum_def: IDENT generic_def where_clause '{' enum_variants '}' { $$ = new Enum(); }; -enum_variants: | enum_variant_list | enum_variant_list ','; -enum_variant_list: enum_variant | enum_variant_list ',' enum_variant; +enum_variants: | enum_variant_list; +enum_variant_list: enum_variant | enum_variant ',' | enum_variant ',' enum_variant_list; enum_variant: attrs enum_variant_; enum_variant_ : IDENT | IDENT '=' expr | IDENT '(' type_list ')' - | IDENT '{' struct_def_items '}' + | IDENT '{' struct_def_items opt_comma '}' ; /* --- Trait --- */ @@ -508,10 +509,14 @@ type_nopath : hrlb_def opt_unsafe RWD_fn '(' fn_def_arg_list_PROTO ')' fn_def_ret | hrlb_def opt_unsafe RWD_extern extern_abi RWD_fn '(' fn_def_arg_list_PROTO ')' fn_def_ret | '_' - | '&' opt_lifetime type_ele - | DOUBLEAMP opt_lifetime type_ele - | '&' opt_lifetime RWD_mut type_ele - | DOUBLEAMP opt_lifetime RWD_mut type_ele + | '&' type_ele + | '&' LIFETIME type_ele + | DOUBLEAMP type_ele + | DOUBLEAMP LIFETIME type_ele + | '&' RWD_mut type_ele + | '&' LIFETIME RWD_mut type_ele + | DOUBLEAMP RWD_mut type_ele + | DOUBLEAMP LIFETIME RWD_mut type_ele | '*' RWD_const type_ele | '*' RWD_mut type_ele | '[' type ']' diff --git a/bnf/rust_expr.y_tree.h b/bnf/rust_expr.y_tree.h index c3635830..ec019884 100644 --- a/bnf/rust_expr.y_tree.h +++ b/bnf/rust_expr.y_tree.h @@ -1,8 +1,8 @@ _(expr_noblock): _(expr_assign); _(expr_assign) - : _(expr_0) assign_op _(expr_assign) - | _(expr_0) + : _(expr_0) + | _(expr_0) assign_op _(expr_assign) ; _(expr_0): _(expr_range); @@ -10,8 +10,8 @@ _(expr_0): _(expr_range); _(expr_range) : _(expr_range_n) | _(expr_range_n) DOUBLEDOT - | DOUBLEDOT _(expr_range_n) | _(expr_range_n) DOUBLEDOT _(expr_range_n) + | DOUBLEDOT _(expr_range_n) | DOUBLEDOT ; _(expr_range_n): _(expr_bor); diff --git a/bnf/rust_tts.y.h b/bnf/rust_tts.y.h index 78d3d581..e406d58c 100644 --- a/bnf/rust_tts.y.h +++ b/bnf/rust_tts.y.h @@ -6,6 +6,7 @@ tt_tok | _T(CHARLIT) | _T(INTEGER) | _T(FLOAT) | _C(',') | _C(';') | _C('_') + | _T(RWD_mod) | _T(RWD_self) | _T(RWD_super) | _T(RWD_mut) | _T(RWD_ref) | _T(RWD_let) | _T(RWD_where) | _T(RWD_pub) | _T(RWD_in) | _T(RWD_as) | _T(RWD_for ) | _T(RWD_while) | _T(RWD_loop) | _T(RWD_if) | _T(RWD_else) | _T(RWD_match) | _T(RWD_box) | _T(RWD_move) | _T(RWD_return) | _T(RWD_continue) | _T(RWD_break) |