示例#1
0
        public void WhenTheInputSourceIsParsedWithTheBerpGrammarParserForTestParser()
        {
            var parser = new BerpGrammar.Parser();

            parser.StopAtFirstError = stopAtFirstError;
            try
            {
                ast = parser.Parse(new BerpGrammar.TokenScanner(new StringReader(sourceContent)), new TokenMatcher(), new AstBuilderForTest());
                Console.WriteLine(ast);
            }
            catch (CompositeParserException parserEx)
            {
                parsingError = parserEx;
                Console.WriteLine(parsingError.GetErrorMessage());
            }
            catch (ParserException ex)
            {
                parsingError = new CompositeParserException(new [] { ex });
                Console.WriteLine(parsingError.GetErrorMessage());
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("unhandled parsing error", ex);
            }
        }
        public void WhenTheParserGenerationIsPerformedUsing(string templateName)
        {
            var parser  = new BerpGrammar.Parser();
            var ruleSet = parser.Parse(new TokenScanner(new StringReader(grammarDefinition)));
            var states  = StateCalculator.CalculateStates(ruleSet);

            try
            {
                var generator = new Generator(ruleSet.Settings);
                outputFile = TestFolders.GetTempFilePath("output.txt");
                generator.Generate(Path.Combine("GeneratorTemplates", templateName), ruleSet, states, outputFile);
            }
            catch (Exception ex)
            {
                generationError = ex;
            }
        }
示例#3
0
文件: Steps.cs 项目: chebizarro/berp
 public void WhenTheInputSourceIsParsedWithTheBerpGrammarParserForTestParser()
 {
     var parser = new BerpGrammar.Parser();
     parser.StopAtFirstError = stopAtFirstError;
     try
     {
         ast = parser.Parse(new BerpGrammar.TokenScanner(new StringReader(sourceContent)), new TokenMatcher(), new AstBuilderForTest());
         Console.WriteLine(ast);
     }
     catch (CompositeParserException parserEx)
     {
         parsingError = parserEx;
         Console.WriteLine(parsingError.GetErrorMessage());
     }
     catch (ParserException ex)
     {
         parsingError = new CompositeParserException(new []{ ex });
         Console.WriteLine(parsingError.GetErrorMessage());
     }
     catch (Exception ex)
     {
         throw new InvalidOperationException("unhandled parsing error", ex);
     }
 }