public void SetUp() { _classListener = new ClassListener( new MethodListener( new StatementListener() ), new MemberDeclarationListener()); }
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 bool Read() { if (!File.Exists(Filepath)) { Logger.Write("File not found : " + Filepath, LogType.Error); return(false); } string text = File.ReadAllText(Filepath); NovaParsingErrorHandler parsingErrorHandler = new NovaParsingErrorHandler(); var inputStream = new AntlrInputStream(text); var lexer = new NovaLexer(inputStream); lexer.RemoveErrorListener(ConsoleErrorListener <int> .Instance); var commonTokenStream = new CommonTokenStream(lexer); var parser = new NovaParser(commonTokenStream); parser.RemoveErrorListener(ConsoleErrorListener <IToken> .Instance); parser.AddErrorListener(parsingErrorHandler); NovaParser.CompilationUnitContext ectx = parser.compilationUnit(); foreach (var importDeclaration in ectx.importDeclaration()) { Usings.Add(new Using(UsingType.Ref, importDeclaration.fileName().GetText())); } ClassListener classListener = new ClassListener(this); foreach (var typeDeclaration in ectx.typeDeclaration()) { typeDeclaration.EnterRule(classListener); } //Console.WriteLine(ectx.ToStringTree(parser)); return(parsingErrorHandler.ErrorsCount == 0); }