Teuchos - Trilinos Tools Package
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
parser
src
Teuchos_MathExpr.hpp
1
#ifndef TEUCHOS_MATHEXPR_HPP
2
#define TEUCHOS_MATHEXPR_HPP
3
4
#include <set>
5
6
#include <
Teuchos_Language.hpp
>
7
#include <
Teuchos_Reader.hpp
>
8
9
namespace
Teuchos
{
10
11
namespace
MathExpr {
12
13
enum
{
14
PROD_PROGRAM,
15
PROD_NO_STATEMENTS,
16
PROD_NEXT_STATEMENT,
17
PROD_ASSIGN,
18
PROD_NO_EXPR,
19
PROD_YES_EXPR,
20
PROD_EXPR,
21
PROD_TERNARY_DECAY,
22
PROD_OR_DECAY,
23
PROD_AND_DECAY,
24
PROD_ADD_SUB_DECAY,
25
PROD_MUL_DIV_DECAY,
26
PROD_NEG_DECAY,
27
PROD_POW_DECAY,
28
PROD_TERNARY,
29
PROD_OR,
30
PROD_AND,
31
PROD_GT,
32
PROD_LT,
33
PROD_GEQ,
34
PROD_LEQ,
35
PROD_EQ,
36
PROD_BOOL_PARENS,
37
PROD_ADD,
38
PROD_SUB,
39
PROD_MUL,
40
PROD_DIV,
41
PROD_POW,
42
PROD_CALL,
43
PROD_NO_ARGS,
44
PROD_SOME_ARGS,
45
PROD_FIRST_ARG,
46
PROD_NEXT_ARG,
47
PROD_NEG,
48
PROD_VAL_PARENS,
49
PROD_CONST,
50
PROD_VAR,
51
PROD_NO_SPACES,
52
PROD_SPACES
53
};
54
55
enum
{ NPRODS = PROD_SPACES + 1 };
56
57
enum
{
58
TOK_SPACE,
59
TOK_NAME,
60
TOK_ADD,
61
TOK_SUB,
62
TOK_MUL,
63
TOK_DIV,
64
TOK_POW,
65
TOK_LPAREN,
66
TOK_RPAREN,
67
TOK_COMMA,
68
TOK_CHECK,
69
TOK_CHOOSE,
70
TOK_GT,
71
TOK_LT,
72
TOK_GEQ,
73
TOK_LEQ,
74
TOK_EQ,
75
TOK_AND,
76
TOK_OR,
77
TOK_CONST,
78
TOK_SEMICOLON,
79
TOK_ASSIGN
80
};
81
82
enum
{ NTOKS = TOK_ASSIGN + 1 };
83
84
Language make_language();
85
86
LanguagePtr
ask_language();
87
88
ReaderTablesPtr
ask_reader_tables();
89
90
class
SymbolSetReader :
public
Reader {
91
public
:
92
SymbolSetReader();
93
virtual
~SymbolSetReader();
94
public
:
95
std::set<std::string> variable_names;
96
std::set<std::string> function_names;
97
private
:
98
virtual
void
at_shift(any& result,
int
token, std::string& text);
99
virtual
void
at_reduce(any& result,
int
prod, std::vector<any>& rhs);
100
};
101
102
std::set<std::string> get_variables_used(std::string
const
& expr);
103
std::set<std::string> get_symbols_used(std::string
const
& expr);
104
105
Reader* new_calc_reader();
106
107
}
// end namespace MathExpr
108
109
}
// end namespace Teuchos
110
111
#endif
Teuchos_Language.hpp
Declares Teuchos::Language.
Teuchos_Reader.hpp
Declares Teuchos::Reader.
Teuchos
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
Teuchos::ReaderTablesPtr
RCP< const ReaderTables > ReaderTablesPtr
an RCP to a const ReaderTables
Definition
Teuchos_ReaderTables.hpp:72
Teuchos::LanguagePtr
RCP< const Language > LanguagePtr
an RCP to a const Language
Definition
Teuchos_Language.hpp:180
Generated by
1.17.0