public RuleCollection ParseFile() { RuleCollection res = new RuleCollection(); while (!m_tokenizer.IsEof) { res.Rules.Add(ParseRule()); } return(res); }
static void Main(string[] args) { //var secs = (new DateTime(2009, 1, 1) - new DateTime(1970, 1, 1)).TotalSeconds; string inf = args[0]; string outf = args[1]; string ns = args[2]; string cls = args[3]; using (StreamReader sr = new StreamReader(inf)) { string data = sr.ReadToEnd(); GramParser parser = new GramParser(new GramTokenizer(new StringReader(data), new StringSliceProvider(data))); RuleCollection rules = parser.ParseFile(); ParserCompiler pc = new ParserCompiler(rules); rules.Compile(pc); using (StreamWriter sw = new StreamWriter(outf)) { CSharpWriter csw = new CSharpWriter(sw); csw.WriteLine("using DatAdmin;"); rules.GenCode(csw, ns, cls); } } }
public ParserCompiler(RuleCollection rules) { Rules = rules; }