summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLibravatar Martin Michalec <martin@michalec.dev>2026-02-22 03:17:42 +0000
committerLibravatar Martin Michalec <martin@michalec.dev>2026-02-22 03:17:42 +0000
commit1a4ca5bef333edd4ebd12a7a67495af54beeb5f3 (patch)
tree5e10dd6989c43314db8351fe2c62481160d0f78f /include
parentadd lexeme implementation (diff)
downloadrs274ngc-1a4ca5bef333edd4ebd12a7a67495af54beeb5f3.tar.gz
add lexer implementation
Diffstat (limited to 'include')
-rw-r--r--include/cmmm/rs274ngc/lexer.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/cmmm/rs274ngc/lexer.h b/include/cmmm/rs274ngc/lexer.h
new file mode 100644
index 0000000..eca972e
--- /dev/null
+++ b/include/cmmm/rs274ngc/lexer.h
@@ -0,0 +1,35 @@
1// include/cmmm/lexer.h
2
3#ifndef INCLUDED__RS274NGC__LEXER__H
4#define INCLUDED__RS274NGC__LEXER__H
5
6// #define CMMM__RS274NGC__LEXER__STRIP_VENDOR
7
8#include <stddef.h>
9#include "cmmm/string-view.h"
10#include "cmmm/rs274ngc/lexeme.h"
11
12#define RS274NGC__LEXER__FIRST_MATCH
13#define RS274NGC__LEXER__TRIM
14// #define RS274NGC__LEXER__FILTER_COMMENTS
15
16struct cmmm__rs274ngc__lexer {
17 struct cmmm__string_view sv;
18 const char *cursor;
19 const char *filename;
20 struct cmmm__rs274ngc__lexeme lexeme;
21};
22
23struct cmmm__rs274ngc__lexer cmmm__rs274ngc__lexer__from_string_view (struct cmmm__string_view, const char *filename);
24void cmmm__rs274ngc__lexer__next_lexeme (struct cmmm__rs274ngc__lexer *);
25
26#ifdef CMMM__RS274NGC__LEXER__STRIP_VENDOR
27#define RS274NGC__LEXER__STRIP_VENDOR CMMM__RS274NGC__LEXER__STRIP_VENDOR
28#define rs274ngc__lexer cmmm__rs274ngc__lexer
29#define rs274ngc__lexer__from_string_view cmmm__rs274ngc__lexer__from_string_view
30#define rs274ngc__lexer__next_lexeme cmmm__rs274ngc__lexer__next_lexeme
31#endif // CMMM__RS274NGC__LEXER__STRIP_VENDOR
32
33#endif // INCLUDED__RS274NGC__LEXER__H
34
35// include/cmmm/lexer.h ends here