X-Git-Url: http://nitlanguage.org?ds=sidebyside diff --git a/contrib/nitcc/src/nitcc_parser_gen.nit b/contrib/nitcc/src/nitcc_parser_gen.nit index 8c0f4bb..bfbdbb5 100644 --- a/contrib/nitcc/src/nitcc_parser_gen.nit +++ b/contrib/nitcc/src/nitcc_parser_gen.nit @@ -54,7 +54,8 @@ var p_altid = new Production("altident") var p_elems = new Production("elems") var p_elem_list = new Production("elem_list") var p_elem = new Production("elem") -g.prods.add_all([p_gr, p_re, p_re1, p_re2, p_re3, p_text, p_lex, p_exprs, p_expr, p_par, p_ign, p_rej, p_prods, p_prod, p_ptrans_o, p_alts, p_alt, p_altid_o, p_altid, p_elems, p_elem_list, p_elem]) +var p_pri = new Production("priority") +g.prods.add_all([p_gr, p_re, p_re1, p_re2, p_re3, p_text, p_lex, p_exprs, p_expr, p_par, p_ign, p_rej, p_prods, p_prod, p_ptrans_o, p_alts, p_alt, p_altid_o, p_altid, p_elems, p_elem_list, p_elem, p_pri]) g.prods.add(new Production("atrans")) g.prods.add(new Production("elemid")) g.prods.add(new Production("nelem")) @@ -84,6 +85,7 @@ var t_and = new Token("and") var t_except = new Token("except") var t_shortest = new Token("shortest") var t_longest = new Token("longest") +var t_prefixes = new Token("prefixes") var t_ch_dec = new Token("ch_dec") var t_ch_hex = new Token("ch_hex") g.tokens.add_all([t_opar, @@ -110,6 +112,7 @@ g.tokens.add_all([t_opar, t_except, t_shortest, t_longest, + t_prefixes, t_ch_dec, t_ch_hex]) @@ -138,8 +141,10 @@ p_re3.new_alt("re_ques", p_re3, t_ques) p_re3.new_alt("re_plus", p_re3, t_plus) p_re3.new_alt("re_shortest", t_shortest, t_opar, p_re, t_cpar) p_re3.new_alt("re_longest", t_longest, t_opar, p_re, t_cpar) +p_re3.new_alt("re_prefixes", t_prefixes, t_opar, p_re, t_cpar) p_re3.new_alt("re_par", t_opar, p_re, t_cpar) p_re3.new_alt("re_class", p_text, t_dot, t_dot, p_text) +p_re3.new_alt("re_openclass", p_text, t_dot, t_dot, t_dot) p_re3.new_alt("re_any", t_any) p_re3.new_alt("re_end", t_end) p_re3.new_alt("re_id", t_id) @@ -186,6 +191,10 @@ p_elem.new_alt("elem_star", p_elem, t_star) p_elem.new_alt("elem_ques", p_elem, t_ques) p_elem.new_alt("elem_plus", p_elem, t_plus) +p_pri.new_alt0("priority_left").phony = true +p_pri.new_alt0("priority_right").phony = true +p_pri.new_alt0("priority_unary").phony = true + var a = g.lr0 print "LR automaton: {a.states.length} states (see nitcc0.lr.dot)" @@ -193,6 +202,6 @@ a.to_dot("nitcc0.lr.dot") a.gen_to_nit("nitcc_parser.nit", "nitcc") -var f = new OFStream.open("nitcc_lexer.nit") +var f = new FileWriter.open("nitcc_lexer.nit") f.write("import nitcc_lexer0\n") f.close