/// <summary> /// /// </summary> /// <returns>true if parsing had no errors</returns> public bool Parse() { if (AlreadyParsed) { return(ParsingWasSuccessfull); } //Sets default console if needed console ??= new DefaultConsole(); var antlrInputStream = new AntlrInputStream(code); var lexer = new CosmosLexer(antlrInputStream); var tokens = new CommonTokenStream(lexer); var parser = new Cosmos(tokens); ErrorListener = new ErrorListener(console); parser.RemoveErrorListeners(); parser.AddErrorListener(ErrorListener); context = parser.programme(); var result = !ErrorListener.HadError; AlreadyParsed = true; ParsingWasSuccessfull = result; return(result); }