X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flexer.c;h=94793bfb9557d4d0191b411c93405bc09fcd98e2;hb=8b811199c8a79dba237254527012b43773e60975;hp=6bcb46eb97c88c71028f435f1dcd65fad254e320;hpb=4944c86a9318bc5b5578ab145a95c116ffd2c9fd;p=pspp diff --git a/src/lexer.c b/src/lexer.c index 6bcb46eb97..94793bfb95 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -18,6 +18,7 @@ 02111-1307, USA. */ #include +#include "lexer.h" #include #include #include @@ -29,12 +30,13 @@ #include "command.h" #include "error.h" #include "getline.h" -#include "lexer.h" #include "magic.h" #include "settings.h" #include "str.h" -/*#define DUMP_TOKENS 1*/ +/* +#define DUMP_TOKENS 1 +*/ /* Global variables. */ @@ -159,6 +161,7 @@ lex_get (void) } } + /* Actually parse the token. */ cp = prog; ds_clear (&tokstr); @@ -409,6 +412,23 @@ lex_integer (void) assert (lex_integer_p ()); return tokval; } +/* Returns nonzero if the current token is an floating point. */ +int +lex_double_p (void) +{ + return ( token == T_NUM + && tokval != NOT_DOUBLE ); +} + +/* Returns the value of the current token, which must be a + floating point number. */ +long +lex_double (void) +{ + assert (lex_double_p ()); + return tokval; +} + /* Token matching functions. */