summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-12-29 17:13:14 -0500
committerJune McEnroe <june@causal.agency>2020-12-29 17:13:14 -0500
commit68712bc1e1a9d3711370290345987c39ea06a89c (patch)
tree84c8a77d7e4b37762ac12e7f1425206c34e6ad17 /bin
parentMatch function-like macro definitions as IdentifierTag (diff)
downloadsrc-68712bc1e1a9d3711370290345987c39ea06a89c.tar.gz
src-68712bc1e1a9d3711370290345987c39ea06a89c.zip
Match C type declarations as IdentifierTag
Diffstat (limited to '')
-rw-r--r--bin/hilex/c.l14
1 files changed, 14 insertions, 0 deletions
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;
+}
+<TypeDecl>{ident}/[[:space:]]*("{"|"(") {
+	BEGIN(pop);
+	return IdentifierTag;
+}
+<TypeDecl>. {
+	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 |
td>Only log signals other than SIGTERMJune McEnroe 2020-08-15Clarify restart interval in catsitd manualJune McEnroe 2020-08-15Fix resetting restart interval with explicit restartJune McEnroe 2020-08-15Add reset interval after which restart interval is resetJune McEnroe 2020-08-15Log when service name pattern doesn't matchJune McEnroe 2020-08-15Add FreeBSD rc scriptJune McEnroe I'm expecting to also have an OpenBSD rc script. 2020-08-15Call setproctitle with number of servicesJune McEnroe 2020-08-15Rename project to catsitJune McEnroe 2020-08-15Use only LOG_NOTICE and LOG_WARNINGJune McEnroe These are the two priorities that go to a normal place (/var/log/messages) by default. 2020-08-15Make log messages consistentJune McEnroe 2020-08-15Remove closelog callJune McEnroe It's unclear whether closelog is really safe to call in pre-exec context, so just trust that the log is opened with CLOEXEC. 2020-08-15Implement service statusJune McEnroe 2020-08-15Parse control commandsJune McEnroe 2020-08-15Read service pipesJune McEnroe Changed line reading functions to return const char * because modifying the strings by adding '\0' into them screws up the following call. 2020-08-15Implement non-blocking line-buffered readingJune McEnroe 2020-08-15Generate tags fileJune McEnroe 2020-08-15Just use CLOCK_MONOTONIC and clean up includesJune McEnroe CLOCK_MONOTONIC exists everywhere. 2020-08-15Reap childrenJune McEnroe 2020-08-14Implement serviceSignal, serviceStop, serviceRestartJune McEnroe 2020-08-14Reset restartInterval and restartDeadline on startJune McEnroe 2020-08-14Switch to timespec for timeoutsJune McEnroe Can be passed to ppoll(2) directly. 2020-08-14Implement serviceStartJune McEnroe 2020-08-14Flesh out Service structJune McEnroe 2020-08-14Build environment for servicesJune McEnroe 2020-08-14Implement spawntab parsingJune McEnroe 2020-08-14Open syslog, daemonize, write PIDJune McEnroe 2020-08-14Implement user and group lookupJune McEnroe 2020-08-14Add install targetJune McEnroe 2020-08-14Add spawnd skeletonJune McEnroe