summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-02 14:11:06 -0500
committerJune McEnroe <june@causal.agency>2021-01-02 14:11:06 -0500
commitf36404c75a887e9ea6e3eba6a7701e616bf33c5f (patch)
tree16bc48594a9e5f62c2a40665e6e910eabc43c512
parentClean up order lexer (diff)
downloadsrc-f36404c75a887e9ea6e3eba6a7701e616bf33c5f.tar.gz
src-f36404c75a887e9ea6e3eba6a7701e616bf33c5f.zip
Tag top-level typedefs the same way as function definitions
-rw-r--r--bin/hilex/c.l5
1 files changed, 4 insertions, 1 deletions
diff --git a/bin/hilex/c.l b/bin/hilex/c.l
index 55f50f09..e89d3adc 100644
--- a/bin/hilex/c.l
+++ b/bin/hilex/c.l
@@ -55,7 +55,7 @@ enum|struct|typedef|union {
 	BEGIN(TypeDecl);
 	return Keyword;
 }
-<TypeDecl>{ident}/[[:space:]]*("{"|"(") {
+<TypeDecl>{ident}/[[:space:]]*"{" {
 	BEGIN(pop);
 	return IdentifierTag;
 }
@@ -111,6 +111,9 @@ register|restrict|return|static|struct|switch|typedef|union|volatile|while |
 {ident}/"("[^)]*")"[[:space:]]*"{" {
 	return (!depth ? IdentifierTag : Identifier);
 }
+<TypeDecl>{ident}/"("[^)]*");" {
+	return (!depth ? IdentifierTag : Identifier);
+}
 
 "//"([^\n]|"\\\n")* |
 "/*"([^*]|"*"[^/])*"*"+"/" {