From 68712bc1e1a9d3711370290345987c39ea06a89c Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Tue, 29 Dec 2020 17:13:14 -0500 Subject: Match C type declarations as IdentifierTag --- bin/hilex/c.l | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'bin/hilex/c.l') diff --git a/bin/hilex/c.l b/bin/hilex/c.l index 3b0bcab3..c5dc31ff 100644 --- a/bin/hilex/c.l +++ b/bin/hilex/c.l @@ -22,6 +22,7 @@ %} %s MacroLine MacroInclude MacroDefine +%s TypeDecl %x CharLiteral StringLiteral ident [_[:alpha:]][_[:alnum:]]* @@ -78,6 +79,19 @@ sizeof|(_A|alignof) { return Number; } +enum|struct|typedef|union { + BEGIN(TypeDecl); + return Keyword; +} +{ident}/[[:space:]]*("{"|"(") { + BEGIN(pop); + return IdentifierTag; +} +. { + BEGIN(pop); + REJECT; +} + auto|break|case|const|continue|default|do|else|enum|extern|for|goto|if|inline | register|restrict|return|static|struct|switch|typedef|union|volatile|while | (_A|a)lignas|_Atomic|_Generic|(_N|n)oreturn|(_S|s)tatic_assert | -- cgit 1.4.1