public static object parse(string filename, System.IO.TextReader r, bool Verbose) { CharEnumerator ce = new File2CharEnumerator(r); InputElementEnumerator iee = new Char2InputElementEnumerator(ce, filename); if (Verbose) { iee = new EchoInputEnumerator(iee, "raw> "); } iee = new PreprocessorEnumerator(iee); iee = new SkipWhiteEnumerator(iee); if (Verbose) { iee = new EchoInputEnumerator(iee, "ppd> "); } Parser p = new Parser(iee); nonterminalState parse = p.parse(System.Console.Error); if (parse != null) { if (Verbose) { System.Console.WriteLine("DERIVATION:"); System.Console.WriteLine(parse.ToString("")); } object ast = parse.rewrite2AST(); return(ast); } else { return(null); } }
protected void tokenize(InputElement ie) { String2CharEnumerator s2ce = new String2CharEnumerator(ie.str); PreprocessorInputElementEnumerator pp = new PreprocessorInputElementEnumerator(s2ce, ie.coord.file); SkipWhiteEnumerator swe = new SkipWhiteEnumerator(pp); tokens = swe; if (Verbose) { tokens = new EchoInputEnumerator(tokens, "PPD> "); } }