16 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_ASSIGN = 75;
17 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_CALL = 25;
19 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_ASSIGN_BIT = 100;
20 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_ASSIGN_STRUCTLIKE = 0;
22 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_ACTION = 44;
23 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_FUNCTION = 45;
24 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_TABLE = 10;
25 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_CTRL = 5;
26 uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_BUILT_IN = 1;
29 uint16_t STATEMENT_SWITCH = 5;
30 uint16_t STATEMENT_ASSIGNMENTORMETHODCALL = 85;
31 uint16_t STATEMENT_IF = 3;
32 uint16_t STATEMENT_RETURN = 2;
33 uint16_t STATEMENT_EXIT = 0;
34 uint16_t STATEMENT_BLOCK = 2;
36 uint16_t STATEMENT_FOR = 1;
37 uint16_t STATEMENT_FOR_IN = 1;
40 uint16_t SCOPE_LVAL_PATH = 90;
41 uint16_t SCOPE_LVAL_SLICE = 10;
44 uint16_t STATEMENTORDECLARATION_VAR = 10;
45 uint16_t STATEMENTORDECLARATION_CONSTANT = 10;
46 uint16_t STATEMENTORDECLARATION_STATEMENT = 80;
49 uint16_t EXPRESSION_BIT_UNARY_NEG = 20;
50 uint16_t EXPRESSION_BIT_UNARY_CMPL = 20;
51 uint16_t EXPRESSION_BIT_UNARY_CAST = 10;
52 uint16_t EXPRESSION_BIT_UNARY_FUNCTION = 50;
54 uint16_t EXPRESSION_BIT_BINARY_MUL = 5;
55 uint16_t EXPRESSION_BIT_BINARY_DIV = 5;
56 uint16_t EXPRESSION_BIT_BINARY_MOD = 5;
57 uint16_t EXPRESSION_BIT_BINARY_ADD = 10;
58 uint16_t EXPRESSION_BIT_BINARY_SUB = 10;
59 uint16_t EXPRESSION_BIT_BINARY_ADDSAT = 10;
60 uint16_t EXPRESSION_BIT_BINARY_SUBSAT = 10;
61 uint16_t EXPRESSION_BIT_BINARY_LSHIFT = 5;
62 uint16_t EXPRESSION_BIT_BINARY_RSHIFT = 5;
63 uint16_t EXPRESSION_BIT_BINARY_BAND = 10;
64 uint16_t EXPRESSION_BIT_BINARY_BOR = 10;
65 uint16_t EXPRESSION_BIT_BINARY_BXOR = 10;
66 uint16_t EXPRESSION_BIT_BINARY_CONCAT = 5;
68 uint16_t EXPRESSION_BIT_BINARY_SLICE = 50;
69 uint16_t EXPRESSION_BIT_BINARY_MUX = 50;
71 uint16_t EXPRESSION_BIT_VAR = 20;
72 uint16_t EXPRESSION_BIT_INT_LITERAL = 5;
73 uint16_t EXPRESSION_BIT_BIT_LITERAL = 25;
74 uint16_t EXPRESSION_BIT_UNARY = 10;
75 uint16_t EXPRESSION_BIT_BINARY = 20;
76 uint16_t EXPRESSION_BIT_TERNARY = 10;
79 uint16_t EXPRESSION_INT_UNARY_NEG = 20;
80 uint16_t EXPRESSION_INT_UNARY_CMPL = 20;
81 uint16_t EXPRESSION_INT_UNARY_FUNCTION = 50;
83 uint16_t EXPRESSION_INT_BINARY_MUL = 5;
84 uint16_t EXPRESSION_INT_BINARY_DIV = 5;
85 uint16_t EXPRESSION_INT_BINARY_MOD = 5;
86 uint16_t EXPRESSION_INT_BINARY_ADD = 10;
87 uint16_t EXPRESSION_INT_BINARY_SUB = 10;
88 uint16_t EXPRESSION_INT_BINARY_LSHIFT = 0;
89 uint16_t EXPRESSION_INT_BINARY_RSHIFT = 0;
90 uint16_t EXPRESSION_INT_BINARY_BAND = 10;
91 uint16_t EXPRESSION_INT_BINARY_BOR = 10;
92 uint16_t EXPRESSION_INT_BINARY_BXOR = 10;
94 uint16_t EXPRESSION_INT_BINARY_MUX = 50;
96 uint16_t EXPRESSION_INT_VAR = 20;
97 uint16_t EXPRESSION_INT_INT_LITERAL = 5;
98 uint16_t EXPRESSION_INT_UNARY = 10;
99 uint16_t EXPRESSION_INT_BINARY = 20;
102 uint16_t EXPRESSION_BOOLEAN_VAR = 15;
103 uint16_t EXPRESSION_BOOLEAN_LITERAL = 20;
104 uint16_t EXPRESSION_BOOLEAN_NOT = 35;
105 uint16_t EXPRESSION_BOOLEAN_LAND = 5;
106 uint16_t EXPRESSION_BOOLEAN_LOR = 5;
107 uint16_t EXPRESSION_BOOLEAN_CMP = 10;
108 uint16_t EXPRESSION_BOOLEAN_FUNCTION = 5;
109 uint16_t EXPRESSION_BOOLEAN_BUILT_IN = 5;
111 uint16_t EXPRESSION_BOOLEAN_CMP_EQU = 50;
112 uint16_t EXPRESSION_BOOLEAN_CMP_NEQ = 50;
115 uint16_t EXPRESSION_STRUCT_VAR = 50;
116 uint16_t EXPRESSION_STRUCT_LITERAL = 30;
117 uint16_t EXPRESSION_STRUCT_FUNCTION = 20;
120 uint16_t P4STATE_TRANSITION_ACCEPT = 50;
121 uint16_t P4STATE_TRANSITION_REJECT = 10;
122 uint16_t P4STATE_TRANSITION_STATE = 30;
123 uint16_t P4STATE_TRANSITION_SELECT = 10;
125 uint16_t BASETYPE_BIT = 50;
126 uint16_t BASETYPE_SIGNED_BIT = 0;
127 uint16_t BASETYPE_VARBIT = 0;
128 uint16_t BASETYPE_INT = 10;
129 uint16_t BASETYPE_ERROR = 0;
130 uint16_t BASETYPE_BOOL = 10;
131 uint16_t BASETYPE_STRING = 0;
132 uint16_t DERIVED_ENUM = 0;
133 uint16_t DERIVED_HEADER = 5;
134 uint16_t DERIVED_HEADER_STACK = 2;
135 uint16_t DERIVED_STRUCT = 5;
136 uint16_t DERIVED_HEADER_UNION = 0;
137 uint16_t DERIVED_TUPLE = 0;
138 uint16_t TYPE_VOID = 0;
139 uint16_t TYPE_MATCH_KIND = 0;
142 uint16_t CONSTANTDECLARATION_TYPE_BASE = 80;
143 uint16_t CONSTANTDECLARATION_TYPE_STRUCT = 0;
145 uint16_t CONSTANTDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
146 uint16_t CONSTANTDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
147 uint16_t CONSTANTDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
148 uint16_t CONSTANTDECLARATION_BASETYPE_INT = BASETYPE_INT;
149 uint16_t CONSTANTDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
150 uint16_t CONSTANTDECLARATION_BASETYPE_BOOL = BASETYPE_BOOL;
151 uint16_t CONSTANTDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
152 uint16_t CONSTANTDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
153 uint16_t CONSTANTDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
154 uint16_t CONSTANTDECLARATION_DERIVED_HEADER_STACK = 0;
155 uint16_t CONSTANTDECLARATION_DERIVED_STRUCT = DERIVED_STRUCT;
156 uint16_t CONSTANTDECLARATION_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
157 uint16_t CONSTANTDECLARATION_DERIVED_TUPLE = DERIVED_TUPLE;
158 uint16_t CONSTANTDECLARATION_TYPE_VOID = TYPE_VOID;
159 uint16_t CONSTANTDECLARATION_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
162 uint16_t FUNCTIONDECLARATION_TYPE_BASE = 90;
163 uint16_t FUNCTIONDECLARATION_TYPE_STRUCT = 9;
165 uint16_t FUNCTIONDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
166 uint16_t FUNCTIONDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
167 uint16_t FUNCTIONDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
168 uint16_t FUNCTIONDECLARATION_BASETYPE_INT = 0;
169 uint16_t FUNCTIONDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
170 uint16_t FUNCTIONDECLARATION_BASETYPE_BOOL = BASETYPE_BOOL;
171 uint16_t FUNCTIONDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
172 uint16_t FUNCTIONDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
173 uint16_t FUNCTIONDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
175 uint16_t FUNCTIONDECLARATION_DERIVED_HEADER_STACK = 0;
176 uint16_t FUNCTIONDECLARATION_DERIVED_STRUCT = DERIVED_STRUCT;
177 uint16_t FUNCTIONDECLARATION_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
178 uint16_t FUNCTIONDECLARATION_DERIVED_TUPLE = DERIVED_TUPLE;
179 uint16_t FUNCTIONDECLARATION_TYPE_VOID = 1;
180 uint16_t FUNCTIONDECLARATION_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
183 uint16_t HEADERTYPEDECLARATION_FIELD_BASE = 100;
184 uint16_t HEADERTYPEDECLARATION_FIELD_STRUCT = 0;
186 uint16_t HEADERTYPEDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
187 uint16_t HEADERTYPEDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
188 uint16_t HEADERTYPEDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
189 uint16_t HEADERTYPEDECLARATION_BASETYPE_INT = 0;
190 uint16_t HEADERTYPEDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
191 uint16_t HEADERTYPEDECLARATION_BASETYPE_BOOL = 0;
192 uint16_t HEADERTYPEDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
193 uint16_t HEADERTYPEDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
194 uint16_t HEADERTYPEDECLARATION_DERIVED_HEADER = 0;
195 uint16_t HEADERTYPEDECLARATION_DERIVED_HEADER_STACK = 0;
197 uint16_t HEADERTYPEDECLARATION_DERIVED_STRUCT = 0;
198 uint16_t HEADERTYPEDECLARATION_DERIVED_HEADER_UNION = 0;
199 uint16_t HEADERTYPEDECLARATION_DERIVED_TUPLE = 0;
200 uint16_t HEADERTYPEDECLARATION_TYPE_VOID = 0;
201 uint16_t HEADERTYPEDECLARATION_TYPE_MATCH_KIND = 0;
204 uint16_t PARAMETER_DIR_IN = 33;
205 uint16_t PARAMETER_DIR_OUT = 33;
206 uint16_t PARAMETER_DIR_INOUT = 33;
208 uint16_t PARAMETER_BASETYPE_BIT = BASETYPE_BIT;
209 uint16_t PARAMETER_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
210 uint16_t PARAMETER_BASETYPE_VARBIT = BASETYPE_VARBIT;
211 uint16_t PARAMETER_BASETYPE_INT = 0;
212 uint16_t PARAMETER_BASETYPE_ERROR = BASETYPE_ERROR;
213 uint16_t PARAMETER_BASETYPE_BOOL = 0;
214 uint16_t PARAMETER_BASETYPE_STRING = BASETYPE_STRING;
215 uint16_t PARAMETER_DERIVED_ENUM = DERIVED_ENUM;
216 uint16_t PARAMETER_DERIVED_HEADER = DERIVED_HEADER;
217 uint16_t PARAMETER_DERIVED_HEADER_STACK = 0;
218 uint16_t PARAMETER_DERIVED_STRUCT = DERIVED_STRUCT;
219 uint16_t PARAMETER_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
220 uint16_t PARAMETER_DERIVED_TUPLE = DERIVED_TUPLE;
221 uint16_t PARAMETER_TYPE_VOID = TYPE_VOID;
222 uint16_t PARAMETER_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
225 uint16_t PARAMETER_NONEDIR_BASETYPE_BIT = PARAMETER_BASETYPE_BIT;
226 uint16_t PARAMETER_NONEDIR_BASETYPE_SIGNED_BIT = PARAMETER_BASETYPE_SIGNED_BIT;
227 uint16_t PARAMETER_NONEDIR_BASETYPE_VARBIT = PARAMETER_BASETYPE_VARBIT;
228 uint16_t PARAMETER_NONEDIR_BASETYPE_INT = PARAMETER_BASETYPE_INT;
229 uint16_t PARAMETER_NONEDIR_BASETYPE_ERROR = PARAMETER_BASETYPE_ERROR;
230 uint16_t PARAMETER_NONEDIR_BASETYPE_BOOL = PARAMETER_BASETYPE_BOOL;
231 uint16_t PARAMETER_NONEDIR_BASETYPE_STRING = PARAMETER_BASETYPE_STRING;
232 uint16_t PARAMETER_NONEDIR_DERIVED_ENUM = PARAMETER_DERIVED_ENUM;
233 uint16_t PARAMETER_NONEDIR_DERIVED_HEADER = PARAMETER_DERIVED_HEADER;
234 uint16_t PARAMETER_NONEDIR_DERIVED_HEADER_STACK = PARAMETER_DERIVED_HEADER_STACK;
235 uint16_t PARAMETER_NONEDIR_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
236 uint16_t PARAMETER_NONEDIR_DERIVED_STRUCT = DERIVED_STRUCT;
237 uint16_t PARAMETER_NONEDIR_DERIVED_TUPLE = DERIVED_TUPLE;
238 uint16_t PARAMETER_NONEDIR_TYPE_VOID = TYPE_VOID;
239 uint16_t PARAMETER_NONEDIR_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
242 uint16_t STRUCTTYPEDECLARATION_FIELD_BASE = 75;
243 uint16_t STRUCTTYPEDECLARATION_FIELD_STRUCT = 25;
244 uint16_t STRUCTTYPEDECLARATION_FIELD_STACK = 0;
246 uint16_t STRUCTTYPEDECLARATION_HEADERS_HEADER = 90;
247 uint16_t STRUCTTYPEDECLARATION_HEADERS_STACK = 10;
249 uint16_t STRUCTTYPEDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
250 uint16_t STRUCTTYPEDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
251 uint16_t STRUCTTYPEDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
252 uint16_t STRUCTTYPEDECLARATION_BASETYPE_INT = 0;
253 uint16_t STRUCTTYPEDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
254 uint16_t STRUCTTYPEDECLARATION_BASETYPE_BOOL = BASETYPE_BOOL;
255 uint16_t STRUCTTYPEDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
256 uint16_t STRUCTTYPEDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
257 uint16_t STRUCTTYPEDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
258 uint16_t STRUCTTYPEDECLARATION_DERIVED_HEADER_STACK = DERIVED_HEADER_STACK;
259 uint16_t STRUCTTYPEDECLARATION_DERIVED_STRUCT = DERIVED_STRUCT;
260 uint16_t STRUCTTYPEDECLARATION_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
261 uint16_t STRUCTTYPEDECLARATION_DERIVED_TUPLE = DERIVED_TUPLE;
262 uint16_t STRUCTTYPEDECLARATION_TYPE_VOID = 0;
263 uint16_t STRUCTTYPEDECLARATION_TYPE_MATCH_KIND = 0;
265 uint16_t TYPEDECLARATION_HEADER = 75;
266 uint16_t TYPEDECLARATION_STRUCT = 25;
267 uint16_t TYPEDECLARATION_UNION = 0;
270 uint16_t TYPEDEFDECLARATION_BASE = 75;
271 uint16_t TYPEDEFDECLARATION_STRUCTLIKE = 25;
272 uint16_t TYPEDEFDECLARATION_STACK = 0;
274 uint16_t TYPEDEFDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
275 uint16_t TYPEDEFDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
276 uint16_t TYPEDEFDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
277 uint16_t TYPEDEFDECLARATION_BASETYPE_INT = 0;
278 uint16_t TYPEDEFDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
279 uint16_t TYPEDEFDECLARATION_BASETYPE_BOOL = 0;
280 uint16_t TYPEDEFDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
281 uint16_t TYPEDEFDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
282 uint16_t TYPEDEFDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
283 uint16_t TYPEDEFDECLARATION_DERIVED_HEADER_STACK = DERIVED_HEADER_STACK;
284 uint16_t TYPEDEFDECLARATION_STRUCT = DERIVED_STRUCT;
285 uint16_t TYPEDEFDECLARATION_HEADER_UNION = DERIVED_HEADER_UNION;
286 uint16_t TYPEDEFDECLARATION_TUPLE = DERIVED_TUPLE;
287 uint16_t TYPEDEFDECLARATION_TYPE_VOID = TYPE_VOID;
288 uint16_t TYPEDEFDECLARATION_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
291 uint16_t VARIABLEDECLARATION_TYPE_BASE = 80;
292 uint16_t VARIABLEDECLARATION_TYPE_STRUCT = 15;
293 uint16_t VARIABLEDECLARATION_TYPE_STACK = 5;
295 uint16_t VARIABLEDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
296 uint16_t VARIABLEDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
297 uint16_t VARIABLEDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
298 uint16_t VARIABLEDECLARATION_BASETYPE_INT = 0;
299 uint16_t VARIABLEDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
300 uint16_t VARIABLEDECLARATION_BASETYPE_BOOL = BASETYPE_BOOL;
301 uint16_t VARIABLEDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
302 uint16_t VARIABLEDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
303 uint16_t VARIABLEDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
304 uint16_t VARIABLEDECLARATION_DERIVED_HEADER_STACK = DERIVED_HEADER_STACK;
305 uint16_t VARIABLEDECLARATION_DERIVED_STRUCT = DERIVED_STRUCT;
306 uint16_t VARIABLEDECLARATION_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
307 uint16_t VARIABLEDECLARATION_DERIVED_TUPLE = DERIVED_TUPLE;
308 uint16_t VARIABLEDECLARATION_TYPE_VOID = TYPE_VOID;
309 uint16_t VARIABLEDECLARATION_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
311 static Probabilities &get() {
312 static Probabilities INSTANCE;
317 Probabilities() =
default;