Exemplo n.º 1
0
 Expression ThrowUnexpectedInput(Expression errorMessage)
 {
     return(ThrowExpression.InvalidDataException(
                StringExpression.Format(
                    "{0} (line {1} position {2})",
                    errorMessage,
                    Expression.Convert(Reader.LineNumber, typeof(object)),
                    Expression.Convert(Reader.LinePosition, typeof(object)))));
 }
Exemplo n.º 2
0
 Expression ThrowUnexpectedState(Expression state)
 {
     return(ThrowExpression.InvalidDataException(
                StringExpression.Format(
                    "Unexpected JsonToken '{0}' at state {1} (line {2} position {3})",
                    Expression.Convert(Reader.TokenType, typeof(object)),
                    Expression.Convert(state, typeof(object)),
                    Expression.Convert(Reader.LineNumber, typeof(object)),
                    Expression.Convert(Reader.LinePosition, typeof(object)))));
 }
Exemplo n.º 3
0
 protected override IStateMachine <XmlNodeType> CreateStateMachine(
     IEnumerable <TransformSchemaPair> transforms,
     ParameterExpression requiredFields)
 {
     return(new StateMachine <XmlNodeType>
     {
         InitialState = State.AtStructElement,
         FinalState = State.Finished,
         IgnoredTokens = new[] { XmlNodeType.Whitespace, XmlNodeType.Comment, XmlNodeType.Text },
         Default = state => ThrowExpression.InvalidDataException("Unexpected node type"),
         TokenTransitions = new[]
         {
             new TokenTransition <XmlNodeType>
             {
                 Token = XmlNodeType.Element,
                 StateTransitions = new[]
                 {
                     new StateTransition(State.AtStructElement,
                                         ProcessStructElement),
                     new StateTransition(State.InsideStructElement,
                                         state => ProcessFieldElement(state, requiredFields, transforms)),
                     new StateTransition(State.AtFieldEndElement, State.InsideStructElement,
                                         state => Reader.Read())
                 },
                 Default = state => ParsingError(state),
             },
             new TokenTransition <XmlNodeType>
             {
                 Token = XmlNodeType.EndElement,
                 StateTransitions = new[]
                 {
                     new StateTransition(State.AtFieldEndElement, State.InsideStructElement,
                                         state => Reader.Read()),
                     new StateTransition(State.InsideStructElement, State.Finished,
                                         state => Reader.Read())
                 },
                 Default = state => ParsingError(state),
             }
         }
     });
 }