public IEnumerable <Node> Parse(UnbufferedTokenStream nTriples) { var found = new Dictionary <NodeID, List <KeyValue> >(); var parser = new parser_grammer.NTRIPLESParser(nTriples); parser.BuildParseTree = true; parser.AddErrorListener(new ErrorListener()); parser.AddParseListener(new NtriplesListener(triple => { if (found.ContainsKey(triple.Item1)) { found[triple.Item1].Add(triple.Item2); } else { found.Add(triple.Item1, new List <KeyValue> { triple.Item2 }); } })); var tc = parser.triples(); if (tc.exception != null) { throw tc.exception; } return(found.Select(kv => new Node(kv.Key, kv.Value))); }
public static void Main(string[] args) { try { StreamReader input = new StreamReader(args[0]); // AntlrInputStream inputStream = new AntlrInputStream(input); UnbufferedCharStream inputStream = new UnbufferedCharStream(input); FpxLexer fpxLexer = new FpxLexer(inputStream); fpxLexer.TokenFactory = new CommonTokenFactory(true); // CommonTokenStream commonTokenStream = new CommonTokenStream(fpxLexer); UnbufferedTokenStream commonTokenStream = new UnbufferedTokenStream(fpxLexer); FpxParser fpxParser = new FpxParser(commonTokenStream); // fpxParser.ErrorHandler = new BailErrorStrategy(); // fpxParser.BuildParseTree = false; List <string> Errors = new List <string>(); GatherErrorListener gErrorListener = new GatherErrorListener(Errors); fpxParser.RemoveErrorListeners(); fpxParser.AddErrorListener(gErrorListener); FpxParser.PxfileContext pxFileContext = fpxParser.pxfile(); FpxVisitor visitor = new FpxVisitor(Errors); if (!gErrorListener.AnyNonRecoverableErrors) { Console.WriteLine(visitor.Visit(pxFileContext)); } DisplayErrors(Errors); } // try catch (Exception _e) { Console.WriteLine("Error: " + _e); Console.WriteLine("Error: " + _e.StackTrace); } // catch } // Main
public static string GetOwnText(string filename) { var afs = new AntlrFileStream(filename); var lexer = new gramLexer(afs); var ts = new UnbufferedTokenStream(lexer); var parser = new gramParser(ts); var tree = parser.compileUnit(); var source = tree.GetText(); return(source); }
public ClassObject parse(string code) { AntlrInputStream ips = new AntlrInputStream(code); SomeLanguageLexer lexer = new SomeLanguageLexer(ips); UnbufferedTokenStream tokens = new UnbufferedTokenStream(lexer); SomeLanguageParser parser = new SomeLanguageParser(tokens); ClassListener classListener = new ClassListener(); parser.classDeclaration().EnterRule(classListener); return(classListener.getParsedClass()); }
public static string GetRules(string code) { var ais = new AntlrInputStream(code); //var lexer = new gramLexer(ais); var lexer = new SASLibnamesLexer(ais); var ts = new UnbufferedTokenStream(lexer); //var parser = new gramParser(ts); var parser = new SASLibnamesParser(ts); //var tree = parser.compileUnit(); var tree = parser.program(); var listener = new BaseListener <SASLibnamesParser>(); var walker = new ParseTreeWalker(); walker.Walk(listener, tree); return(listener.GetRules()); }
internal static void ParseInput(ICharStream stream, IParseTreeListener listener) { // optimized for memory consumption var lexer = new VowpalWabbitLexer(stream) { TokenFactory = new CommonTokenFactory(copyText: true) }; var tokens = new UnbufferedTokenStream(lexer); var parser = new VowpalWabbitParser(tokens) { // Note; don't disable, as it is required to access the line // BuildParseTree = false, }; // fast than LL(*) parser.Interpreter.PredictionMode = PredictionMode.Sll; parser.AddParseListener(listener); parser.AddErrorListener(new TestErrorListener()); parser.start(); }
public void TestSeek() { UnbufferedTokenStream stream = new UnbufferedTokenStream(new TokenSource()); stream.Consume(); Assert.AreEqual(0, stream.LA(-1)); Assert.AreEqual(1, stream.LA(1)); stream.Mark(); stream.Consume(); Assert.AreEqual(1, stream.LA(-1)); Assert.AreEqual(2, stream.LA(1)); int index = stream.Index; stream.Rewind(); Assert.AreEqual(0, stream.LA(-1)); Assert.AreEqual(1, stream.LA(1)); stream.Seek(index); Assert.AreEqual(1, stream.LA(-1)); Assert.AreEqual(2, stream.LA(1)); }
static void TryFile(string fn) { var str = new UnbufferedCharStream(new StreamReader(fn)); var lexer = new AbcLexer(str); var tokens = new UnbufferedTokenStream(lexer); var parser = new AbcParser(tokens); var listener = new ErrorListener <IToken>(parser, lexer, tokens); parser.AddErrorListener(listener); lexer.AddErrorListener(new ErrorListener <int>(parser, lexer, tokens)); parser.BuildParseTree = false; lexer.TokenFactory = new MyCTF(); var tree = parser.file(); if (listener.had_error) { System.Console.WriteLine("error in parse."); } else { System.Console.WriteLine("parse completed."); } }