CultPong/Assets/Scripts/Parsley/Primitives/TokenByKindParser.cs
2020-09-25 07:12:38 +01:00

20 lines
No EOL
514 B
C#

namespace Parsley.Primitives
{
internal class TokenByKindParser : Parser<Token>
{
private readonly TokenKind kind;
public TokenByKindParser(TokenKind kind)
{
this.kind = kind;
}
public Reply<Token> Parse(TokenStream tokens)
{
if (tokens.Current.Kind == kind)
return new Parsed<Token>(tokens.Current, tokens.Advance());
return new Error<Token>(tokens, ErrorMessage.Expected(kind.Name));
}
}
}