X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Ftoken.h;h=8ec28f3714ba54046f10c910e6276b2088df6eef;hb=2031b99a3f1970a0b9a840652f0aff80ec34b433;hp=67bc7ddc3b74753d587e4e1a29e4b356caf033d0;hpb=7c3ed885759bae94d80064c24135083e597873e1;p=pspp diff --git a/src/language/lexer/token.h b/src/language/lexer/token.h index 67bc7ddc3b..8ec28f3714 100644 --- a/src/language/lexer/token.h +++ b/src/language/lexer/token.h @@ -17,28 +17,25 @@ #ifndef TOKEN_H #define TOKEN_H 1 +#include #include #include "libpspp/assertion.h" #include "libpspp/str.h" #include "data/identifier.h" -/* A PSPP syntax token. - - The 'type' member is used by the scanner (see scan.h) for SCAN_* values as - well, which is why it is not declared as type "enum token_type". */ +/* A PSPP syntax token. */ struct token { - int type; /* Usually a "enum token_type" value. */ + enum token_type type; double number; struct substring string; }; -#define TOKEN_INITIALIZER(TYPE, NUMBER, STRING) \ - { TYPE, NUMBER, SS_LITERAL_INITIALIZER (STRING) } - -void token_init (struct token *); +void token_copy (struct token *, const struct token *); void token_uninit (struct token *); +bool token_equal (const struct token *, const struct token *); + char *token_to_string (const struct token *); void token_print (const struct token *, FILE *);