Interface ITokenizerResumptionPoint<TChar, TArg>
- Namespace
- Farkle.Parser.Tokenizers
- Assembly
- Farkle.dll
Provides a way for a Tokenizer<TChar> to resume at multiple points after suspending.
public interface ITokenizerResumptionPoint<TChar, in TArg>
Type Parameters
TCharThe type of characters the tokenizer reads.
TArgA type a value of which will be passed to the resumption point. Implementing this interface with multiple
TArgtypes allows defining many suspension points.
Methods
TryGetNextToken(ref ParserInputReader<TChar>, ITokenSemanticProvider<TChar>, TArg, out TokenizerResult)
Tries to get the next token from the input.
This method is identical to TryGetNextToken(ref ParserInputReader<TChar>, ITokenSemanticProvider<TChar>, out TokenizerResult)
with the only addition of the arg parameter.
bool TryGetNextToken(ref ParserInputReader<TChar> input, ITokenSemanticProvider<TChar> semanticProvider, TArg arg, out TokenizerResult result)
Parameters
inputParserInputReader<TChar>A ParserInputReader<TChar> with the input and the ParserState.
semanticProviderITokenSemanticProvider<TChar>An ITokenSemanticProvider<TChar> to create the semantic values for the tokens.
argTArgThe value that had been passed in SuspendTokenizer<TChar, TArg>(ref ParserInputReader<TChar>, ITokenizerResumptionPoint<TChar, TArg>, TArg).
resultTokenizerResultWill hold the TokenizerResult if the method returns true.
Returns
- bool
Whether the tokenizer was given enough characters to either find a token or conclusively fail. See TryGetNextToken(ref ParserInputReader<TChar>, ITokenSemanticProvider<TChar>, out TokenizerResult) for more details about the semantics of the method's return type.