X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flexer.h;h=0880773390dece125d26d5bfed42a5047e65fa4f;hb=b9799cdd10b30ea96d9178b7a0d48504d052228c;hp=af3aeb0ae0f7bf54b5c5b226dd37ad3775fbbe17;hpb=4de79b34b329d1da6cdeb145993d3efd911e2967;p=pspp-builds.git diff --git a/src/lexer.h b/src/lexer.h index af3aeb0a..08807733 100644 --- a/src/lexer.h +++ b/src/lexer.h @@ -24,54 +24,8 @@ #include #include -/* Returns nonzero if character CH may be the first character in an - identifier. */ -#define CHAR_IS_ID1(CH) \ - (isalpha ((unsigned char) (CH)) \ - || (CH) == '@' \ - || (CH) == '#' \ - || (CH) == '$') - -/* Returns nonzero if character CH may be a character in an - identifier other than the first. */ -#define CHAR_IS_IDN(CH) \ - (CHAR_IS_ID1 (CH) \ - || isdigit ((unsigned char) (CH)) \ - || (CH) == '.' \ - || (CH) == '_') - -/* Token types. */ -/* The order of the enumerals below is important. Do not change it. */ -enum - { - T_ID = 256, /* Identifier. */ - T_POS_NUM, /* Positive number. */ - T_NEG_NUM, /* Negative number. */ - T_STRING, /* Quoted string. */ - T_STOP, /* End of input. */ - - T_AND, /* AND */ - T_OR, /* OR */ - T_NOT, /* NOT */ - - T_EQ, /* EQ */ - T_GE, /* GE or >= */ - T_GT, /* GT or > */ - T_LE, /* LE or <= */ - T_LT, /* LT or < */ - T_NE, /* NE or ~= */ - - T_ALL, /* ALL */ - T_BY, /* BY */ - T_TO, /* TO */ - T_WITH, /* WITH */ - - T_EXP, /* ** */ - - T_FIRST_KEYWORD = T_AND, - T_LAST_KEYWORD = T_WITH, - T_N_KEYWORDS = T_LAST_KEYWORD - T_FIRST_KEYWORD + 1 - }; +#include "lex-def.h" + extern int token; extern double tokval; @@ -87,6 +41,8 @@ void lex_done (void); /* Common functions. */ void lex_get (void); void lex_error (const char *, ...); +void lex_sbc_only_once (const char *); +void lex_sbc_missing (const char *); int lex_end_of_command (void); /* Token testing functions. */ @@ -107,12 +63,6 @@ int lex_force_int (void); int lex_force_num (void); int lex_force_id (void); int lex_force_string (void); - -/* Comparing identifiers. */ -int lex_id_match_len (const char *keyword_string, size_t keyword_len, - const char *token_string, size_t token_len); -int lex_id_match (const char *keyword_string, const char *token_string); -int lex_id_to_token (const char *id, size_t len); /* Weird token functions. */ int lex_look_ahead (void);