aboutsummaryrefslogtreecommitdiff
path: root/lex.h
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2026-05-09 02:56:07 +0200
committerXavier Del Campo Romero <xavi92@disroot.org>2026-06-21 01:15:38 +0200
commitb25ff71bb198c227b3202ee32a8067cda413bc16 (patch)
tree41d665a87d948c10b17a853220cbcdbaeebf3672 /lex.h
downloadprc-master.tar.gz
Add project skeletonHEADmaster
Diffstat (limited to 'lex.h')
-rw-r--r--lex.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/lex.h b/lex.h
new file mode 100644
index 0000000..6e836ac
--- /dev/null
+++ b/lex.h
@@ -0,0 +1,34 @@
+#ifndef LEX_H
+#define LEX_H
+
+#include <stddef.h>
+#include <stdio.h>
+
+enum tktype {UNDEF, ID, LIT, NUM, ANY};
+
+struct loc
+{
+ const char *f;
+ int line, col;
+};
+
+struct tk
+{
+ enum tktype type;
+ struct loc loc;
+ char *s;
+};
+
+struct lex
+{
+ struct loc loc;
+ struct tk *tokens, tk;
+ size_t ntok, len;
+ int comment;
+};
+
+int lex(struct lex *lex, FILE *f);
+int lex_eof(const struct lex *lex, const struct tk *tk);
+void lex_free(struct lex *lex);
+
+#endif