summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
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