X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Flexer.c;h=d161287685beca3bd1956a025764152644805000;hb=a675bf52fd2ed392ff50f0f86e0efd6aefa29a03;hp=ac0af60005edc2e97f3c7c491309ceca51af8a10;hpb=a9acce47d67e0ab35ce1690e4f1b1ac0121c2d78;p=pspp diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index ac0af60005..d161287685 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -548,9 +548,19 @@ lex_match (struct lexer *lexer, int t) Otherwise, returns false. */ bool lex_match_id (struct lexer *lexer, const char *s) +{ + return lex_match_id_n (lexer, s, 3); +} + +/* If the current token is the identifier S, skips it and returns + true. The identifier may be abbreviated to its first N + letters. + Otherwise, returns false. */ +bool +lex_match_id_n (struct lexer *lexer, const char *s, size_t n) { if (lexer->token == T_ID - && lex_id_match (ss_cstr (s), ss_cstr (lexer->tokid))) + && lex_id_match_n (ss_cstr (s), ss_cstr (lexer->tokid), n)) { lex_get (lexer); return true;