Module Name: src
Committed By: rillig
Date: Sat May 20 01:28:14 UTC 2023
Modified Files:
src/usr.bin/indent: lexi.c
Log Message:
indent: clean up lexing of word tokens
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.200 -r1.201 src/usr.bin/indent/lexi.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.200 src/usr.bin/indent/lexi.c:1.201
--- src/usr.bin/indent/lexi.c:1.200 Sat May 20 00:17:56 2023
+++ src/usr.bin/indent/lexi.c Sat May 20 01:28:14 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: lexi.c,v 1.200 2023/05/20 00:17:56 rillig Exp $ */
+/* $NetBSD: lexi.c,v 1.201 2023/05/20 01:28:14 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: lexi.c,v 1.200 2023/05/20 00:17:56 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.201 2023/05/20 01:28:14 rillig Exp $");
#include <stdlib.h>
#include <string.h>
@@ -383,22 +383,21 @@ lexi_alnum(void)
token.len--;
const struct keyword *kw = bsearch(token.st, keywords,
array_length(keywords), sizeof(keywords[0]), cmp_keyword_by_name);
- bool is_type = false;
- if (kw == NULL) {
- if (is_typename()) {
- is_type = true;
- ps.next_unary = true;
- if (ps.in_enum == in_enum_enum)
- ps.in_enum = in_enum_type;
+ lexer_symbol lsym = lsym_word;
+ if (kw != NULL) {
+ if (kw->lsym == lsym_type)
+ lsym = lsym_type_in_parentheses;
+ ps.next_unary = true;
+ if (kw->lsym == lsym_tag || kw->lsym == lsym_type)
goto found_typename;
- }
+ return kw->lsym;
+ }
- } else { /* we have a keyword */
- is_type = kw->lsym == lsym_type;
+ if (is_typename()) {
+ lsym = lsym_type_in_parentheses;
ps.next_unary = true;
- if (kw->lsym != lsym_tag && kw->lsym != lsym_type)
- return kw->lsym;
-
+ if (ps.in_enum == in_enum_enum)
+ ps.in_enum = in_enum_type;
found_typename:
if (ps.nparen > 0) {
/* inside parentheses: cast, param list, offsetof or
@@ -433,7 +432,7 @@ found_typename:
return lsym_type_outside_parentheses;
}
- return is_type ? lsym_type_in_parentheses : lsym_word;
+ return lsym;
}
static bool