forked from cvc5/ethos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtokens.h
90 lines (84 loc) · 1.63 KB
/
tokens.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/******************************************************************************
* This file is part of the ethos project.
*
* Copyright (c) 2023-2024 by the authors listed in the file AUTHORS
* in the top-level source directory and their institutional affiliations.
* All rights reserved. See the file COPYING in the top-level source
* directory for licensing information.
******************************************************************************/
#ifndef TOKENS_H
#define TOKENS_H
#include <sstream>
#include <string>
namespace ethos {
/**
*/
enum class Token
{
EOF_TOK = 0,
ABSTRACT_TYPE,
ASSERT,
ASSUME,
ASSUME_PUSH,
ATTRIBUTE,
BOOL_TYPE,
BINARY_LITERAL,
CHECK_SAT,
CHECK_SAT_ASSUMING,
DECIMAL_LITERAL,
DECLARE_CODATATYPE,
DECLARE_CODATATYPES,
DECLARE_CONST,
DECLARE_CONSTS,
DECLARE_DATATYPE,
DECLARE_DATATYPES,
DECLARE_FUN,
DECLARE_PARAMETERIZED_CONST,
DECLARE_ORACLE_FUN,
DECLARE_RULE,
DECLARE_SORT,
DECLARE_TYPE,
DECLARE_VAR,
DEFINE,
DEFINE_CONST,
DEFINE_FUN,
DEFINE_SORT,
DEFINE_TYPE,
ECHO,
EVAL_DEFINE, // eo::define
EVAL_MATCH, // eo::match
EXIT,
HEX_LITERAL,
INCLUDE,
INTEGER_LITERAL,
KEYWORD,
LET,
LPAREN,
NUMERAL,
PAR,
POP,
PROGRAM,
PROOF,
PROOF_TYPE,
PUSH,
QUOTED_SYMBOL,
RATIONAL_LITERAL,
REFERENCE,
RESET,
RPAREN,
SET_INFO,
SET_LOGIC,
SET_OPTION,
STEP,
STEP_POP,
STRING_LITERAL,
SYMBOL,
TYPE,
UNTERMINATED_QUOTED_SYMBOL,
UNTERMINATED_STRING_LITERAL,
NONE
};
/** Print a token to the stream, for debugging */
std::ostream& operator<<(std::ostream& o, Token t);
} // namespace ethos
#endif /* TOKENS_H */