aboutsummaryrefslogtreecommitdiff
path: root/src/prc1/lex.h
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2026-09-05 17:14:53 +0200
committerXavier Del Campo Romero <xavi92@disroot.org>2026-09-26 03:41:55 +0200
commit3c0819236e4f07c8f57aaf1ca46d0d68aa761558 (patch)
treebd8b57cf5420cabc4ec29815052df545b55026f9 /src/prc1/lex.h
parenta3f56c76444fee090e62a59f257ed5f60b4e552b (diff)
downloadprc-3c0819236e4f07c8f57aaf1ca46d0d68aa761558.tar.gz
Move source to src/prc1
Diffstat (limited to 'src/prc1/lex.h')
-rw-r--r--src/prc1/lex.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/prc1/lex.h b/src/prc1/lex.h
new file mode 100644
index 0000000..6e836ac
--- /dev/null
+++ b/src/prc1/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