private static bool TryCreateNativeTypeParserDeserializer( Action <SchemaError> reportError, InputObjectType inputObjectType, Type nativeType, out Func <ObjectValueNode, object> deserializer) { if (nativeType.IsDefined(typeof(GraphQLLiteralParserAttribute))) { Type parserType = nativeType .GetCustomAttribute <GraphQLLiteralParserAttribute>().Type; if (typeof(ILiteralParser).IsAssignableFrom(parserType)) { ILiteralParser parser = (ILiteralParser)Activator .CreateInstance(parserType); deserializer = literal => parser.ParseLiteral(literal); return(true); } else { reportError(new SchemaError( "A literal parser has to implement `ILiteralParser`.", inputObjectType)); } } deserializer = null; return(false); }
/// <summary> /// Initializes a new instance of the <see cref="PatternParser" /> class. /// </summary> /// <param name="literalParser"> /// The literal parser. /// </param> public PatternParser(ILiteralParser literalParser) { if (literalParser == null) { throw new ArgumentNullException("literalParser"); } this.literalParser = literalParser; }
public virtual void Reset(IListSource <Token> tokens, ISourceFile file, IParsingOptions parsingOptions) { CheckParam.IsNotNull("tokens", tokens); CheckParam.IsNotNull("file", file); _tokensRoot = _tokens = tokens; _sourceFile = file; _literalParser = parsingOptions?.LiteralParser ?? EcsLiteralHandlers.Value; F = new LNodeFactory(file); InputPosition = 0; // reads LT(0) _tentativeErrors = new TentativeState(false); }
public void Reset(IList <Token> list, ISourceFile file, IParsingOptions options, int startIndex = 0) { Reset(list, default(Token), file, startIndex); _literalParser = options?.LiteralParser ?? StandardLiteralHandlers.Value; }
public Les3Parser(IList <Token> list, ISourceFile file, IMessageSink sink, IParsingOptions options, int startIndex = 0) : base(list, prev => new Token((int)TokenType.EOF, prev.EndIndex, 0, null), (int)TokenType.EOF, file, startIndex) { _literalParser = options?.LiteralParser ?? StandardLiteralHandlers.Value; ErrorSink = sink; }
public static bool IsUnknown <T>(ILiteralParser <T> parser) { return(parser is UnknownLiteralParser <T>); }