diff --git a/src/v4/extdeps/languages/cpp.dag b/src/v4/extdeps/languages/cpp.dag index 24c12614d22..13120d1bb3f 100644 --- a/src/v4/extdeps/languages/cpp.dag +++ b/src/v4/extdeps/languages/cpp.dag @@ -8,8 +8,8 @@ module v4.extdeps.languages.cpp import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, FormalGrammarSymbol, - FormalNonterminal, FormalNonterminalOccurrence, FormalProduction, FormalTerminal, @@ -1145,15 +1145,8 @@ fn cpp_formal_rhs_from_tokens(tokens: List) -> List
) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - fn cpp_formal_production_mvp1_fn_add() -> FormalProduction { - cpp_formal_production( + grammar_formal_production( lhs: cpp_production_mvp1_fn_add, rhs: cpp_formal_rhs_from_tokens(tokens: cpp_mvp1_concrete_tokens()) ) diff --git a/src/v4/extdeps/languages/dag.dag b/src/v4/extdeps/languages/dag.dag index 403c2de8f32..4556e83525c 100644 --- a/src/v4/extdeps/languages/dag.dag +++ b/src/v4/extdeps/languages/dag.dag @@ -11,9 +11,9 @@ import v4.std.collection { List, Set } import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, ParseGrammar, FormalGrammarSymbol, - FormalNonterminal, FormalNonterminalOccurrence, FormalProduction, FormalTerminal, @@ -493,30 +493,23 @@ fn emit_grammar_relation_row( -fn dag_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - // Canonical CFG: flat FormalProduction rhs (choice/optional/repeat as multi-rule expansions). fn dag_wave1_formal_productions() -> List { [ - dag_formal_production( + grammar_formal_production( lhs: dag_production_module_header, rhs: [ grammar_formal_terminal(identity: dag_token_kw_module), grammar_formal_nonterminal_occurrence(identity: dag_production_qualified_name) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_qualified_name, rhs: [ grammar_formal_terminal(identity: dag_token_ident) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_qualified_name, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -525,8 +518,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_qualified_name_repeat_suffix) ] ), - dag_formal_production(lhs: dag_production_qualified_name_repeat_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_qualified_name_repeat_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_qualified_name_repeat_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_dot), @@ -534,7 +527,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_qualified_name_repeat_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_generic_params, rhs: [ grammar_formal_terminal(identity: dag_token_lt), @@ -542,13 +535,13 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_gt) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_ident_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_ident_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -557,8 +550,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_ident_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_ident_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_ident_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_ident_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -566,27 +559,27 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_ident_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_ident_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident), grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_ident_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_param_list, rhs: [ grammar_formal_terminal(identity: dag_token_lparen), grammar_formal_terminal(identity: dag_token_rparen) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_param_list, rhs: [ grammar_formal_terminal(identity: dag_token_lparen), @@ -594,7 +587,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rparen) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_typed_param_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -602,7 +595,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_typed_param_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -615,8 +608,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_typed_param_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_typed_param_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_typed_param_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_typed_param_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -626,7 +619,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_typed_param_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_typed_param_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -635,20 +628,20 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_typed_param_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_qualified_type_generics, rhs: [ grammar_formal_terminal(identity: dag_token_lt), grammar_formal_terminal(identity: dag_token_gt) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_qualified_type_generics, rhs: [ grammar_formal_terminal(identity: dag_token_lt), @@ -656,19 +649,19 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_gt) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_qualified_type_generics_type_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_comma_type_expr_list) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_type_expr_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_type_expr_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr), @@ -677,8 +670,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_type_expr_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_type_expr_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_type_expr_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_type_expr_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -686,20 +679,20 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_type_expr_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_type_expr_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr), grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_type_expr_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_type, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -709,7 +702,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_type, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -720,26 +713,26 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_qualified_name) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_qualified_name), grammar_formal_nonterminal_occurrence(identity: dag_production_qualified_type_generics) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_fn_type) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_import_block, rhs: [ grammar_formal_terminal(identity: dag_token_lbrace), @@ -747,14 +740,14 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_field_decl_block, rhs: [ grammar_formal_terminal(identity: dag_token_lbrace), grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_field_decl_block, rhs: [ grammar_formal_terminal(identity: dag_token_lbrace), @@ -762,7 +755,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_decl_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -770,7 +763,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_decl_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -783,8 +776,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_field_decl_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_field_decl_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_field_decl_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_field_decl_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -794,7 +787,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_field_decl_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_decl_list, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -803,20 +796,20 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_decl_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_body, rhs: [ grammar_formal_terminal(identity: dag_token_lbrace), grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_body, rhs: [ grammar_formal_terminal(identity: dag_token_lbrace), @@ -825,27 +818,27 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production(lhs: dag_production_fn_body_repeat_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_fn_body_repeat_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_fn_body_repeat_suffix, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_stmt), grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body_repeat_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_stmt, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_let_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_stmt, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_let_expr, rhs: [ grammar_formal_terminal(identity: dag_token_kw_let), @@ -854,64 +847,64 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_match_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_if_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_fn_literal) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_block_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_unary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_postfix_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_unary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_bang), grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_postfix_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_primary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_postfix_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_primary_expr), grammar_formal_nonterminal_occurrence(identity: dag_production_postfix_expr_repeat_suffix) ] ), - dag_formal_production(lhs: dag_production_postfix_expr_repeat_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_postfix_expr_repeat_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_postfix_expr_repeat_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_dot), @@ -919,7 +912,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_postfix_expr_repeat_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_postfix_expr_repeat_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_dot), @@ -928,14 +921,14 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_postfix_expr_repeat_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_postfix_call_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_lparen), grammar_formal_terminal(identity: dag_token_rparen) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_postfix_call_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_lparen), @@ -943,13 +936,13 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rparen) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_arg_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_arg) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_arg_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_arg), @@ -958,8 +951,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_arg_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_arg_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_arg_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_arg_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -967,40 +960,40 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_arg_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_arg_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_arg), grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_arg_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_ident) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_ident), grammar_formal_nonterminal_occurrence(identity: dag_production_primary_ident_suffix) ] ), - dag_formal_production(lhs: dag_production_primary_ident_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_primary_ident_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_primary_ident_suffix, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_postfix_call_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_ident_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_lbrace), @@ -1008,13 +1001,13 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_init_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_field_init) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_init_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_field_init), @@ -1023,8 +1016,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_field_init_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_field_init_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_field_init_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_field_init_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -1032,44 +1025,44 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_field_init_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_init_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_field_init), grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_init_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_int_literal) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_string_literal) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_kw_true) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_kw_false) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_lbracket), @@ -1077,13 +1070,13 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbracket) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_expr_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_expr_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_expr), @@ -1092,8 +1085,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_expr_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_expr_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_expr_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_expr_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -1101,20 +1094,20 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_expr_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_expr_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_expr), grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_expr_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_lbrace), @@ -1122,7 +1115,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_primary_expr, rhs: [ grammar_formal_terminal(identity: dag_token_lparen), @@ -1130,13 +1123,13 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rparen) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_block_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_arg, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -1144,13 +1137,13 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_arg, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_field_init, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -1158,7 +1151,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_match_expr, rhs: [ grammar_formal_terminal(identity: dag_token_kw_match), @@ -1167,7 +1160,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_match_expr, rhs: [ grammar_formal_terminal(identity: dag_token_kw_match), @@ -1177,7 +1170,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_match_arm, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_pattern), @@ -1185,51 +1178,51 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_pattern, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_constructor_pattern) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_pattern, rhs: [ grammar_formal_terminal(identity: dag_token_kw_true) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_pattern, rhs: [ grammar_formal_terminal(identity: dag_token_kw_false) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_pattern, rhs: [ grammar_formal_terminal(identity: dag_token_int_literal) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_pattern, rhs: [ grammar_formal_terminal(identity: dag_token_string_literal) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_constructor_pattern, rhs: [ grammar_formal_terminal(identity: dag_token_ident) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_constructor_pattern, rhs: [ grammar_formal_terminal(identity: dag_token_ident), grammar_formal_nonterminal_occurrence(identity: dag_production_constructor_pattern_suffix) ] ), - dag_formal_production(lhs: dag_production_constructor_pattern_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_constructor_pattern_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_constructor_pattern_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_lbrace), @@ -1237,7 +1230,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rbrace) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_constructor_pattern_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_lparen), @@ -1245,13 +1238,13 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_terminal(identity: dag_token_rparen) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_pattern_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_field_pattern) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_pattern_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_field_pattern), @@ -1260,8 +1253,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_field_pattern_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_field_pattern_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_field_pattern_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_field_pattern_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -1269,26 +1262,26 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_field_pattern_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_pattern_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_field_pattern), grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_field_pattern_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_pattern_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_pattern) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_pattern_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_pattern), @@ -1297,8 +1290,8 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_pattern_list_suffix) ] ), - dag_formal_production(lhs: dag_production_comma_pattern_list_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_comma_pattern_list_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_comma_pattern_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma), @@ -1306,20 +1299,20 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_comma_pattern_list_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_pattern_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_pattern), grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_comma_pattern_list_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_comma) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_field_pattern, rhs: [ grammar_formal_terminal(identity: dag_token_ident), @@ -1327,25 +1320,25 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_pattern) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_field_pattern, rhs: [ grammar_formal_terminal(identity: dag_token_ident) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_if_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_if_then_form) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_if_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_if_block_form) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_if_then_form, rhs: [ grammar_formal_terminal(identity: dag_token_kw_if), @@ -1356,7 +1349,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_if_block_form, rhs: [ grammar_formal_terminal(identity: dag_token_kw_if), @@ -1366,7 +1359,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_if_block_form, rhs: [ grammar_formal_terminal(identity: dag_token_kw_if), @@ -1376,7 +1369,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_if_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_literal, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -1385,7 +1378,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_literal, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -1395,7 +1388,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_literal, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -1406,7 +1399,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_literal, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -1418,14 +1411,14 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_import_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_import), grammar_formal_nonterminal_occurrence(identity: dag_production_qualified_name) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_import_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_import), @@ -1433,34 +1426,34 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_import_block) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_variant, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_variant, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_type_expr), grammar_formal_nonterminal_occurrence(identity: dag_production_field_decl_block) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_alias_rhs, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_type_variant) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_alias_rhs, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_type_variant), grammar_formal_nonterminal_occurrence(identity: dag_production_type_alias_rhs_repeat_suffix) ] ), - dag_formal_production(lhs: dag_production_type_alias_rhs_repeat_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_type_alias_rhs_repeat_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_type_alias_rhs_repeat_suffix, rhs: [ grammar_formal_terminal(identity: dag_token_pipe), @@ -1468,14 +1461,14 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_type_alias_rhs_repeat_suffix) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_type), grammar_formal_terminal(identity: dag_token_ident) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_type), @@ -1483,7 +1476,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_generic_params) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_type), @@ -1491,7 +1484,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_field_decl_block) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_type), @@ -1500,7 +1493,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_type_alias_rhs) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_type), @@ -1509,7 +1502,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_field_decl_block) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_type_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_type), @@ -1519,7 +1512,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_type_alias_rhs) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_data_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_data), @@ -1530,7 +1523,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -1539,7 +1532,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -1550,7 +1543,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -1560,7 +1553,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_fn_decl, rhs: [ grammar_formal_terminal(identity: dag_token_kw_fn), @@ -1572,37 +1565,37 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_fn_body) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_top_level_item, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_import_decl) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_top_level_item, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_type_decl) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_top_level_item, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_data_decl) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_top_level_item, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_fn_decl) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_module, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_module_header) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_module, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_module_header), @@ -1610,16 +1603,16 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_module_repeat_suffix) ] ), - dag_formal_production(lhs: dag_production_module_repeat_suffix, rhs: []), - dag_formal_production( + grammar_formal_production(lhs: dag_production_module_repeat_suffix, rhs: []), + grammar_formal_production( lhs: dag_production_module_repeat_suffix, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_top_level_item), grammar_formal_nonterminal_occurrence(identity: dag_production_module_repeat_suffix) ] ), - dag_formal_production(lhs: dag_production_binary_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr)]), - dag_formal_production( + grammar_formal_production(lhs: dag_production_binary_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr)]), + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1627,7 +1620,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1635,7 +1628,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1643,7 +1636,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1651,7 +1644,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1659,7 +1652,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1667,7 +1660,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1675,7 +1668,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1683,7 +1676,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1691,7 +1684,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1699,7 +1692,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1707,7 +1700,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1715,7 +1708,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), @@ -1723,7 +1716,7 @@ fn dag_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: dag_production_unary_expr) ] ), - dag_formal_production( + grammar_formal_production( lhs: dag_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: dag_production_binary_expr), diff --git a/src/v4/extdeps/languages/java.dag b/src/v4/extdeps/languages/java.dag index 04673eb7b4d..fd58f144cdc 100644 --- a/src/v4/extdeps/languages/java.dag +++ b/src/v4/extdeps/languages/java.dag @@ -8,9 +8,9 @@ module v4.extdeps.languages.java import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, Choice, FormalGrammarSymbol, - FormalNonterminal, FormalNonterminalOccurrence, FormalProduction, FormalTerminal, @@ -1033,13 +1033,6 @@ fn java_grammar_atom(id: Symbol) -> Node { -fn java_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - fn java_formal_rhs_from_tokens(tokens: List) -> List { fold_list( xs: tokens, @@ -1054,7 +1047,7 @@ fn java_formal_rhs_from_tokens(tokens: List) -> List FormalProduction { - java_formal_production( + grammar_formal_production( lhs: java_production_mvp1_method_add, rhs: java_formal_rhs_from_tokens(tokens: java_mvp1_concrete_tokens()) ) @@ -1111,8 +1104,8 @@ fn java_wave2_lex() -> LexRules { // Canonical CFG: flat FormalProduction rhs (choice/optional/repeat as multi-rule expansions). fn java_wave2_formal_productions() -> List { [ - java_formal_production(lhs: java_production_compilation_unit, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_class_declaration)]), - java_formal_production( + grammar_formal_production(lhs: java_production_compilation_unit, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_class_declaration)]), + grammar_formal_production( lhs: java_production_class_declaration, rhs: [ grammar_formal_terminal(identity: java_token_kw_public), @@ -1121,26 +1114,26 @@ fn java_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: java_production_class_body) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_class_member_declaration, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_method_declaration)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_class_member_declaration, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_field_declaration)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_class_body_declaration, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_class_member_declaration)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_class_body, rhs: [ grammar_formal_terminal(identity: java_token_lbrace), grammar_formal_terminal(identity: java_token_rbrace) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_class_body, rhs: [ grammar_formal_terminal(identity: java_token_lbrace), @@ -1149,15 +1142,15 @@ fn java_wave2_formal_productions() -> List { grammar_formal_terminal(identity: java_token_rbrace) ] ), - java_formal_production(lhs: java_production_class_body_declaration_suffix, rhs: []), - java_formal_production( + grammar_formal_production(lhs: java_production_class_body_declaration_suffix, rhs: []), + grammar_formal_production( lhs: java_production_class_body_declaration_suffix, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_class_body_declaration), grammar_formal_nonterminal_occurrence(identity: java_production_class_body_declaration_suffix) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_method_header, rhs: [ grammar_formal_terminal(identity: java_token_kw_static), @@ -1165,15 +1158,15 @@ fn java_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: java_production_method_declarator) ] ), - java_formal_production(lhs: java_production_method_body, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_block)]), - java_formal_production( + grammar_formal_production(lhs: java_production_method_body, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_block)]), + grammar_formal_production( lhs: java_production_method_declaration, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_method_header), grammar_formal_nonterminal_occurrence(identity: java_production_method_body) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_field_declaration, rhs: [ grammar_formal_terminal(identity: java_token_kw_static), @@ -1182,32 +1175,32 @@ fn java_wave2_formal_productions() -> List { grammar_formal_terminal(identity: java_token_semicolon) ] ), - java_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_byte)]), - java_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_short)]), - java_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_int)]), - java_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_long)]), - java_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_float)]), - java_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_double)]), - java_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_boolean)]), - java_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_char)]), - java_formal_production( + grammar_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_byte)]), + grammar_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_short)]), + grammar_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_int)]), + grammar_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_long)]), + grammar_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_float)]), + grammar_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_double)]), + grammar_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_boolean)]), + grammar_formal_production(lhs: java_production_primitive_type, rhs: [grammar_formal_terminal(identity: java_token_kw_char)]), + grammar_formal_production( lhs: java_production_result, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_primitive_type)] ), - java_formal_production(lhs: java_production_result, rhs: [grammar_formal_terminal(identity: java_token_kw_void)]), - java_formal_production(lhs: java_production_type, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_primitive_type)]), - java_formal_production( + grammar_formal_production(lhs: java_production_result, rhs: [grammar_formal_terminal(identity: java_token_kw_void)]), + grammar_formal_production(lhs: java_production_type, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_primitive_type)]), + grammar_formal_production( lhs: java_production_formal_parameter, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_type), grammar_formal_terminal(identity: java_token_ident) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_formal_parameter_list, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_formal_parameter)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_formal_parameter_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_formal_parameter), @@ -1216,8 +1209,8 @@ fn java_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: java_production_formal_parameter_list_suffix) ] ), - java_formal_production(lhs: java_production_formal_parameter_list_suffix, rhs: []), - java_formal_production( + grammar_formal_production(lhs: java_production_formal_parameter_list_suffix, rhs: []), + grammar_formal_production( lhs: java_production_formal_parameter_list_suffix, rhs: [ grammar_formal_terminal(identity: java_token_comma), @@ -1225,7 +1218,7 @@ fn java_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: java_production_formal_parameter_list_suffix) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_method_declarator, rhs: [ grammar_formal_terminal(identity: java_token_ident), @@ -1233,7 +1226,7 @@ fn java_wave2_formal_productions() -> List { grammar_formal_terminal(identity: java_token_rparen) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_method_declarator, rhs: [ grammar_formal_terminal(identity: java_token_ident), @@ -1242,20 +1235,20 @@ fn java_wave2_formal_productions() -> List { grammar_formal_terminal(identity: java_token_rparen) ] ), - java_formal_production(lhs: java_production_primary_expression, rhs: [grammar_formal_terminal(identity: java_token_ident)]), - java_formal_production( + grammar_formal_production(lhs: java_production_primary_expression, rhs: [grammar_formal_terminal(identity: java_token_ident)]), + grammar_formal_production( lhs: java_production_multiplicative_expression, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_primary_expression)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_multiplicative_expression, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_primary_expression), grammar_formal_nonterminal_occurrence(identity: java_production_multiplicative_suffix) ] ), - java_formal_production(lhs: java_production_multiplicative_suffix, rhs: []), - java_formal_production( + grammar_formal_production(lhs: java_production_multiplicative_suffix, rhs: []), + grammar_formal_production( lhs: java_production_multiplicative_suffix, rhs: [ grammar_formal_terminal(identity: java_token_star), @@ -1263,19 +1256,19 @@ fn java_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: java_production_multiplicative_suffix) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_additive_expression, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_multiplicative_expression)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_additive_expression, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_multiplicative_expression), grammar_formal_nonterminal_occurrence(identity: java_production_additive_suffix) ] ), - java_formal_production(lhs: java_production_additive_suffix, rhs: []), - java_formal_production( + grammar_formal_production(lhs: java_production_additive_suffix, rhs: []), + grammar_formal_production( lhs: java_production_additive_suffix, rhs: [ grammar_formal_terminal(identity: java_token_plus), @@ -1283,7 +1276,7 @@ fn java_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: java_production_additive_suffix) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_additive_suffix, rhs: [ grammar_formal_terminal(identity: java_token_minus), @@ -1291,18 +1284,18 @@ fn java_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: java_production_additive_suffix) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_expression, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_additive_expression)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_return_statement, rhs: [ grammar_formal_terminal(identity: java_token_kw_return), grammar_formal_terminal(identity: java_token_semicolon) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_return_statement, rhs: [ grammar_formal_terminal(identity: java_token_kw_return), @@ -1310,40 +1303,40 @@ fn java_wave2_formal_productions() -> List { grammar_formal_terminal(identity: java_token_semicolon) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_local_variable_declaration, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_type), grammar_formal_terminal(identity: java_token_ident) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_local_variable_declaration_statement, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_local_variable_declaration), grammar_formal_terminal(identity: java_token_semicolon) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_statement, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_return_statement)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_block_statement, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_local_variable_declaration_statement)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_block_statement, rhs: [grammar_formal_nonterminal_occurrence(identity: java_production_statement)] ), - java_formal_production( + grammar_formal_production( lhs: java_production_block, rhs: [ grammar_formal_terminal(identity: java_token_lbrace), grammar_formal_terminal(identity: java_token_rbrace) ] ), - java_formal_production( + grammar_formal_production( lhs: java_production_block, rhs: [ grammar_formal_terminal(identity: java_token_lbrace), @@ -1352,8 +1345,8 @@ fn java_wave2_formal_productions() -> List { grammar_formal_terminal(identity: java_token_rbrace) ] ), - java_formal_production(lhs: java_production_block_statement_suffix, rhs: []), - java_formal_production( + grammar_formal_production(lhs: java_production_block_statement_suffix, rhs: []), + grammar_formal_production( lhs: java_production_block_statement_suffix, rhs: [ grammar_formal_nonterminal_occurrence(identity: java_production_block_statement), diff --git a/src/v4/extdeps/languages/kotlin.dag b/src/v4/extdeps/languages/kotlin.dag index c3d1552f5ac..2a68c09f56f 100644 --- a/src/v4/extdeps/languages/kotlin.dag +++ b/src/v4/extdeps/languages/kotlin.dag @@ -8,9 +8,9 @@ module v4.extdeps.languages.kotlin import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, Choice, FormalGrammarSymbol, - FormalNonterminal, FormalNonterminalOccurrence, FormalProduction, FormalTerminal, @@ -1659,13 +1659,6 @@ fn kotlin_wave1_lex() -> LexRules { -fn kotlin_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - fn kotlin_formal_rhs_from_tokens(tokens: List) -> List { fold_list( xs: tokens, @@ -1680,7 +1673,7 @@ fn kotlin_formal_rhs_from_tokens(tokens: List) -> Lis } fn kotlin_formal_production_mvp1_fn_add() -> FormalProduction { - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_mvp1_fn_add, rhs: kotlin_formal_rhs_from_tokens(tokens: kotlin_mvp1_concrete_tokens()) ) @@ -1689,8 +1682,8 @@ fn kotlin_formal_production_mvp1_fn_add() -> FormalProduction { // Canonical CFG: flat FormalProduction rhs (choice/optional/repeat as multi-rule expansions). fn kotlin_wave1_formal_productions() -> List { [ - kotlin_formal_production(lhs: kotlin_production_type_expr, rhs: [grammar_formal_terminal(identity: kotlin_token_ident)]), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_type_expr, rhs: [grammar_formal_terminal(identity: kotlin_token_ident)]), + grammar_formal_production( lhs: kotlin_production_typed_param, rhs: [ grammar_formal_terminal(identity: kotlin_token_ident), @@ -1698,12 +1691,12 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_type_expr) ] ), - kotlin_formal_production(lhs: kotlin_production_param_list, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_param_list, rhs: []), + grammar_formal_production( lhs: kotlin_production_param_list, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_typed_param)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_param_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_typed_param), @@ -1712,8 +1705,8 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_param_list_suffix) ] ), - kotlin_formal_production(lhs: kotlin_production_param_list_suffix, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_param_list_suffix, rhs: []), + grammar_formal_production( lhs: kotlin_production_param_list_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_comma), @@ -1721,24 +1714,24 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_param_list_suffix) ] ), - kotlin_formal_production(lhs: kotlin_production_primary_expr, rhs: [grammar_formal_terminal(identity: kotlin_token_ident)]), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_primary_expr, rhs: [grammar_formal_terminal(identity: kotlin_token_ident)]), + grammar_formal_production( lhs: kotlin_production_primary_expr, rhs: [grammar_formal_terminal(identity: kotlin_token_int_literal)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_primary_expr, rhs: [grammar_formal_terminal(identity: kotlin_token_string_literal)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_primary_expr, rhs: [grammar_formal_terminal(identity: kotlin_token_kw_true)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_primary_expr, rhs: [grammar_formal_terminal(identity: kotlin_token_kw_false)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_primary_expr, rhs: [ grammar_formal_terminal(identity: kotlin_token_lparen), @@ -1746,12 +1739,12 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_terminal(identity: kotlin_token_rparen) ] ), - kotlin_formal_production(lhs: kotlin_production_expr_list, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_expr_list, rhs: []), + grammar_formal_production( lhs: kotlin_production_expr_list, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_expr_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr), @@ -1760,8 +1753,8 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr_list_suffix) ] ), - kotlin_formal_production(lhs: kotlin_production_expr_list_suffix, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_expr_list_suffix, rhs: []), + grammar_formal_production( lhs: kotlin_production_expr_list_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_comma), @@ -1769,11 +1762,11 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr_list_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_call_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_primary_expr)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_call_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_primary_expr), @@ -1783,8 +1776,8 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_call_suffix) ] ), - kotlin_formal_production(lhs: kotlin_production_call_suffix, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_call_suffix, rhs: []), + grammar_formal_production( lhs: kotlin_production_call_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_lparen), @@ -1793,19 +1786,19 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_call_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_multiplicative_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_call_expr)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_multiplicative_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_call_expr), grammar_formal_nonterminal_occurrence(identity: kotlin_production_multiplicative_suffix) ] ), - kotlin_formal_production(lhs: kotlin_production_multiplicative_suffix, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_multiplicative_suffix, rhs: []), + grammar_formal_production( lhs: kotlin_production_multiplicative_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_star), @@ -1813,7 +1806,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_multiplicative_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_multiplicative_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_slash), @@ -1821,7 +1814,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_multiplicative_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_multiplicative_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_percent), @@ -1829,19 +1822,19 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_multiplicative_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_additive_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_multiplicative_expr)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_additive_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_multiplicative_expr), grammar_formal_nonterminal_occurrence(identity: kotlin_production_additive_suffix) ] ), - kotlin_formal_production(lhs: kotlin_production_additive_suffix, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_additive_suffix, rhs: []), + grammar_formal_production( lhs: kotlin_production_additive_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_plus), @@ -1849,7 +1842,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_additive_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_additive_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_minus), @@ -1857,19 +1850,19 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_additive_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_comparison_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_additive_expr)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_comparison_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_additive_expr), grammar_formal_nonterminal_occurrence(identity: kotlin_production_comparison_suffix) ] ), - kotlin_formal_production(lhs: kotlin_production_comparison_suffix, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_comparison_suffix, rhs: []), + grammar_formal_production( lhs: kotlin_production_comparison_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_lt), @@ -1877,7 +1870,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_comparison_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_comparison_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_gt), @@ -1885,7 +1878,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_comparison_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_comparison_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_lt_eq), @@ -1893,7 +1886,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_comparison_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_comparison_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_gt_eq), @@ -1901,19 +1894,19 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_comparison_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_equality_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_comparison_expr)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_equality_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_comparison_expr), grammar_formal_nonterminal_occurrence(identity: kotlin_production_equality_suffix) ] ), - kotlin_formal_production(lhs: kotlin_production_equality_suffix, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_equality_suffix, rhs: []), + grammar_formal_production( lhs: kotlin_production_equality_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_eq_eq), @@ -1921,7 +1914,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_equality_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_equality_suffix, rhs: [ grammar_formal_terminal(identity: kotlin_token_bang_eq), @@ -1929,37 +1922,37 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_equality_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_binary_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_equality_expr)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_binary_expr)] ), - kotlin_formal_production(lhs: kotlin_production_return_stmt, rhs: [grammar_formal_terminal(identity: kotlin_token_kw_return)]), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_return_stmt, rhs: [grammar_formal_terminal(identity: kotlin_token_kw_return)]), + grammar_formal_production( lhs: kotlin_production_return_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_return), grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_value_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_val), grammar_formal_terminal(identity: kotlin_token_ident) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_value_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_var), grammar_formal_terminal(identity: kotlin_token_ident) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_value_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_val), @@ -1968,7 +1961,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_type_expr) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_value_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_var), @@ -1977,7 +1970,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_type_expr) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_value_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_val), @@ -1986,7 +1979,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_value_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_var), @@ -1995,7 +1988,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_value_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_val), @@ -2006,7 +1999,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_value_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_var), @@ -2017,7 +2010,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_if_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_if), @@ -2027,7 +2020,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_block) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_if_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_if), @@ -2039,7 +2032,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_block) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_if_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_if), @@ -2051,7 +2044,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_if_stmt) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_while_stmt, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_while), @@ -2061,28 +2054,28 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_block) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_return_stmt)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_value_stmt)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_if_stmt)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_while_stmt)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: kotlin_production_expr)] ), - kotlin_formal_production(lhs: kotlin_production_stmt_list, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_stmt_list, rhs: []), + grammar_formal_production( lhs: kotlin_production_stmt_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_stmt), @@ -2090,38 +2083,38 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_stmt_sep_opt) ] ), - kotlin_formal_production(lhs: kotlin_production_stmt_tail_suffix, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_stmt_tail_suffix, rhs: []), + grammar_formal_production( lhs: kotlin_production_stmt_tail_suffix, rhs: [ grammar_formal_nonterminal_occurrence(identity: kotlin_production_stmt_tail), grammar_formal_nonterminal_occurrence(identity: kotlin_production_stmt_tail_suffix) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_stmt_tail, rhs: [ grammar_formal_terminal(identity: kotlin_token_semicolon), grammar_formal_nonterminal_occurrence(identity: kotlin_production_stmt) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_stmt_tail, rhs: [ grammar_formal_terminal(identity: kotlin_token_nl), grammar_formal_nonterminal_occurrence(identity: kotlin_production_stmt) ] ), - kotlin_formal_production(lhs: kotlin_production_stmt_sep_opt, rhs: []), - kotlin_formal_production( + grammar_formal_production(lhs: kotlin_production_stmt_sep_opt, rhs: []), + grammar_formal_production( lhs: kotlin_production_stmt_sep_opt, rhs: [grammar_formal_terminal(identity: kotlin_token_semicolon)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_stmt_sep_opt, rhs: [grammar_formal_terminal(identity: kotlin_token_nl)] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_block, rhs: [ grammar_formal_terminal(identity: kotlin_token_lbrace), @@ -2129,7 +2122,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_terminal(identity: kotlin_token_rbrace) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_fn_decl, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_fun), @@ -2140,7 +2133,7 @@ fn kotlin_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: kotlin_production_block) ] ), - kotlin_formal_production( + grammar_formal_production( lhs: kotlin_production_fn_decl, rhs: [ grammar_formal_terminal(identity: kotlin_token_kw_fun), diff --git a/src/v4/extdeps/languages/python.dag b/src/v4/extdeps/languages/python.dag index b89b67b4017..9dd30f70b81 100644 --- a/src/v4/extdeps/languages/python.dag +++ b/src/v4/extdeps/languages/python.dag @@ -12,8 +12,8 @@ module v4.extdeps.languages.python import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, FormalGrammarSymbol, - FormalNonterminal, FormalProduction, FormalTerminal, FormalTerminalOccurrence, @@ -877,15 +877,8 @@ fn python_formal_rhs_from_token_classes() -> List { ) } -fn python_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - fn python_formal_production_mvp1_fn_add() -> FormalProduction { - python_formal_production( + grammar_formal_production( lhs: python_production_mvp1_fn_add, rhs: python_formal_rhs_from_token_classes() ) diff --git a/src/v4/extdeps/languages/rust.dag b/src/v4/extdeps/languages/rust.dag index 63b97ea636b..2b40ad27563 100644 --- a/src/v4/extdeps/languages/rust.dag +++ b/src/v4/extdeps/languages/rust.dag @@ -8,9 +8,9 @@ module v4.extdeps.languages.rust import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, Choice, FormalGrammarSymbol, - FormalNonterminal, FormalNonterminalOccurrence, FormalProduction, FormalTerminal, @@ -1478,13 +1478,6 @@ fn rust_grammar_atom(id: Symbol) -> Node { -fn rust_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - fn rust_formal_rhs_from_tokens(tokens: List) -> List { fold_list( xs: tokens, @@ -1499,7 +1492,7 @@ fn rust_formal_rhs_from_tokens(tokens: List) -> List FormalProduction { - rust_formal_production( + grammar_formal_production( lhs: rust_production_mvp1_fn_add, rhs: rust_formal_rhs_from_tokens(tokens: rust_mvp1_concrete_tokens()) ) @@ -2176,8 +2169,8 @@ fn rust_wave2_lex() -> LexRules { // Canonical CFG: flat FormalProduction rhs (choice/optional/repeat as multi-rule expansions). fn rust_wave2_formal_productions() -> List { [ - rust_formal_production(lhs: rust_production_type, rhs: [grammar_formal_terminal(identity: rust_token_ty_i32)]), - rust_formal_production( + grammar_formal_production(lhs: rust_production_type, rhs: [grammar_formal_terminal(identity: rust_token_ty_i32)]), + grammar_formal_production( lhs: rust_production_typed_param, rhs: [ grammar_formal_terminal(identity: rust_token_ident), @@ -2185,12 +2178,12 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_type) ] ), - rust_formal_production(lhs: rust_production_param_list, rhs: []), - rust_formal_production( + grammar_formal_production(lhs: rust_production_param_list, rhs: []), + grammar_formal_production( lhs: rust_production_param_list, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_typed_param)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_param_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: rust_production_typed_param), @@ -2199,8 +2192,8 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_param_list_suffix) ] ), - rust_formal_production(lhs: rust_production_param_list_suffix, rhs: []), - rust_formal_production( + grammar_formal_production(lhs: rust_production_param_list_suffix, rhs: []), + grammar_formal_production( lhs: rust_production_param_list_suffix, rhs: [ grammar_formal_terminal(identity: rust_token_comma), @@ -2208,7 +2201,7 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_param_list_suffix) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_fn_item, rhs: [ grammar_formal_terminal(identity: rust_token_kw_fn), @@ -2221,12 +2214,12 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_block) ] ), - rust_formal_production(lhs: rust_production_primary_expr, rhs: [grammar_formal_terminal(identity: rust_token_ident)]), - rust_formal_production( + grammar_formal_production(lhs: rust_production_primary_expr, rhs: [grammar_formal_terminal(identity: rust_token_ident)]), + grammar_formal_production( lhs: rust_production_primary_expr, rhs: [grammar_formal_terminal(identity: rust_token_int_literal)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_primary_expr, rhs: [ grammar_formal_terminal(identity: rust_token_lparen), @@ -2234,11 +2227,11 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_terminal(identity: rust_token_rparen) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_additive_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_primary_expr)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_additive_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: rust_production_additive_expr), @@ -2246,11 +2239,11 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_primary_expr) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_comparison_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_additive_expr)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_comparison_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: rust_production_additive_expr), @@ -2258,33 +2251,33 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_additive_expr) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_return_expr, rhs: [grammar_formal_terminal(identity: rust_token_kw_return)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_return_expr, rhs: [ grammar_formal_terminal(identity: rust_token_kw_return), grammar_formal_nonterminal_occurrence(identity: rust_production_expr) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr_without_block, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_return_expr)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr_without_block, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_comparison_expr)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_block, rhs: [ grammar_formal_terminal(identity: rust_token_lbrace), grammar_formal_terminal(identity: rust_token_rbrace) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_block, rhs: [ grammar_formal_terminal(identity: rust_token_lbrace), @@ -2292,7 +2285,7 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_terminal(identity: rust_token_rbrace) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_block, rhs: [ grammar_formal_terminal(identity: rust_token_lbrace), @@ -2300,7 +2293,7 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_terminal(identity: rust_token_rbrace) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_block, rhs: [ grammar_formal_terminal(identity: rust_token_lbrace), @@ -2309,15 +2302,15 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_terminal(identity: rust_token_rbrace) ] ), - rust_formal_production(lhs: rust_production_stmts, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_stmt)]), - rust_formal_production( + grammar_formal_production(lhs: rust_production_stmts, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_stmt)]), + grammar_formal_production( lhs: rust_production_stmts, rhs: [ grammar_formal_nonterminal_occurrence(identity: rust_production_stmts), grammar_formal_nonterminal_occurrence(identity: rust_production_stmt) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_let_stmt, rhs: [ grammar_formal_terminal(identity: rust_token_kw_let), @@ -2327,41 +2320,41 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_terminal(identity: rust_token_semicolon) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr_stmt, rhs: [ grammar_formal_nonterminal_occurrence(identity: rust_production_expr_without_block), grammar_formal_terminal(identity: rust_token_semicolon) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_expr_with_block)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr_stmt, rhs: [ grammar_formal_nonterminal_occurrence(identity: rust_production_expr_with_block), grammar_formal_terminal(identity: rust_token_semicolon) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_let_stmt)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_expr_stmt)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr_with_block, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_if_expr)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr_with_block, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_block)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_if_expr, rhs: [ grammar_formal_terminal(identity: rust_token_kw_if), @@ -2369,7 +2362,7 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_block) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_if_expr, rhs: [ grammar_formal_terminal(identity: rust_token_kw_if), @@ -2379,7 +2372,7 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_block) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_if_expr, rhs: [ grammar_formal_terminal(identity: rust_token_kw_if), @@ -2389,11 +2382,11 @@ fn rust_wave2_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: rust_production_if_expr) ] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_expr_with_block)] ), - rust_formal_production( + grammar_formal_production( lhs: rust_production_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: rust_production_expr_without_block)] ), diff --git a/src/v4/extdeps/languages/swift.dag b/src/v4/extdeps/languages/swift.dag index d691ed93940..5b04d667139 100644 --- a/src/v4/extdeps/languages/swift.dag +++ b/src/v4/extdeps/languages/swift.dag @@ -11,9 +11,9 @@ module v4.extdeps.languages.swift import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, Choice, FormalGrammarSymbol, - FormalNonterminal, FormalNonterminalOccurrence, FormalProduction, FormalTerminal, @@ -1073,13 +1073,6 @@ fn swift_wave1_lex() -> LexRules { -fn swift_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - fn swift_formal_rhs_from_tokens(tokens: List) -> List { fold_list( xs: tokens, @@ -1094,7 +1087,7 @@ fn swift_formal_rhs_from_tokens(tokens: List) -> List< } fn swift_formal_production_mvp1_fn_add() -> FormalProduction { - swift_formal_production( + grammar_formal_production( lhs: swift_production_mvp1_fn_add, rhs: swift_formal_rhs_from_tokens(tokens: swift_mvp1_concrete_tokens()) ) @@ -1102,8 +1095,8 @@ fn swift_formal_production_mvp1_fn_add() -> FormalProduction { fn swift_wave1_formal_productions() -> List { [ - swift_formal_production(lhs: swift_production_type_expr, rhs: [grammar_formal_terminal(identity: swift_token_ident)]), - swift_formal_production( + grammar_formal_production(lhs: swift_production_type_expr, rhs: [grammar_formal_terminal(identity: swift_token_ident)]), + grammar_formal_production( lhs: swift_production_typed_param, rhs: [ grammar_formal_terminal(identity: swift_token_ident), @@ -1111,12 +1104,12 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_type_expr) ] ), - swift_formal_production(lhs: swift_production_param_list, rhs: []), - swift_formal_production( + grammar_formal_production(lhs: swift_production_param_list, rhs: []), + grammar_formal_production( lhs: swift_production_param_list, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_typed_param)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_param_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: swift_production_typed_param), @@ -1125,8 +1118,8 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_param_list_suffix) ] ), - swift_formal_production(lhs: swift_production_param_list_suffix, rhs: []), - swift_formal_production( + grammar_formal_production(lhs: swift_production_param_list_suffix, rhs: []), + grammar_formal_production( lhs: swift_production_param_list_suffix, rhs: [ grammar_formal_terminal(identity: swift_token_comma), @@ -1134,24 +1127,24 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_param_list_suffix) ] ), - swift_formal_production(lhs: swift_production_primary_expr, rhs: [grammar_formal_terminal(identity: swift_token_ident)]), - swift_formal_production( + grammar_formal_production(lhs: swift_production_primary_expr, rhs: [grammar_formal_terminal(identity: swift_token_ident)]), + grammar_formal_production( lhs: swift_production_primary_expr, rhs: [grammar_formal_terminal(identity: swift_token_int_literal)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_primary_expr, rhs: [grammar_formal_terminal(identity: swift_token_string_literal)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_primary_expr, rhs: [grammar_formal_terminal(identity: swift_token_kw_true)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_primary_expr, rhs: [grammar_formal_terminal(identity: swift_token_kw_false)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_primary_expr, rhs: [ grammar_formal_terminal(identity: swift_token_lparen), @@ -1159,12 +1152,12 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_terminal(identity: swift_token_rparen) ] ), - swift_formal_production(lhs: swift_production_expr_list, rhs: []), - swift_formal_production( + grammar_formal_production(lhs: swift_production_expr_list, rhs: []), + grammar_formal_production( lhs: swift_production_expr_list, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_expr)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_expr_list, rhs: [ grammar_formal_nonterminal_occurrence(identity: swift_production_expr), @@ -1173,8 +1166,8 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_expr_list_suffix) ] ), - swift_formal_production(lhs: swift_production_expr_list_suffix, rhs: []), - swift_formal_production( + grammar_formal_production(lhs: swift_production_expr_list_suffix, rhs: []), + grammar_formal_production( lhs: swift_production_expr_list_suffix, rhs: [ grammar_formal_terminal(identity: swift_token_comma), @@ -1182,11 +1175,11 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_expr_list_suffix) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_call_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_primary_expr)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_call_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: swift_production_primary_expr), @@ -1196,8 +1189,8 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_call_suffix) ] ), - swift_formal_production(lhs: swift_production_call_suffix, rhs: []), - swift_formal_production( + grammar_formal_production(lhs: swift_production_call_suffix, rhs: []), + grammar_formal_production( lhs: swift_production_call_suffix, rhs: [ grammar_formal_terminal(identity: swift_token_lparen), @@ -1206,19 +1199,19 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_call_suffix) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_binary_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_call_expr)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_binary_expr, rhs: [ grammar_formal_nonterminal_occurrence(identity: swift_production_call_expr), grammar_formal_nonterminal_occurrence(identity: swift_production_binary_suffix) ] ), - swift_formal_production(lhs: swift_production_binary_suffix, rhs: []), - swift_formal_production( + grammar_formal_production(lhs: swift_production_binary_suffix, rhs: []), + grammar_formal_production( lhs: swift_production_binary_suffix, rhs: [ grammar_formal_terminal(identity: swift_token_operator), @@ -1226,33 +1219,33 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_binary_suffix) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_expr, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_binary_expr)] ), - swift_formal_production(lhs: swift_production_return_stmt, rhs: [grammar_formal_terminal(identity: swift_token_kw_return)]), - swift_formal_production( + grammar_formal_production(lhs: swift_production_return_stmt, rhs: [grammar_formal_terminal(identity: swift_token_kw_return)]), + grammar_formal_production( lhs: swift_production_return_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_return), grammar_formal_nonterminal_occurrence(identity: swift_production_expr) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_let_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_let), grammar_formal_terminal(identity: swift_token_ident) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_let_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_var), grammar_formal_terminal(identity: swift_token_ident) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_let_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_let), @@ -1261,7 +1254,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_type_expr) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_let_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_var), @@ -1270,7 +1263,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_type_expr) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_let_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_let), @@ -1279,7 +1272,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_expr) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_let_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_var), @@ -1288,7 +1281,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_expr) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_let_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_let), @@ -1299,7 +1292,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_expr) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_let_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_var), @@ -1310,7 +1303,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_expr) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_if_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_if), @@ -1318,7 +1311,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_block) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_if_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_if), @@ -1328,7 +1321,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_block) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_if_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_if), @@ -1338,7 +1331,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_if_stmt) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_while_stmt, rhs: [ grammar_formal_terminal(identity: swift_token_kw_while), @@ -1346,34 +1339,34 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_block) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_return_stmt)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_let_stmt)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_if_stmt)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_while_stmt)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_stmt, rhs: [grammar_formal_nonterminal_occurrence(identity: swift_production_expr)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_block, rhs: [ grammar_formal_terminal(identity: swift_token_lbrace), grammar_formal_terminal(identity: swift_token_rbrace) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_block, rhs: [ grammar_formal_terminal(identity: swift_token_lbrace), @@ -1383,8 +1376,8 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_terminal(identity: swift_token_rbrace) ] ), - swift_formal_production(lhs: swift_production_block_stmt_suffix, rhs: []), - swift_formal_production( + grammar_formal_production(lhs: swift_production_block_stmt_suffix, rhs: []), + grammar_formal_production( lhs: swift_production_block_stmt_suffix, rhs: [ grammar_formal_nonterminal_occurrence(identity: swift_production_stmt), @@ -1392,12 +1385,12 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_block_stmt_suffix) ] ), - swift_formal_production(lhs: swift_production_block_stmt_sep_opt, rhs: []), - swift_formal_production( + grammar_formal_production(lhs: swift_production_block_stmt_sep_opt, rhs: []), + grammar_formal_production( lhs: swift_production_block_stmt_sep_opt, rhs: [grammar_formal_terminal(identity: swift_token_semicolon)] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_fn_decl, rhs: [ grammar_formal_terminal(identity: swift_token_kw_func), @@ -1408,7 +1401,7 @@ fn swift_wave1_formal_productions() -> List { grammar_formal_nonterminal_occurrence(identity: swift_production_block) ] ), - swift_formal_production( + grammar_formal_production( lhs: swift_production_fn_decl, rhs: [ grammar_formal_terminal(identity: swift_token_kw_func), diff --git a/src/v4/extdeps/languages/typescript.dag b/src/v4/extdeps/languages/typescript.dag index 4bc09f36555..d6ced04084a 100644 --- a/src/v4/extdeps/languages/typescript.dag +++ b/src/v4/extdeps/languages/typescript.dag @@ -11,9 +11,9 @@ module v4.extdeps.languages.typescript import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, Choice, FormalGrammarSymbol, - FormalNonterminal, FormalNonterminalOccurrence, FormalProduction, FormalTerminal, @@ -1138,13 +1138,6 @@ fn ts_wave2a_lex_token_symbol(sym: Symbol) -> Bool { -fn ts_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - fn ts_formal_rhs_from_tokens(tokens: List) -> List { fold_list( xs: tokens, @@ -1159,7 +1152,7 @@ fn ts_formal_rhs_from_tokens(tokens: List) -> List FormalProduction { - ts_formal_production( + grammar_formal_production( lhs: ts_production_mvp1_fn_add, rhs: ts_formal_rhs_from_tokens(tokens: ts_mvp1_concrete_tokens()) ) @@ -1167,27 +1160,27 @@ fn ts_formal_production_mvp1_fn_add() -> FormalProduction { fn ts_wave2a_formal_productions() -> List { [ - ts_formal_production(lhs: ts_production_wave2a_type_number, rhs: [grammar_formal_terminal(identity: ts_token_ty_number)]), - ts_formal_production(lhs: ts_production_wave2a_type_string, rhs: [grammar_formal_terminal(identity: ts_token_ty_string)]), - ts_formal_production(lhs: ts_production_wave2a_type_boolean, rhs: [grammar_formal_terminal(identity: ts_token_ty_boolean)]), - ts_formal_production(lhs: ts_production_wave2a_type_void, rhs: [grammar_formal_terminal(identity: ts_token_ty_void)]), - ts_formal_production( + grammar_formal_production(lhs: ts_production_wave2a_type_number, rhs: [grammar_formal_terminal(identity: ts_token_ty_number)]), + grammar_formal_production(lhs: ts_production_wave2a_type_string, rhs: [grammar_formal_terminal(identity: ts_token_ty_string)]), + grammar_formal_production(lhs: ts_production_wave2a_type_boolean, rhs: [grammar_formal_terminal(identity: ts_token_ty_boolean)]), + grammar_formal_production(lhs: ts_production_wave2a_type_void, rhs: [grammar_formal_terminal(identity: ts_token_ty_void)]), + grammar_formal_production( lhs: ts_production_wave2a_type_annotation, rhs: [grammar_formal_nonterminal_occurrence(identity: ts_production_wave2a_type_number)] ), - ts_formal_production( + grammar_formal_production( lhs: ts_production_wave2a_type_annotation, rhs: [grammar_formal_nonterminal_occurrence(identity: ts_production_wave2a_type_string)] ), - ts_formal_production( + grammar_formal_production( lhs: ts_production_wave2a_type_annotation, rhs: [grammar_formal_nonterminal_occurrence(identity: ts_production_wave2a_type_boolean)] ), - ts_formal_production( + grammar_formal_production( lhs: ts_production_wave2a_type_annotation, rhs: [grammar_formal_nonterminal_occurrence(identity: ts_production_wave2a_type_void)] ), - ts_formal_production( + grammar_formal_production( lhs: ts_production_wave2a_let_decl, rhs: [ grammar_formal_terminal(identity: ts_token_kw_let), @@ -1199,7 +1192,7 @@ fn ts_wave2a_formal_productions() -> List { grammar_formal_terminal(identity: ts_token_semicolon) ] ), - ts_formal_production( + grammar_formal_production( lhs: ts_production_wave2a_const_decl, rhs: [ grammar_formal_terminal(identity: ts_token_kw_const), @@ -1211,15 +1204,15 @@ fn ts_wave2a_formal_productions() -> List { grammar_formal_terminal(identity: ts_token_semicolon) ] ), - ts_formal_production( + grammar_formal_production( lhs: ts_production_wave2a_item, rhs: [grammar_formal_nonterminal_occurrence(identity: ts_production_mvp1_fn_add)] ), - ts_formal_production( + grammar_formal_production( lhs: ts_production_wave2a_item, rhs: [grammar_formal_nonterminal_occurrence(identity: ts_production_wave2a_let_decl)] ), - ts_formal_production( + grammar_formal_production( lhs: ts_production_wave2a_item, rhs: [grammar_formal_nonterminal_occurrence(identity: ts_production_wave2a_const_decl)] ), diff --git a/src/v4/extdeps/languages/wasm.dag b/src/v4/extdeps/languages/wasm.dag index 2fe939b7d4c..6850d94f981 100644 --- a/src/v4/extdeps/languages/wasm.dag +++ b/src/v4/extdeps/languages/wasm.dag @@ -11,9 +11,9 @@ module v4.extdeps.languages.wasm import v4.std.grammar { grammar_formal_terminal, grammar_formal_nonterminal_occurrence, + grammar_formal_production, Choice, FormalGrammarSymbol, - FormalNonterminal, FormalNonterminalOccurrence, FormalProduction, FormalTerminal, @@ -1256,13 +1256,6 @@ fn wasm_wave1_lex() -> LexRules { -fn wasm_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { - FormalProduction { - lhs: FormalNonterminal { identity: lhs }, - rhs: rhs - } -} - fn wasm_formal_rhs_from_tokens(tokens: List) -> List { fold_list( xs: tokens, @@ -1277,7 +1270,7 @@ fn wasm_formal_rhs_from_tokens(tokens: List) -> List FormalProduction { - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_mvp1_fn_add, rhs: wasm_formal_rhs_from_tokens(tokens: wasm_mvp1_concrete_tokens()) ) @@ -1285,98 +1278,98 @@ fn wasm_formal_production_mvp1_fn_add() -> FormalProduction { fn wasm_wave1_formal_productions() -> List { [ - wasm_formal_production(lhs: wasm_production_value_type, rhs: [grammar_formal_terminal(identity: wasm_token_type_i32)]), - wasm_formal_production(lhs: wasm_production_value_type, rhs: [grammar_formal_terminal(identity: wasm_token_type_i64)]), - wasm_formal_production(lhs: wasm_production_value_type, rhs: [grammar_formal_terminal(identity: wasm_token_type_f32)]), - wasm_formal_production(lhs: wasm_production_value_type, rhs: [grammar_formal_terminal(identity: wasm_token_type_f64)]), - wasm_formal_production(lhs: wasm_production_localidx, rhs: [grammar_formal_terminal(identity: wasm_token_localidx_literal)]), - wasm_formal_production(lhs: wasm_production_localidx, rhs: [grammar_formal_terminal(identity: wasm_token_ident)]), - wasm_formal_production(lhs: wasm_production_i32_numeric_literal, rhs: [grammar_formal_terminal(identity: wasm_token_i32_numeric_literal)]), - wasm_formal_production(lhs: wasm_production_i64_numeric_literal, rhs: [grammar_formal_terminal(identity: wasm_token_i64_numeric_literal)]), - wasm_formal_production(lhs: wasm_production_f32_numeric_literal, rhs: [grammar_formal_terminal(identity: wasm_token_f32_numeric_literal)]), - wasm_formal_production(lhs: wasm_production_f64_numeric_literal, rhs: [grammar_formal_terminal(identity: wasm_token_f64_numeric_literal)]), - wasm_formal_production( + grammar_formal_production(lhs: wasm_production_value_type, rhs: [grammar_formal_terminal(identity: wasm_token_type_i32)]), + grammar_formal_production(lhs: wasm_production_value_type, rhs: [grammar_formal_terminal(identity: wasm_token_type_i64)]), + grammar_formal_production(lhs: wasm_production_value_type, rhs: [grammar_formal_terminal(identity: wasm_token_type_f32)]), + grammar_formal_production(lhs: wasm_production_value_type, rhs: [grammar_formal_terminal(identity: wasm_token_type_f64)]), + grammar_formal_production(lhs: wasm_production_localidx, rhs: [grammar_formal_terminal(identity: wasm_token_localidx_literal)]), + grammar_formal_production(lhs: wasm_production_localidx, rhs: [grammar_formal_terminal(identity: wasm_token_ident)]), + grammar_formal_production(lhs: wasm_production_i32_numeric_literal, rhs: [grammar_formal_terminal(identity: wasm_token_i32_numeric_literal)]), + grammar_formal_production(lhs: wasm_production_i64_numeric_literal, rhs: [grammar_formal_terminal(identity: wasm_token_i64_numeric_literal)]), + grammar_formal_production(lhs: wasm_production_f32_numeric_literal, rhs: [grammar_formal_terminal(identity: wasm_token_f32_numeric_literal)]), + grammar_formal_production(lhs: wasm_production_f64_numeric_literal, rhs: [grammar_formal_terminal(identity: wasm_token_f64_numeric_literal)]), + grammar_formal_production( lhs: wasm_production_numeric_const_instr, rhs: [ grammar_formal_terminal(identity: wasm_token_i32_const), grammar_formal_nonterminal_occurrence(identity: wasm_production_i32_numeric_literal) ] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_numeric_const_instr, rhs: [ grammar_formal_terminal(identity: wasm_token_i64_const), grammar_formal_nonterminal_occurrence(identity: wasm_production_i64_numeric_literal) ] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_numeric_const_instr, rhs: [ grammar_formal_terminal(identity: wasm_token_f32_const), grammar_formal_nonterminal_occurrence(identity: wasm_production_f32_numeric_literal) ] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_numeric_const_instr, rhs: [ grammar_formal_terminal(identity: wasm_token_f64_const), grammar_formal_nonterminal_occurrence(identity: wasm_production_f64_numeric_literal) ] ), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_add)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_sub)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_mul)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_div_s)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_div_u)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_rem_s)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_rem_u)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_and)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_or)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_xor)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_shl)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_shr_s)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_shr_u)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_rotl)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_rotr)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_add)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_sub)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_mul)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_div_s)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_div_u)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_rem_s)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_rem_u)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_and)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_or)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_xor)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_shl)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_shr_s)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_shr_u)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_rotl)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_rotr)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_add)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_sub)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_mul)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_div)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_min)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_max)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_copysign)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_add)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_sub)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_mul)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_div)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_min)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_max)]), - wasm_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_copysign)]), - - wasm_formal_production(lhs: wasm_production_mvp1_module_fn_suffix, rhs: []), - wasm_formal_production( + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_add)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_sub)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_mul)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_div_s)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_div_u)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_rem_s)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_rem_u)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_and)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_or)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_xor)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_shl)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_shr_s)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_shr_u)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_rotl)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i32_rotr)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_add)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_sub)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_mul)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_div_s)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_div_u)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_rem_s)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_rem_u)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_and)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_or)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_xor)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_shl)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_shr_s)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_shr_u)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_rotl)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_i64_rotr)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_add)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_sub)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_mul)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_div)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_min)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_max)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f32_copysign)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_add)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_sub)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_mul)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_div)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_min)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_max)]), + grammar_formal_production(lhs: wasm_production_numeric_binop_instr, rhs: [grammar_formal_terminal(identity: wasm_token_f64_copysign)]), + + grammar_formal_production(lhs: wasm_production_mvp1_module_fn_suffix, rhs: []), + grammar_formal_production( lhs: wasm_production_mvp1_module_fn_suffix, rhs: [ grammar_formal_nonterminal_occurrence(identity: wasm_production_mvp1_fn_add), grammar_formal_nonterminal_occurrence(identity: wasm_production_mvp1_module_fn_suffix) ] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_mvp1_module, rhs: [ grammar_formal_terminal(identity: wasm_token_lparen), @@ -1384,7 +1377,7 @@ fn wasm_wave1_formal_productions() -> List { grammar_formal_terminal(identity: wasm_token_rparen) ] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_mvp1_module, rhs: [ grammar_formal_terminal(identity: wasm_token_lparen), @@ -1393,7 +1386,7 @@ fn wasm_wave1_formal_productions() -> List { grammar_formal_terminal(identity: wasm_token_rparen) ] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_mvp1_module, rhs: [ grammar_formal_terminal(identity: wasm_token_lparen), @@ -1403,7 +1396,7 @@ fn wasm_wave1_formal_productions() -> List { grammar_formal_terminal(identity: wasm_token_rparen) ] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_mvp1_module, rhs: [ grammar_formal_terminal(identity: wasm_token_lparen), @@ -1414,27 +1407,27 @@ fn wasm_wave1_formal_productions() -> List { grammar_formal_terminal(identity: wasm_token_rparen) ] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_text_fragment, rhs: [grammar_formal_nonterminal_occurrence(identity: wasm_production_mvp1_fn_add)] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_text_fragment, rhs: [grammar_formal_nonterminal_occurrence(identity: wasm_production_mvp1_module)] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_text_fragment, rhs: [grammar_formal_nonterminal_occurrence(identity: wasm_production_value_type)] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_text_fragment, rhs: [grammar_formal_nonterminal_occurrence(identity: wasm_production_localidx)] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_text_fragment, rhs: [grammar_formal_nonterminal_occurrence(identity: wasm_production_numeric_const_instr)] ), - wasm_formal_production( + grammar_formal_production( lhs: wasm_production_text_fragment, rhs: [grammar_formal_nonterminal_occurrence(identity: wasm_production_numeric_binop_instr)] ), diff --git a/src/v4/std/grammar.dag b/src/v4/std/grammar.dag index dafb1ed5f6d..579305b6358 100644 --- a/src/v4/std/grammar.dag +++ b/src/v4/std/grammar.dag @@ -215,6 +215,14 @@ fn grammar_formal_nonterminal_occurrence(identity: Symbol) -> FormalGrammarSymbo } +fn grammar_formal_production(lhs: Symbol, rhs: List) -> FormalProduction { + FormalProduction { + lhs: grammar_formal_nonterminal(identity: lhs), + rhs: rhs + } +} + + fn formal_terminal_to_node(terminal: FormalTerminal) -> Node { Node { kind: TypeNode {