summaryrefslogtreecommitdiff
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-05-17 11:13:23 +0200
commit527c23b73c8dae16f02cca6f450edb7d8225f60f (patch)
tree6b2bfd9e8d814026d6d2c1839d8cfe1bcadc825c /lex.h
downloadslcob-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