Esempio n. 1
0
        public void TestExpressionSyntaxError()
        {
            ExpressionParser exprParser = new ExpressionParser();
            ParserBuilder <ExpressionToken, int> builder = new ParserBuilder <ExpressionToken, int>();
            Parser <ExpressionToken, int>        Parser  = builder.BuildParser(exprParser, ParserType.LL_RECURSIVE_DESCENT, "expression").Result;

            ParseResult <ExpressionToken, int> r = Parser.Parse(" 2 + 3 + + 2");

            Assert.True(r.IsError);
            Assert.NotNull(r.Errors);
            Assert.True(r.Errors.Count > 0);
            Assert.IsAssignableFrom <UnexpectedTokenSyntaxError <ExpressionToken> >(r.Errors[0]);
            UnexpectedTokenSyntaxError <ExpressionToken> error = r.Errors[0] as UnexpectedTokenSyntaxError <ExpressionToken>;

            Assert.Equal(ExpressionToken.PLUS, error.UnexpectedToken.TokenID);

            Assert.Equal(1, error.Line);
            Assert.Equal(8, error.Column);
        }
Esempio n. 2
0
        public void TestJsonSyntaxErrorMissingLastClosingBracket()
        {
            JSONParser jsonParser = new JSONParser();
            ParserBuilder <JsonToken, JSon> builder = new ParserBuilder <JsonToken, JSon>();
            Parser <JsonToken, JSon>        parser  = builder.BuildParser(jsonParser, ParserType.LL_RECURSIVE_DESCENT, "root").Result;

            string source = "{";

            ParseResult <JsonToken, JSon> r = parser.Parse(source);

            Assert.True(r.IsError);
            Assert.Null(r.Result);
            Assert.NotNull(r.Errors);
            Assert.True(r.Errors.Count > 0);
            Assert.IsType <UnexpectedTokenSyntaxError <JsonToken> >(r.Errors[0]);
            UnexpectedTokenSyntaxError <JsonToken> error = r.Errors[0] as UnexpectedTokenSyntaxError <JsonToken>;

            Assert.Equal((JsonToken)0, error?.UnexpectedToken.TokenID);
            Assert.True(error.ErrorMessage.Contains("end of stream"));
            Assert.Equal(1, error?.Line);
            Assert.Equal(2, error?.Column);
        }
Esempio n. 3
0
        public void TestJsonSyntaxError()
        {
            JSONParser jsonParser = new JSONParser();
            ParserBuilder <JsonToken, JSon> builder = new ParserBuilder <JsonToken, JSon>();
            Parser <JsonToken, JSon>        parser  = builder.BuildParser(jsonParser, ParserType.LL_RECURSIVE_DESCENT, "root").Result;


            string source = @"{
    'one': 1,
    'bug':{,}
}".Replace("'", "\"");
            ParseResult <JsonToken, JSon> r = parser.Parse(source);

            Assert.True(r.IsError);
            Assert.Null(r.Result);
            Assert.NotNull(r.Errors);
            Assert.True(r.Errors.Count > 0);
            Assert.IsType <UnexpectedTokenSyntaxError <JsonToken> >(r.Errors[0]);
            UnexpectedTokenSyntaxError <JsonToken> error = r.Errors[0] as UnexpectedTokenSyntaxError <JsonToken>;

            Assert.Equal(JsonToken.COMMA, error?.UnexpectedToken.TokenID);
            Assert.Equal(2, error?.Line);
            Assert.Equal(13, error?.Column);
        }