public void GrammarGeneratedCodeCorrectMapping(Runtime runtime) { Assert.Ignore("Not ready"); var grammarText = @"grammar test; rootRule : {a==0}? tokensOrRules* EOF {a++;} ; tokensOrRules : {a==0}? TOKEN+ {a++;} ; TOKEN: {b==0}? [a-z]+ {b++;}; DIGIT: {b==0}? [0-9]+ {b++;};"; var grammar = GrammarFactory.CreateDefaultCombinedAndFill(grammarText, "test", "."); var workflow = new Workflow(grammar); workflow.Runtime = runtime; var state = workflow.Process(); Assert.AreEqual(WorkflowStage.ParserCompilied, state.Stage, state.Exception?.ToString()); ParserCompiliedState parserGeneratedState = state as ParserCompiliedState; var errors = parserGeneratedState.Errors; Assert.AreEqual(8, errors.Count); Assert.AreEqual(2, errors.Where(e => e.TextSpan.GetLineColumn().BeginLine == 3).Count()); Assert.AreEqual(2, errors.Where(e => e.TextSpan.GetLineColumn().BeginLine == 6).Count()); Assert.AreEqual(2, errors.Where(e => e.TextSpan.GetLineColumn().BeginLine == 8).Count()); Assert.AreEqual(2, errors.Where(e => e.TextSpan.GetLineColumn().BeginLine == 9).Count()); }
public void ParserCompiledStageErrors(Runtime runtime) { var grammarText = @"grammar Test; start: DIGIT+ {i^;}; CHAR: [a-z]+; DIGIT: [0-9]+; WS: [ \r\n\t]+ -> skip;"; var grammar = GrammarFactory.CreateDefaultCombinedAndFill(grammarText, "Test", "."); var workflow = new Workflow(grammar); workflow.Runtime = runtime; var state = workflow.Process(); Assert.AreEqual(WorkflowStage.ParserCompilied, state.Stage, state.Exception?.ToString()); ParserCompiliedState parserGeneratedState = state as ParserCompiliedState; Assert.GreaterOrEqual(parserGeneratedState.Errors.Count, 1); Assert.AreEqual(2, parserGeneratedState.Errors[1].TextSpan.GetLineColumn().BeginLine); }