public IFile ParseFile() { using (var def = Lifetime.Define()) { var builder = new PsiBuilder(new CILexer(myLexer.Buffer), SpringFileNodeType.Instance, new TokenFactory(), def.Lifetime); string inputText = myLexer.Buffer.GetText(); var tokenStream = new CommonTokenStream(new CLexer(new AntlrInputStream(inputText))); CParser cParser = new CParser(tokenStream); cParser.AddErrorListener(new ParserErrorListener(builder)); var visitor = new BuilderVisitor(builder); var fileMark = builder.Mark(); CParser.CompilationUnitContext fileContext = cParser.compilationUnit(); visitor.Visit(fileContext); builder.Done(fileMark, SpringFileNodeType.Instance, null); var file = (IFile)builder.BuildTree(); return(file); } }
public IFile ParseFile() { using (var def = Lifetime.Define()) { var builder = new PsiBuilder(myLexer, SpringFileNodeType.Instance, new TokenFactory(), def.Lifetime); SpringLangLexer antlrLexer = new SpringLangLexer(new AntlrInputStream(myLexer.Buffer.GetText())); SpringLangParser antlrParser = new SpringLangParser(new CommonTokenStream(antlrLexer)); BuilderVisitor visitor = new BuilderVisitor(builder); visitor.Visit(antlrParser.program()); // ParseBlock(builder); var file = (IFile)builder.BuildTree(); var stringBuilder = new StringBuilder(); DebugUtil.DumpPsi(new StringWriter(stringBuilder), file); stringBuilder.ToString(); return(file); } }