1    	// This file is automatically generated. Do not edit!
2    	
3    	#include "mp/common.h"
4    	#include "expr-writer.h"
5    	
6    	const mp::internal::OpCodeInfo mp::internal::OpCodeInfo::INFO[] = {
7    	  {expr::ADD, expr::FIRST_BINARY},
8    	  {expr::SUB, expr::FIRST_BINARY},
9    	  {expr::MUL, expr::FIRST_BINARY},
10   	  {expr::DIV, expr::FIRST_BINARY},
11   	  {expr::MOD, expr::FIRST_BINARY},
12   	  {expr::POW, expr::FIRST_BINARY},
13   	  {expr::LESS, expr::FIRST_BINARY},
14   	  {expr::UNKNOWN, expr::UNKNOWN},
15   	  {expr::UNKNOWN, expr::UNKNOWN},
16   	  {expr::UNKNOWN, expr::UNKNOWN},
17   	  {expr::UNKNOWN, expr::UNKNOWN},
18   	  {expr::MIN, expr::FIRST_VARARG},
19   	  {expr::MAX, expr::FIRST_VARARG},
20   	  {expr::FLOOR, expr::FIRST_UNARY},
21   	  {expr::CEIL, expr::FIRST_UNARY},
22   	  {expr::ABS, expr::FIRST_UNARY},
23   	  {expr::MINUS, expr::FIRST_UNARY},
24   	  {expr::UNKNOWN, expr::UNKNOWN},
25   	  {expr::UNKNOWN, expr::UNKNOWN},
26   	  {expr::UNKNOWN, expr::UNKNOWN},
27   	  {expr::OR, expr::FIRST_BINARY_LOGICAL},
28   	  {expr::AND, expr::FIRST_BINARY_LOGICAL},
29   	  {expr::LT, expr::FIRST_RELATIONAL},
30   	  {expr::LE, expr::FIRST_RELATIONAL},
31   	  {expr::EQ, expr::FIRST_RELATIONAL},
32   	  {expr::UNKNOWN, expr::UNKNOWN},
33   	  {expr::UNKNOWN, expr::UNKNOWN},
34   	  {expr::UNKNOWN, expr::UNKNOWN},
35   	  {expr::GE, expr::FIRST_RELATIONAL},
36   	  {expr::GT, expr::FIRST_RELATIONAL},
37   	  {expr::NE, expr::FIRST_RELATIONAL},
38   	  {expr::UNKNOWN, expr::UNKNOWN},
39   	  {expr::UNKNOWN, expr::UNKNOWN},
40   	  {expr::UNKNOWN, expr::UNKNOWN},
41   	  {expr::NOT, expr::NOT},
42   	  {expr::IF, expr::IF},
43   	  {expr::UNKNOWN, expr::UNKNOWN},
44   	  {expr::TANH, expr::FIRST_UNARY},
45   	  {expr::TAN, expr::FIRST_UNARY},
46   	  {expr::SQRT, expr::FIRST_UNARY},
47   	  {expr::SINH, expr::FIRST_UNARY},
48   	  {expr::SIN, expr::FIRST_UNARY},
49   	  {expr::LOG10, expr::FIRST_UNARY},
50   	  {expr::LOG, expr::FIRST_UNARY},
51   	  {expr::EXP, expr::FIRST_UNARY},
52   	  {expr::COSH, expr::FIRST_UNARY},
53   	  {expr::COS, expr::FIRST_UNARY},
54   	  {expr::ATANH, expr::FIRST_UNARY},
55   	  {expr::ATAN2, expr::FIRST_BINARY},
56   	  {expr::ATAN, expr::FIRST_UNARY},
57   	  {expr::ASINH, expr::FIRST_UNARY},
58   	  {expr::ASIN, expr::FIRST_UNARY},
59   	  {expr::ACOSH, expr::FIRST_UNARY},
60   	  {expr::ACOS, expr::FIRST_UNARY},
61   	  {expr::SUM, expr::SUM},
62   	  {expr::TRUNC_DIV, expr::FIRST_BINARY},
63   	  {expr::PRECISION, expr::FIRST_BINARY},
64   	  {expr::ROUND, expr::FIRST_BINARY},
65   	  {expr::TRUNC, expr::FIRST_BINARY},
66   	  {expr::COUNT, expr::COUNT},
67   	  {expr::NUMBEROF, expr::NUMBEROF},
68   	  {expr::NUMBEROF_SYM, expr::NUMBEROF_SYM},
69   	  {expr::ATLEAST, expr::FIRST_LOGICAL_COUNT},
70   	  {expr::ATMOST, expr::FIRST_LOGICAL_COUNT},
71   	  {expr::PLTERM, expr::PLTERM},
72   	  {expr::IFSYM, expr::IFSYM},
73   	  {expr::EXACTLY, expr::FIRST_LOGICAL_COUNT},
74   	  {expr::NOT_ATLEAST, expr::FIRST_LOGICAL_COUNT},
75   	  {expr::NOT_ATMOST, expr::FIRST_LOGICAL_COUNT},
76   	  {expr::NOT_EXACTLY, expr::FIRST_LOGICAL_COUNT},
77   	  {expr::FORALL, expr::FIRST_ITERATED_LOGICAL},
78   	  {expr::EXISTS, expr::FIRST_ITERATED_LOGICAL},
79   	  {expr::IMPLICATION, expr::IMPLICATION},
80   	  {expr::IFF, expr::FIRST_BINARY_LOGICAL},
81   	  {expr::ALLDIFF, expr::FIRST_PAIRWISE},
82   	  {expr::NOT_ALLDIFF, expr::FIRST_PAIRWISE},
83   	  {expr::POW_CONST_EXP, expr::FIRST_BINARY},
84   	  {expr::POW2, expr::FIRST_UNARY},
85   	  {expr::POW_CONST_BASE, expr::FIRST_BINARY},
86   	  {expr::CALL, expr::CALL},
87   	  {expr::NUMBER, expr::NUMBER},
88   	  {expr::STRING, expr::STRING},
89   	  {expr::VARIABLE, expr::VARIABLE}
90   	};
91   	
92   	const mp::internal::ExprInfo mp::internal::ExprInfo::INFO[] = {
93   	  {-1, "unknown"},
94   	  {80, "number"},
95   	  {82, "variable"},
96   	  {-1, "common expression"},
97   	  {16, "unary -"},
98   	  {15, "abs"},
99   	  {13, "floor"},
100  	  {14, "ceil"},
101  	  {39, "sqrt"},
102  	  {77, "^2"},
103  	  {44, "exp"},
104  	  {43, "log"},
105  	  {42, "log10"},
106  	  {41, "sin"},
107  	  {40, "sinh"},
108  	  {46, "cos"},
109  	  {45, "cosh"},
110  	  {38, "tan"},
111  	  {37, "tanh"},
112  	  {51, "asin"},
113  	  {50, "asinh"},
114  	  {53, "acos"},
115  	  {52, "acosh"},
116  	  {49, "atan"},
117  	  {47, "atanh"},
118  	  {0, "+"},
119  	  {1, "-"},
120  	  {6, "less"},
121  	  {2, "*"},
122  	  {3, "/"},
123  	  {55, "div"},
124  	  {4, "mod"},
125  	  {5, "^"},
126  	  {78, "^"},
127  	  {76, "^"},
128  	  {48, "atan2"},
129  	  {56, "precision"},
130  	  {57, "round"},
131  	  {58, "trunc"},
132  	  {35, "if"},
133  	  {64, "piecewise-linear term"},
134  	  {79, "function call"},
135  	  {11, "min"},
136  	  {12, "max"},
137  	  {54, "sum"},
138  	  {60, "numberof"},
139  	  {61, "symbolic numberof"},
140  	  {59, "count"},
141  	  {80, "bool"},
142  	  {34, "!"},
143  	  {20, "||"},
144  	  {21, "&&"},
145  	  {73, "<==>"},
146  	  {22, "<"},
147  	  {23, "<="},
148  	  {24, "="},
149  	  {28, ">="},
150  	  {29, ">"},
151  	  {30, "!="},
152  	  {62, "atleast"},
153  	  {63, "atmost"},
154  	  {66, "exactly"},
155  	  {67, "!atleast"},
156  	  {68, "!atmost"},
157  	  {69, "!exactly"},
158  	  {72, "==>"},
159  	  {71, "exists"},
160  	  {70, "forall"},
161  	  {74, "alldiff"},
162  	  {75, "!alldiff"},
163  	  {81, "string"},
164  	  {65, "symbolic if"}
165  	};
166  	
167  	const mp::prec::Precedence mp::expr::PrecInfo::INFO[] = {
168  	  prec::UNKNOWN,
169  	  prec::PRIMARY,
170  	  prec::PRIMARY,
171  	  prec::PRIMARY,
172  	  prec::UNARY,
173  	  prec::CALL,
174  	  prec::CALL,
175  	  prec::CALL,
176  	  prec::CALL,
177  	  prec::EXPONENTIATION,
178  	  prec::CALL,
179  	  prec::CALL,
180  	  prec::CALL,
181  	  prec::CALL,
182  	  prec::CALL,
183  	  prec::CALL,
184  	  prec::CALL,
185  	  prec::CALL,
186  	  prec::CALL,
187  	  prec::CALL,
188  	  prec::CALL,
189  	  prec::CALL,
190  	  prec::CALL,
191  	  prec::CALL,
192  	  prec::CALL,
193  	  prec::ADDITIVE,
194  	  prec::ADDITIVE,
195  	  prec::ADDITIVE,
196  	  prec::MULTIPLICATIVE,
197  	  prec::MULTIPLICATIVE,
198  	  prec::MULTIPLICATIVE,
199  	  prec::MULTIPLICATIVE,
200  	  prec::EXPONENTIATION,
201  	  prec::EXPONENTIATION,
202  	  prec::EXPONENTIATION,
203  	  prec::CALL,
204  	  prec::CALL,
205  	  prec::CALL,
206  	  prec::CALL,
207  	  prec::CONDITIONAL,
208  	  prec::CALL,
209  	  prec::CALL,
210  	  prec::CALL,
211  	  prec::CALL,
212  	  prec::ITERATIVE,
213  	  prec::CALL,
214  	  prec::CALL,
215  	  prec::CALL,
216  	  prec::PRIMARY,
217  	  prec::NOT,
218  	  prec::LOGICAL_OR,
219  	  prec::LOGICAL_AND,
220  	  prec::IFF,
221  	  prec::RELATIONAL,
222  	  prec::RELATIONAL,
223  	  prec::RELATIONAL,
224  	  prec::RELATIONAL,
225  	  prec::RELATIONAL,
226  	  prec::RELATIONAL,
227  	  prec::CALL,
228  	  prec::CALL,
229  	  prec::CALL,
230  	  prec::CALL,
231  	  prec::CALL,
232  	  prec::CALL,
233  	  prec::IMPLICATION,
234  	  prec::CALL,
235  	  prec::CALL,
236  	  prec::CALL,
237  	  prec::CALL,
238  	  prec::PRIMARY,
239  	  prec::CONDITIONAL
240  	};
241