parser: regenerate with comments in line annotations
[nit.git] / contrib / nitcc / src / nitcc_parser_gen.nit
index 4bfcfd5..bfbdbb5 100644 (file)
@@ -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"))
@@ -79,10 +80,12 @@ var t_str = new Token("str")
 var t_id = new Token("id")
 var t_kw = new Token("kw")
 var t_any = new Token("any")
+var t_end = new Token("end")
 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,
@@ -104,10 +107,12 @@ g.tokens.add_all([t_opar,
        t_id,
        t_kw,
        t_any,
+       t_end,
        t_and,
        t_except,
        t_shortest,
        t_longest,
+       t_prefixes,
        t_ch_dec,
        t_ch_hex])
 
@@ -136,9 +141,12 @@ 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)
 p_re3.new_alt("re_text", p_text)
 
@@ -183,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)"
@@ -190,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