X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Ftoken.c;fp=src%2Flanguage%2Flexer%2Ftoken.c;h=61f576ed985b934b43789e2a16912e28f4b595fa;hb=c0bffcdd876481bbf21ac9ed7510b93c2c41decf;hp=9fa5bbb6ba81804534c809f4a2b90bb552c607cf;hpb=a36fb40ac81f2ac6b8283764ce782ec65d18e15c;p=pspp diff --git a/src/language/lexer/token.c b/src/language/lexer/token.c index 9fa5bbb6ba..61f576ed98 100644 --- a/src/language/lexer/token.c +++ b/src/language/lexer/token.c @@ -198,6 +198,22 @@ token_print (const struct token *token, FILE *stream) (int) token->string.length, token->string.string); putc ('\n', stream); } + +bool +token_is_integer (const struct token *t) +{ + return (token_is_number (t) + && t->number > LONG_MIN + && t->number <= LONG_MAX + && floor (t->number) == t->number); +} + +long +token_integer (const struct token *t) +{ + assert (token_is_integer (t)); + return t->number; +} void tokens_copy (struct tokens *dst, const struct tokens *src)