1 #ifndef _RE2C_CONSTANTS_
2 #define _RE2C_CONSTANTS_
3 
4 #include "src/util/c99_stdint.h"
5 
6 
7 namespace re2c {
8 
9 enum target_t {
10     TARGET_CODE,
11     TARGET_DOT,
12     TARGET_SKELETON
13 };
14 
15 enum lang_t {
16     LANG_C,
17     LANG_GO
18 };
19 
20 enum input_api_t {
21     INPUT_DEFAULT,
22     INPUT_CUSTOM
23 };
24 
25 enum api_style_t {
26     API_FUNCTIONS,
27     API_FREEFORM
28 };
29 
30 enum fixed_tags_t {
31     FIXTAG_NONE,
32     FIXTAG_TOPLEVEL,
33     FIXTAG_ALL
34 };
35 
36 enum parse_opts_t {
37     OK,
38     EXIT_OK,
39     EXIT_FAIL
40 };
41 
42 enum InputBlockKind {
43     INPUT_END,
44     INPUT_GLOBAL,
45     INPUT_LOCAL,
46     INPUT_USE,
47     INPUT_RULES,
48     INPUT_ERROR
49 };
50 
51 enum empty_class_policy_t {
52     EMPTY_CLASS_MATCH_EMPTY, // match on empty input
53     EMPTY_CLASS_MATCH_NONE,  // fail to match on any input
54     EMPTY_CLASS_ERROR        // compilation error
55 };
56 
57 enum dfa_minimization_t {
58     DFA_MINIMIZATION_TABLE,
59     DFA_MINIMIZATION_MOORE
60 };
61 
62 enum posix_closure_t {
63     POSIX_CLOSURE_GOR1,
64     POSIX_CLOSURE_GTOP
65 };
66 
67 enum posix_prectable_alg_t {
68     POSIX_PRECTABLE_NAIVE,
69     POSIX_PRECTABLE_COMPLEX
70 };
71 
72 enum CodeKind {
73     CODE_EMPTY,
74     CODE_IF_THEN_ELSE,
75     CODE_SWITCH,
76     CODE_BLOCK,
77     CODE_FUNC,
78     CODE_SKIP,
79     CODE_PEEK,
80     CODE_BACKUP,
81     CODE_PEEK_SKIP,
82     CODE_SKIP_PEEK,
83     CODE_SKIP_BACKUP,
84     CODE_BACKUP_SKIP,
85     CODE_BACKUP_PEEK,
86     CODE_BACKUP_PEEK_SKIP,
87     CODE_SKIP_BACKUP_PEEK,
88     CODE_LINE_INFO_INPUT,
89     CODE_LINE_INFO_OUTPUT,
90     CODE_COND_ENUM,
91     CODE_COND_GOTO,
92     CODE_COND_TABLE,
93     CODE_STATE_GOTO,
94     CODE_STAGS,
95     CODE_MTAGS,
96     CODE_MAXFILL,
97     CODE_MAXNMATCH,
98     CODE_YYCH,
99     CODE_YYACCEPT,
100     CODE_VAR,
101     CODE_STMT,
102     CODE_TEXT,
103     CODE_TEXT_RAW,
104     CODE_RAW,
105     CODE_LABEL
106 };
107 
108 // Bit flags for configurations used in directives.
109 enum DirConf {
110     DCONF_FORMAT    = 1u,
111     DCONF_SEPARATOR = 2u
112 };
113 
114 const uint32_t NOEOF = ~0u - 1;
115 
116 } // namespace re2c
117 
118 #endif // _RE2C_CONSTANTS_
119