nitcc: collect items with conflict (now that there is always a resolution attempt)
[nit.git] / contrib / nitcc / src / nitcc.nit
index 0cc9d2a..7e380e1 100644 (file)
@@ -27,7 +27,7 @@ var fi = args.first
 
 var text
 if fi != "-" then
-       var f = new IFStream.open(fi)
+       var f = new FileReader.open(fi)
        text = f.read_all
        f.close
 else
@@ -72,8 +72,8 @@ end
 var lr = gram.lr0
 
 var conflitcs = new ArraySet[Production]
-for s in lr.states do for t, a in s.guarded_reduce do if a.length > 1 or s.guarded_shift.has_key(t) then
-       for i in a do conflitcs.add(i.alt.prod)
+for s in lr.states do
+       for i in s.conflicting_items do conflitcs.add(i.alt.prod)
 end
 
 if not conflitcs.is_empty then
@@ -94,7 +94,7 @@ for prod in gram.prods do nbalts += prod.alts.length
 print "Concrete grammar: {gram.prods.length} productions, {nbalts} alternatives (see {name}.concrete_grammar.out)"
 
 var pretty = gram.pretty
-var f = new OFStream.open("{name}.concrete_grammar.out")
+var f = new FileWriter.open("{name}.concrete_grammar.out")
 f.write "// Concrete grammar of {name}\n"
 f.write pretty
 f.close
@@ -102,7 +102,7 @@ f.close
 print "LR automaton: {lr.states.length} states (see {name}.lr.dot and {name}.lr.out)"
 lr.to_dot("{name}.lr.dot")
 pretty = lr.pretty
-f = new OFStream.open("{name}.lr.out")
+f = new FileWriter.open("{name}.lr.out")
 f.write "// LR automaton of {name}\n"
 f.write pretty
 f.close
@@ -142,7 +142,7 @@ print "Generate {name}_lexer.nit {name}_parser.nit {name}_test_parser.nit"
 dfa.gen_to_nit("{name}_lexer.nit", name, "{name}_parser")
 lr.gen_to_nit("{name}_parser.nit", name)
 
-f = new OFStream.open("{name}_test_parser.nit")
+f = new FileWriter.open("{name}_test_parser.nit")
 f.write """# Generated by nitcc for the language {{{name}}}
 
 # Standalone parser tester for the language {{{name}}}