X-Git-Url: https://git.hcoop.net/bpt/coccinelle.git/blobdiff_plain/113803cf8147c1b5332cc7d9ac43febcc197e4f0..785a3008ddade80f642257bb47d43158ac8b8311:/parsing_cocci/parser_cocci_menhir.ml diff --git a/parsing_cocci/parser_cocci_menhir.ml b/parsing_cocci/parser_cocci_menhir.ml index 803d8b3..c9b03d8 100644 --- a/parsing_cocci/parser_cocci_menhir.ml +++ b/parsing_cocci/parser_cocci_menhir.ml @@ -1,443 +1,458 @@ - -# 23 "parser_cocci_menhir.mly" - - -(* Not clear how to allow function declarations to specify a return type -and how to allow both to be specified as static, because they are in -different rules. The rules seem to have to be combined, which would allow -functions to be declared as local variables *) - -(* Not clear how to let a function have a parameter of type void. At the -moment, void is allowed to be the type of a variable, which is wrong, and a -parameter needs both a type and an identifier *) -module Ast0 = Ast0_cocci -module Ast = Ast_cocci -module P = Parse_aux - -# 18 "parser_cocci_menhir.ml" exception Error type token = | Tvolatile of ( -# 54 "parser_cocci_menhir.mly" +# 32 "parser_cocci_menhir.mly" (Data.clt) -# 25 "parser_cocci_menhir.ml" +# 8 "parser_cocci_menhir.ml" ) | Tvoid of ( -# 50 "parser_cocci_menhir.mly" +# 28 "parser_cocci_menhir.mly" (Data.clt) -# 30 "parser_cocci_menhir.ml" +# 13 "parser_cocci_menhir.ml" ) | Tunsigned of ( -# 51 "parser_cocci_menhir.mly" +# 29 "parser_cocci_menhir.mly" (Data.clt) -# 35 "parser_cocci_menhir.ml" +# 18 "parser_cocci_menhir.ml" ) | Tunion of ( -# 50 "parser_cocci_menhir.mly" +# 28 "parser_cocci_menhir.mly" (Data.clt) -# 40 "parser_cocci_menhir.ml" +# 23 "parser_cocci_menhir.ml" ) | Ttypedef of ( -# 53 "parser_cocci_menhir.mly" +# 31 "parser_cocci_menhir.mly" (Data.clt) -# 45 "parser_cocci_menhir.ml" +# 28 "parser_cocci_menhir.ml" ) | Tstruct of ( -# 50 "parser_cocci_menhir.mly" +# 28 "parser_cocci_menhir.mly" (Data.clt) -# 50 "parser_cocci_menhir.ml" +# 33 "parser_cocci_menhir.ml" ) | Tstatic of ( -# 53 "parser_cocci_menhir.mly" +# 31 "parser_cocci_menhir.mly" (Data.clt) -# 55 "parser_cocci_menhir.ml" +# 38 "parser_cocci_menhir.ml" ) | Tsigned of ( -# 51 "parser_cocci_menhir.mly" +# 29 "parser_cocci_menhir.mly" (Data.clt) -# 60 "parser_cocci_menhir.ml" +# 43 "parser_cocci_menhir.ml" ) | Tshort of ( -# 49 "parser_cocci_menhir.mly" +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 65 "parser_cocci_menhir.ml" +# 48 "parser_cocci_menhir.ml" ) | Tregister of ( -# 53 "parser_cocci_menhir.mly" +# 31 "parser_cocci_menhir.mly" (Data.clt) -# 70 "parser_cocci_menhir.ml" +# 53 "parser_cocci_menhir.ml" ) | Tlong of ( -# 49 "parser_cocci_menhir.mly" +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 75 "parser_cocci_menhir.ml" +# 58 "parser_cocci_menhir.ml" ) | Tlist | Tint of ( -# 49 "parser_cocci_menhir.mly" +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 81 "parser_cocci_menhir.ml" +# 64 "parser_cocci_menhir.ml" ) | Tinline of ( -# 53 "parser_cocci_menhir.mly" +# 31 "parser_cocci_menhir.mly" (Data.clt) -# 86 "parser_cocci_menhir.ml" +# 69 "parser_cocci_menhir.ml" ) | Tfloat of ( -# 49 "parser_cocci_menhir.mly" +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 91 "parser_cocci_menhir.ml" +# 74 "parser_cocci_menhir.ml" ) | Textern of ( -# 53 "parser_cocci_menhir.mly" +# 31 "parser_cocci_menhir.mly" (Data.clt) -# 96 "parser_cocci_menhir.ml" +# 79 "parser_cocci_menhir.ml" ) | Tenum of ( -# 50 "parser_cocci_menhir.mly" +# 28 "parser_cocci_menhir.mly" (Data.clt) -# 101 "parser_cocci_menhir.ml" +# 84 "parser_cocci_menhir.ml" ) | Tdouble of ( -# 49 "parser_cocci_menhir.mly" +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 106 "parser_cocci_menhir.ml" +# 89 "parser_cocci_menhir.ml" ) | Tconst of ( -# 54 "parser_cocci_menhir.mly" +# 32 "parser_cocci_menhir.mly" (Data.clt) -# 111 "parser_cocci_menhir.ml" +# 94 "parser_cocci_menhir.ml" ) | Tchar of ( -# 49 "parser_cocci_menhir.mly" +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 116 "parser_cocci_menhir.ml" +# 99 "parser_cocci_menhir.ml" ) | Tauto of ( -# 53 "parser_cocci_menhir.mly" +# 31 "parser_cocci_menhir.mly" (Data.clt) -# 121 "parser_cocci_menhir.ml" +# 104 "parser_cocci_menhir.ml" ) | Tattr of ( -# 55 "parser_cocci_menhir.mly" +# 33 "parser_cocci_menhir.mly" (string * Data.clt) -# 126 "parser_cocci_menhir.ml" +# 109 "parser_cocci_menhir.ml" ) | TXor of ( -# 92 "parser_cocci_menhir.mly" +# 71 "parser_cocci_menhir.mly" (Data.clt) -# 131 "parser_cocci_menhir.ml" +# 114 "parser_cocci_menhir.ml" ) | TWords | TWhy0 | TWhy of ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 138 "parser_cocci_menhir.ml" +# 121 "parser_cocci_menhir.ml" ) | TWhile of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 143 "parser_cocci_menhir.ml" +# 126 "parser_cocci_menhir.ml" ) | TWhenTrue of ( -# 74 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 148 "parser_cocci_menhir.ml" +# 131 "parser_cocci_menhir.ml" ) | TWhenFalse of ( -# 74 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 153 "parser_cocci_menhir.ml" +# 136 "parser_cocci_menhir.ml" ) | TWhen of ( -# 74 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 158 "parser_cocci_menhir.ml" +# 141 "parser_cocci_menhir.ml" ) + | TVirtual | TUsing + | TUnderscore | TTypedef | TTypeId of ( -# 59 "parser_cocci_menhir.mly" +# 37 "parser_cocci_menhir.mly" (string * Data.clt) -# 165 "parser_cocci_menhir.ml" +# 150 "parser_cocci_menhir.ml" ) | TType + | TTildeExclEq of ( +# 73 "parser_cocci_menhir.mly" + (Data.clt) +# 156 "parser_cocci_menhir.ml" +) + | TTildeEq of ( +# 73 "parser_cocci_menhir.mly" + (Data.clt) +# 161 "parser_cocci_menhir.ml" +) | TTilde of ( -# 99 "parser_cocci_menhir.mly" +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 171 "parser_cocci_menhir.ml" +# 166 "parser_cocci_menhir.ml" ) | TSwitch of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 171 "parser_cocci_menhir.ml" +) + | TSub of ( +# 73 "parser_cocci_menhir.mly" (Data.clt) # 176 "parser_cocci_menhir.ml" ) | TString of ( -# 87 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (string * Data.clt) # 181 "parser_cocci_menhir.ml" ) | TStrict of ( -# 74 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 186 "parser_cocci_menhir.ml" ) | TStatement | TSizeof of ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) # 192 "parser_cocci_menhir.ml" ) - | TShOp of ( -# 96 "parser_cocci_menhir.mly" + | TShROp of ( +# 75 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 197 "parser_cocci_menhir.ml" +) + | TShLOp of ( +# 75 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 202 "parser_cocci_menhir.ml" ) | TScriptData of ( -# 71 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (string) -# 202 "parser_cocci_menhir.ml" +# 207 "parser_cocci_menhir.ml" ) | TScript | TRuleName of ( -# 47 "parser_cocci_menhir.mly" +# 25 "parser_cocci_menhir.mly" (string) -# 208 "parser_cocci_menhir.ml" +# 213 "parser_cocci_menhir.ml" ) | TRightIso - | TReverse | TReturn of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 215 "parser_cocci_menhir.ml" +# 219 "parser_cocci_menhir.ml" ) | TPure | TPtrOp of ( -# 104 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (Data.clt) -# 221 "parser_cocci_menhir.ml" +# 225 "parser_cocci_menhir.ml" ) | TPtVirg of ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 226 "parser_cocci_menhir.ml" +# 230 "parser_cocci_menhir.ml" ) | TPragma of ( -# 79 "parser_cocci_menhir.mly" - (string) -# 231 "parser_cocci_menhir.ml" +# 38 "parser_cocci_menhir.mly" + (Ast_cocci.added_string * Data.clt) +# 235 "parser_cocci_menhir.ml" ) | TPosition | TPosAny | TPlusFile of ( -# 83 "parser_cocci_menhir.mly" +# 62 "parser_cocci_menhir.mly" (string * Data.clt) -# 238 "parser_cocci_menhir.ml" +# 242 "parser_cocci_menhir.ml" ) | TPlus0 | TPlus of ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 244 "parser_cocci_menhir.ml" +# 248 "parser_cocci_menhir.ml" ) | TPathIsoFile of ( -# 79 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (string) -# 249 "parser_cocci_menhir.ml" +# 253 "parser_cocci_menhir.ml" ) | TParameter | TPOEllipsis of ( -# 73 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 255 "parser_cocci_menhir.ml" +# 259 "parser_cocci_menhir.ml" ) | TPCEllipsis of ( -# 73 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 260 "parser_cocci_menhir.ml" +# 264 "parser_cocci_menhir.ml" ) | TPArob | TOrLog of ( -# 89 "parser_cocci_menhir.mly" +# 68 "parser_cocci_menhir.mly" (Data.clt) -# 266 "parser_cocci_menhir.ml" +# 270 "parser_cocci_menhir.ml" ) | TOr of ( -# 91 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Data.clt) -# 271 "parser_cocci_menhir.ml" +# 275 "parser_cocci_menhir.ml" ) | TOn | TOPar0 of ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 277 "parser_cocci_menhir.ml" +# 281 "parser_cocci_menhir.ml" ) | TOPar of ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 282 "parser_cocci_menhir.ml" +# 286 "parser_cocci_menhir.ml" ) | TOInit of ( -# 101 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 287 "parser_cocci_menhir.ml" +# 291 "parser_cocci_menhir.ml" ) | TOEllipsis of ( -# 73 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 292 "parser_cocci_menhir.ml" +# 296 "parser_cocci_menhir.ml" ) | TOCro of ( -# 102 "parser_cocci_menhir.mly" +# 81 "parser_cocci_menhir.mly" (Data.clt) -# 297 "parser_cocci_menhir.ml" +# 301 "parser_cocci_menhir.ml" ) | TOBrace of ( -# 101 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 302 "parser_cocci_menhir.ml" +# 306 "parser_cocci_menhir.ml" ) | TNothing | TNotEq of ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 308 "parser_cocci_menhir.ml" +# 312 "parser_cocci_menhir.ml" ) | TNever | TName | TMul of ( -# 99 "parser_cocci_menhir.mly" +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 315 "parser_cocci_menhir.ml" +# 319 "parser_cocci_menhir.ml" ) | TMinusFile of ( -# 83 "parser_cocci_menhir.mly" +# 62 "parser_cocci_menhir.mly" (string * Data.clt) -# 320 "parser_cocci_menhir.ml" +# 324 "parser_cocci_menhir.ml" ) | TMinus of ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 325 "parser_cocci_menhir.ml" +# 329 "parser_cocci_menhir.ml" ) | TMid0 of ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 330 "parser_cocci_menhir.ml" +# 334 "parser_cocci_menhir.ml" ) | TMetaType of ( -# 64 "parser_cocci_menhir.mly" +# 43 "parser_cocci_menhir.mly" (Parse_aux.info) -# 335 "parser_cocci_menhir.ml" +# 339 "parser_cocci_menhir.ml" ) | TMetaStmList of ( -# 64 "parser_cocci_menhir.mly" +# 43 "parser_cocci_menhir.mly" (Parse_aux.info) -# 340 "parser_cocci_menhir.ml" +# 344 "parser_cocci_menhir.ml" ) | TMetaStm of ( -# 64 "parser_cocci_menhir.mly" +# 43 "parser_cocci_menhir.mly" (Parse_aux.info) -# 345 "parser_cocci_menhir.ml" +# 349 "parser_cocci_menhir.ml" ) | TMetaPos of ( -# 68 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (Parse_aux.pos_info) -# 350 "parser_cocci_menhir.ml" +# 354 "parser_cocci_menhir.ml" ) | TMetaParamList of ( -# 66 "parser_cocci_menhir.mly" +# 45 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 355 "parser_cocci_menhir.ml" +# 359 "parser_cocci_menhir.ml" ) | TMetaParam of ( -# 64 "parser_cocci_menhir.mly" +# 43 "parser_cocci_menhir.mly" (Parse_aux.info) -# 360 "parser_cocci_menhir.ml" +# 364 "parser_cocci_menhir.ml" ) | TMetaLocalIdExp of ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 365 "parser_cocci_menhir.ml" +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 369 "parser_cocci_menhir.ml" ) | TMetaLocalFunc of ( -# 61 "parser_cocci_menhir.mly" +# 40 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 370 "parser_cocci_menhir.ml" +# 374 "parser_cocci_menhir.ml" ) | TMetaIterator of ( -# 62 "parser_cocci_menhir.mly" +# 41 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 375 "parser_cocci_menhir.ml" +# 379 "parser_cocci_menhir.ml" ) | TMetaInit of ( -# 65 "parser_cocci_menhir.mly" +# 44 "parser_cocci_menhir.mly" (Parse_aux.info) -# 380 "parser_cocci_menhir.ml" +# 384 "parser_cocci_menhir.ml" ) | TMetaIdExp of ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 385 "parser_cocci_menhir.ml" +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 389 "parser_cocci_menhir.ml" ) | TMetaId of ( -# 61 "parser_cocci_menhir.mly" +# 40 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 390 "parser_cocci_menhir.ml" +# 394 "parser_cocci_menhir.ml" ) | TMetaFunc of ( -# 61 "parser_cocci_menhir.mly" +# 40 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 395 "parser_cocci_menhir.ml" +# 399 "parser_cocci_menhir.ml" +) + | TMetaField of ( +# 44 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 404 "parser_cocci_menhir.ml" ) | TMetaExpList of ( -# 66 "parser_cocci_menhir.mly" +# 45 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 400 "parser_cocci_menhir.ml" +# 409 "parser_cocci_menhir.ml" ) | TMetaExp of ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 405 "parser_cocci_menhir.ml" +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 414 "parser_cocci_menhir.ml" ) | TMetaErr of ( -# 63 "parser_cocci_menhir.mly" +# 42 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 410 "parser_cocci_menhir.ml" +# 419 "parser_cocci_menhir.ml" ) | TMetaDeclarer of ( -# 62 "parser_cocci_menhir.mly" +# 41 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 415 "parser_cocci_menhir.ml" +# 424 "parser_cocci_menhir.ml" +) + | TMetaDecl of ( +# 44 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 429 "parser_cocci_menhir.ml" ) | TMetaConst of ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 420 "parser_cocci_menhir.ml" +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 434 "parser_cocci_menhir.ml" ) | TMPtVirg | TLogOp of ( -# 95 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) -# 426 "parser_cocci_menhir.ml" +# 440 "parser_cocci_menhir.ml" ) | TLocal | TLineEnd of ( -# 74 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 432 "parser_cocci_menhir.ml" +# 446 "parser_cocci_menhir.ml" ) | TIteratorId of ( -# 59 "parser_cocci_menhir.mly" +# 37 "parser_cocci_menhir.mly" (string * Data.clt) -# 437 "parser_cocci_menhir.ml" +# 451 "parser_cocci_menhir.ml" ) | TIterator | TIsoType | TIsoTopLevel + | TIsoToTestExpression | TIsoTestExpression | TIsoStatement | TIsoExpression @@ -446,219 +461,241 @@ type token = | TIso | TInvalid | TInt of ( -# 87 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (string * Data.clt) -# 452 "parser_cocci_menhir.ml" +# 467 "parser_cocci_menhir.ml" ) + | TInitialize | TInitialiser | TIncludeNL of ( -# 80 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) -# 458 "parser_cocci_menhir.ml" +# 474 "parser_cocci_menhir.ml" ) | TIncludeL of ( -# 80 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) -# 463 "parser_cocci_menhir.ml" +# 479 "parser_cocci_menhir.ml" ) | TInc of ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 468 "parser_cocci_menhir.ml" +# 484 "parser_cocci_menhir.ml" ) | TIf of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 473 "parser_cocci_menhir.ml" +# 489 "parser_cocci_menhir.ml" ) | TIdentifier | TIdent of ( -# 59 "parser_cocci_menhir.mly" +# 37 "parser_cocci_menhir.mly" (string * Data.clt) -# 479 "parser_cocci_menhir.ml" +# 495 "parser_cocci_menhir.ml" ) | TIdExpression | TGoto of ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 485 "parser_cocci_menhir.ml" +# 501 "parser_cocci_menhir.ml" ) | TGenerated | TFunction | TFunDecl of ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 492 "parser_cocci_menhir.ml" +# 508 "parser_cocci_menhir.ml" ) | TFresh | TForall | TFor of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 499 "parser_cocci_menhir.ml" +# 515 "parser_cocci_menhir.ml" ) | TFloat of ( -# 87 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (string * Data.clt) -# 504 "parser_cocci_menhir.ml" +# 520 "parser_cocci_menhir.ml" ) + | TFinalize + | TField | TExtends | TExpression | TExists | TEver | TError | TEqEq of ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 514 "parser_cocci_menhir.ml" +# 532 "parser_cocci_menhir.ml" ) | TEq of ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 519 "parser_cocci_menhir.ml" +# 537 "parser_cocci_menhir.ml" ) | TElse of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 524 "parser_cocci_menhir.ml" +# 542 "parser_cocci_menhir.ml" ) | TEllipsis of ( -# 73 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 529 "parser_cocci_menhir.ml" +# 547 "parser_cocci_menhir.ml" ) | TDotDot of ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 534 "parser_cocci_menhir.ml" +# 552 "parser_cocci_menhir.ml" ) | TDot of ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 539 "parser_cocci_menhir.ml" +# 557 "parser_cocci_menhir.ml" ) | TDo of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 544 "parser_cocci_menhir.ml" +# 562 "parser_cocci_menhir.ml" ) | TDmOp of ( -# 97 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 549 "parser_cocci_menhir.ml" +# 567 "parser_cocci_menhir.ml" ) | TDisable | TDepends | TDefineParam of ( -# 82 "parser_cocci_menhir.mly" - (Data.clt * token * int) -# 556 "parser_cocci_menhir.ml" +# 61 "parser_cocci_menhir.mly" + (Data.clt * token * int * int) +# 574 "parser_cocci_menhir.ml" ) | TDefine of ( -# 81 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt * token) -# 561 "parser_cocci_menhir.ml" +# 579 "parser_cocci_menhir.ml" ) | TDefault of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 566 "parser_cocci_menhir.ml" +# 584 "parser_cocci_menhir.ml" ) | TDeclarerId of ( -# 59 "parser_cocci_menhir.mly" +# 37 "parser_cocci_menhir.mly" (string * Data.clt) -# 571 "parser_cocci_menhir.ml" +# 589 "parser_cocci_menhir.ml" ) | TDeclarer + | TDeclaration | TDec of ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 577 "parser_cocci_menhir.ml" +# 596 "parser_cocci_menhir.ml" ) + | TCppConcatOp | TContinue of ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 582 "parser_cocci_menhir.ml" +# 602 "parser_cocci_menhir.ml" ) | TContext | TConstant | TComma of ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 589 "parser_cocci_menhir.ml" +# 609 "parser_cocci_menhir.ml" ) | TChar of ( -# 87 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (string * Data.clt) -# 594 "parser_cocci_menhir.ml" +# 614 "parser_cocci_menhir.ml" ) | TCase of ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 599 "parser_cocci_menhir.ml" +# 619 "parser_cocci_menhir.ml" ) | TCPar0 of ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 604 "parser_cocci_menhir.ml" +# 624 "parser_cocci_menhir.ml" ) | TCPar of ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 609 "parser_cocci_menhir.ml" +# 629 "parser_cocci_menhir.ml" ) | TCEllipsis of ( -# 73 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 614 "parser_cocci_menhir.ml" +# 634 "parser_cocci_menhir.ml" ) | TCCro of ( -# 102 "parser_cocci_menhir.mly" +# 81 "parser_cocci_menhir.mly" (Data.clt) -# 619 "parser_cocci_menhir.ml" +# 639 "parser_cocci_menhir.ml" ) | TCBrace of ( -# 101 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 624 "parser_cocci_menhir.ml" +# 644 "parser_cocci_menhir.ml" ) | TBreak of ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 629 "parser_cocci_menhir.ml" +# 649 "parser_cocci_menhir.ml" ) | TBang0 | TBang of ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 635 "parser_cocci_menhir.ml" +# 655 "parser_cocci_menhir.ml" ) | TAssign of ( -# 108 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 640 "parser_cocci_menhir.ml" +# 660 "parser_cocci_menhir.ml" ) | TArobArob | TArob | TAny of ( -# 74 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 647 "parser_cocci_menhir.ml" +# 667 "parser_cocci_menhir.ml" ) | TAndLog of ( -# 90 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Data.clt) -# 652 "parser_cocci_menhir.ml" +# 672 "parser_cocci_menhir.ml" ) | TAnd of ( -# 93 "parser_cocci_menhir.mly" +# 72 "parser_cocci_menhir.mly" (Data.clt) -# 657 "parser_cocci_menhir.ml" +# 677 "parser_cocci_menhir.ml" ) | EOF and _menhir_jeton = token + +# 1 "parser_cocci_menhir.mly" + + +(* Not clear how to allow function declarations to specify a return type +and how to allow both to be specified as static, because they are in +different rules. The rules seem to have to be combined, which would allow +functions to be declared as local variables *) + +(* Not clear how to let a function have a parameter of type void. At the +moment, void is allowed to be the type of a variable, which is wrong, and a +parameter needs both a type and an identifier *) +module Ast0 = Ast0_cocci +module Ast = Ast_cocci +module P = Parse_aux + +# 699 "parser_cocci_menhir.ml" let _eRR = Error @@ -672,284 +709,310 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct fun _tok -> match _tok with | EOF -> - 170 + 183 | TAnd _ -> - 169 + 182 | TAndLog _ -> - 168 + 181 | TAny _ -> - 167 + 180 | TArob -> - 166 + 179 | TArobArob -> - 165 + 178 | TAssign _ -> - 164 + 177 | TBang _ -> - 163 + 176 | TBang0 -> - 162 + 175 | TBreak _ -> - 161 + 174 | TCBrace _ -> - 160 + 173 | TCCro _ -> - 159 + 172 | TCEllipsis _ -> - 158 + 171 | TCPar _ -> - 157 + 170 | TCPar0 _ -> - 156 + 169 | TCase _ -> - 155 + 168 | TChar _ -> - 154 + 167 | TComma _ -> - 153 + 166 | TConstant -> - 152 + 165 | TContext -> - 151 + 164 | TContinue _ -> - 150 + 163 + | TCppConcatOp -> + 162 | TDec _ -> - 149 + 161 + | TDeclaration -> + 160 | TDeclarer -> - 148 + 159 | TDeclarerId _ -> - 147 + 158 | TDefault _ -> - 146 + 157 | TDefine _ -> - 145 + 156 | TDefineParam _ -> - 144 + 155 | TDepends -> - 143 + 154 | TDisable -> - 142 + 153 | TDmOp _ -> - 141 + 152 | TDo _ -> - 140 + 151 | TDot _ -> - 139 + 150 | TDotDot _ -> - 138 + 149 | TEllipsis _ -> - 137 + 148 | TElse _ -> - 136 + 147 | TEq _ -> - 135 + 146 | TEqEq _ -> - 134 + 145 | TError -> - 133 + 144 | TEver -> - 132 + 143 | TExists -> - 131 + 142 | TExpression -> - 130 + 141 | TExtends -> - 129 + 140 + | TField -> + 139 + | TFinalize -> + 138 | TFloat _ -> - 128 + 137 | TFor _ -> - 127 + 136 | TForall -> - 126 + 135 | TFresh -> - 125 + 134 | TFunDecl _ -> - 124 + 133 | TFunction -> - 123 + 132 | TGenerated -> - 122 + 131 | TGoto _ -> - 121 + 130 | TIdExpression -> - 120 + 129 | TIdent _ -> - 119 + 128 | TIdentifier -> - 118 + 127 | TIf _ -> - 117 + 126 | TInc _ -> - 116 + 125 | TIncludeL _ -> - 115 + 124 | TIncludeNL _ -> - 114 + 123 | TInitialiser -> - 113 + 122 + | TInitialize -> + 121 | TInt _ -> - 112 + 120 | TInvalid -> - 111 + 119 | TIso -> - 110 + 118 | TIsoArgExpression -> - 109 + 117 | TIsoDeclaration -> - 108 + 116 | TIsoExpression -> - 107 + 115 | TIsoStatement -> - 106 + 114 | TIsoTestExpression -> - 105 + 113 + | TIsoToTestExpression -> + 112 | TIsoTopLevel -> - 104 + 111 | TIsoType -> - 103 + 110 | TIterator -> - 102 + 109 | TIteratorId _ -> - 101 + 108 | TLineEnd _ -> - 100 + 107 | TLocal -> - 99 + 106 | TLogOp _ -> - 98 + 105 | TMPtVirg -> - 97 + 104 | TMetaConst _ -> - 96 + 103 + | TMetaDecl _ -> + 102 | TMetaDeclarer _ -> - 95 + 101 | TMetaErr _ -> - 94 + 100 | TMetaExp _ -> - 93 + 99 | TMetaExpList _ -> - 92 + 98 + | TMetaField _ -> + 97 | TMetaFunc _ -> - 91 + 96 | TMetaId _ -> - 90 + 95 | TMetaIdExp _ -> - 89 + 94 | TMetaInit _ -> - 88 + 93 | TMetaIterator _ -> - 87 + 92 | TMetaLocalFunc _ -> - 86 + 91 | TMetaLocalIdExp _ -> - 85 + 90 | TMetaParam _ -> - 84 + 89 | TMetaParamList _ -> - 83 + 88 | TMetaPos _ -> - 82 + 87 | TMetaStm _ -> - 81 + 86 | TMetaStmList _ -> - 80 + 85 | TMetaType _ -> - 79 + 84 | TMid0 _ -> - 78 + 83 | TMinus _ -> - 77 + 82 | TMinusFile _ -> - 76 + 81 | TMul _ -> - 75 + 80 | TName -> - 74 + 79 | TNever -> - 73 + 78 | TNotEq _ -> - 72 + 77 | TNothing -> - 71 + 76 | TOBrace _ -> - 70 + 75 | TOCro _ -> - 69 + 74 | TOEllipsis _ -> - 68 + 73 | TOInit _ -> - 67 + 72 | TOPar _ -> - 66 + 71 | TOPar0 _ -> - 65 + 70 | TOn -> - 64 + 69 | TOr _ -> - 63 + 68 | TOrLog _ -> - 62 + 67 | TPArob -> - 61 + 66 | TPCEllipsis _ -> - 60 + 65 | TPOEllipsis _ -> - 59 + 64 | TParameter -> - 58 + 63 | TPathIsoFile _ -> - 57 + 62 | TPlus _ -> - 56 + 61 | TPlus0 -> - 55 + 60 | TPlusFile _ -> - 54 + 59 | TPosAny -> - 53 + 58 | TPosition -> - 52 + 57 | TPragma _ -> - 51 + 56 | TPtVirg _ -> - 50 + 55 | TPtrOp _ -> - 49 + 54 | TPure -> - 48 + 53 | TReturn _ -> + 52 + | TRightIso -> + 51 + | TRuleName _ -> + 50 + | TScript -> + 49 + | TScriptData _ -> + 48 + | TShLOp _ -> 47 - | TReverse -> + | TShROp _ -> 46 - | TRightIso -> + | TSizeof _ -> 45 - | TRuleName _ -> + | TStatement -> 44 - | TScript -> + | TStrict _ -> 43 - | TScriptData _ -> + | TString _ -> 42 - | TShOp _ -> + | TSub _ -> 41 - | TSizeof _ -> + | TSwitch _ -> 40 - | TStatement -> + | TTilde _ -> 39 - | TStrict _ -> + | TTildeEq _ -> 38 - | TString _ -> + | TTildeExclEq _ -> 37 - | TSwitch _ -> + | TType -> 36 - | TTilde _ -> + | TTypeId _ -> 35 - | TType -> + | TTypedef -> 34 - | TTypeId _ -> + | TUnderscore -> 33 - | TTypedef -> - 32 | TUsing -> + 32 + | TVirtual -> 31 | TWhen _ -> 30 @@ -1060,8 +1123,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr () | TContinue _v -> Obj.repr _v + | TCppConcatOp -> + Obj.repr () | TDec _v -> Obj.repr _v + | TDeclaration -> + Obj.repr () | TDeclarer -> Obj.repr () | TDeclarerId _v -> @@ -1102,6 +1169,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr () | TExtends -> Obj.repr () + | TField -> + Obj.repr () + | TFinalize -> + Obj.repr () | TFloat _v -> Obj.repr _v | TFor _v -> @@ -1134,6 +1205,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr _v | TInitialiser -> Obj.repr () + | TInitialize -> + Obj.repr () | TInt _v -> Obj.repr _v | TInvalid -> @@ -1150,6 +1223,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr () | TIsoTestExpression -> Obj.repr () + | TIsoToTestExpression -> + Obj.repr () | TIsoTopLevel -> Obj.repr () | TIsoType -> @@ -1168,6 +1243,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr () | TMetaConst _v -> Obj.repr _v + | TMetaDecl _v -> + Obj.repr _v | TMetaDeclarer _v -> Obj.repr _v | TMetaErr _v -> @@ -1176,6 +1253,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr _v | TMetaExpList _v -> Obj.repr _v + | TMetaField _v -> + Obj.repr _v | TMetaFunc _v -> Obj.repr _v | TMetaId _v -> @@ -1266,8 +1345,6 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr () | TReturn _v -> Obj.repr _v - | TReverse -> - Obj.repr () | TRightIso -> Obj.repr () | TRuleName _v -> @@ -1276,7 +1353,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr () | TScriptData _v -> Obj.repr _v - | TShOp _v -> + | TShLOp _v -> + Obj.repr _v + | TShROp _v -> Obj.repr _v | TSizeof _v -> Obj.repr _v @@ -1286,18 +1365,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr _v | TString _v -> Obj.repr _v + | TSub _v -> + Obj.repr _v | TSwitch _v -> Obj.repr _v | TTilde _v -> Obj.repr _v + | TTildeEq _v -> + Obj.repr _v + | TTildeExclEq _v -> + Obj.repr _v | TType -> Obj.repr () | TTypeId _v -> Obj.repr _v | TTypedef -> Obj.repr () + | TUnderscore -> + Obj.repr () | TUsing -> Obj.repr () + | TVirtual -> + Obj.repr () | TWhen _v -> Obj.repr _v | TWhenFalse _v -> @@ -1360,19 +1449,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr _v let default_reduction = - (16, "\000\000\000\000\0014\0015\000\000\0017\0016\000\001\000\000\001p\000\000\000\000\000\136\000\000\000\000\001\236\000\142\000\000\001\024\000\000\001#\001\027\001\021\001-\002\219\002\218\000\000\001\025\000\000\001$\001\028\001\022\001.\001\026\000\000\001%\001\029\001\031\000\000\0011\002\133\0010\001&\001\030\000\135\001\023\001,\000\000\000\000\001+\000\000\000\000\000\000\000\000\000\000\001b\000\240\002\209\000\000\000\000\000\000\000\000\000\000\002\214\000\000\001(\000\000\002\216\000\000\000\000\000\000\003\022\002O\000\000\003\020\000\000\002i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\019\003\021\002U\001\012\002T\001\n\001\011\002S\002R\002Q\002M\000\000\000\000\002N\000\213\000\000\002P\000\000\003\018\000\000\002\249\001\t\0020\000\000\000\000\0023\000\000\000\015\000\000\000\000\000\000\000\000\000\214\002L\002X\000[\000\021\000]\000\000\000\000\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\002\017\000R\000\223\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\\\000T\000\000\000S\001\020\000\000\000\000\000\140\000\224\000\000\0026\000\225\000\014\000\016\000\000\000\000\000\143\000\000\000\141\000\000\000\000\000\228\000\000\000\000\0021\0024\000\000\0022\0025\002\250\002\248\000\000\002V\002\247\000\000\002p\000\000\000\000\002o\002n\002m\002l\002k\002g\000\000\000\000\002h\000\000\002j\000\000\000\000\003\007\002>\000\000\000\000\002A\000\000\000\000\002D\000\000\000\000\002?\002B\000\000\002@\002C\002r\002f\003\008\003\006\003\005\000g\000h\000\000\000\000\000W\000\000\000V\000\235\000\000\001\228\000\000\000\000\000\000\000\000\000\000\000\218\001\234\000\000\000\000\001\136\000U\0001\000\211\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000\0003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002W\000\000\000\144\000\000\000\000\001\212\000\000\001~\001\193\000\000\000\000\001\211\000\000\001|\001\192\000\000\000\000\000d\000\000\002q\000\000\000\000\003\n\003\t\000\000\001\229\000\000\000\000\002\252\002\251\000\000\000Q\000\150\000\000\001d\000\000\002\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\248\000\154\000\000\000\000\000n\000o\001\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\165\001\217\000\000\000\151\000\160\000\000\001\219\000\000\000\000\000\000\000\000\000\152\000\166\000\000\001j\000\000\000\000\002\211\000\000\000\000\000\138\000\000\000\000\002\210\000\000\000\000\000\000\002\213\002\217\000\000\000\000\000\000\001)\000\000\000\222\000\000\001*\000\000\000\000\001M\000\000\001L\000\000\001Z\000\000\001r\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\147\000\000\000\000\000\000\000\000\000\149\000\000\000\145\000\000\002\245\000\000\000\194\002\244\000\000\000\000\000\148\000\000\000\146\002\205\002\207\002\208\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002v\000\000\000\000\000\000\000\000\002}\000\000\000\000\002|\002{\002z\002y\002x\001I\002t\000\000\000\000\002u\000\000\002w\000\000\000\000\003\014\002E\000\000\000\000\002H\000\000\000\000\002K\000\000\000\000\002F\002I\000\000\002G\002J\002\127\002s\003\015\003\013\003\012\000i\000j\000\000\000\000\000Z\000\000\000Y\000\000\002~\000\000\001\194\000X\000?\000\234\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\003\016\000\000\002\196\000\000\002\195\000\000\000\000\000\000\000\000\003\029\000\000\000\000\000\000\003\030\000\000\000\018\000\000\000\000\000\000\003\025\000\000\001\138\000\000\000\000\000\000\000\167\002\186\001`\000\000\000\156\001_\0019\0018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\215\000\216\000\200\000\000\001n\000\000\000\000\000\199\000\195\000\000\000\202\000\196\000\201\000\000\002\198\000\000\002\197\002\183\000\000\000\000\000\000\000\000\000\000\002\192\000\000\000\000\000\000\000\000\000\000\002\193\002\185\000\000\002\199\000\000\002\187\000\000\000\171\000\000\002\202\000\155\000\000\001;\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000w\000\000\000\000\000\000\002\\\000\000\000\000\000\000\002d\000\000\000\000\002c\000\000\003\003\002b\002a\002`\002_\002^\002Z\000\000\000\000\002[\000\000\002]\000\000\000\000\003\000\0027\000\000\000\000\002:\000\000\000\000\002=\000\000\000\000\0028\002;\000\000\0029\002<\002e\002Y\003\001\002\255\002\254\003\002\000\000\000\000\000\000\000e\000f\000\000\000\000\000\000\000\000\000\210\000\209\000\000\000\000\000\000\000\000\001?\000\000\000\220\001<\000\000\000\208\001B\000\000\000\000\001C\000\000\000\000\001D\000\000\001l\000#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\001A\000\000\000\000\001G\000\000\000\000\000\000\000\000\000\000\000\000\000t\000q\000r\001H\001>\000\000\001=\000\000\000\187\000\000\002\164\000\000\000\000\000\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\015\000\000\000\000\000\000\000\180\000\000\000\177\000\000\000\000\000\000\000\000\000\000\000\188\000\000\000\184\000\000\000\000\002\223\000\000\002\230\000\173\000\000\000\000\000\000\000\000\000\185\000\000\000\181\000\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\192\000\000\002\224\000\172\000\000\002\225\000\000\002\232\000\000\000\000\000\000\000\000\000\191\000\000\000\175\000\000\000\000\000\000\000\000\001\014\000\000\000\000\000\000\000\179\000\000\000\176\000\000\000\000\000\000\000\000\000\000\000\186\000\000\000\182\000\169\000\168\000\000\002\233\002\234\000\000\002\235\000\000\002\236\000\000\001:\002\190\000\000\000\000\001\216\000\000\001\134\001\198\000\000\002\184\000\000\000\000\000\000\002\189\000\000\000\000\000\000\001\002\000\000\000\252\000\000\000\253\000\000\001\007\000\251\001\006\000\000\002\201\001\008\000\000\000\174\000\000\000\000\000\000\000\000\001\004\000\255\001\213\000\000\001\000\000\000\001\001\000\000\001\128\001\195\000\000\000\000\000\000\001\224\000\000\001\222\000\000\000\000\001\226\001\220\000\000\001\227\001\221\000\000\002\203\001\230\000\000\000\170\000\000\000\000\001\214\000\000\001\130\001\196\000\000\003\026\000\000\003\023\000\000\003\024\000\019\000\020\000\000\000\000\002\148\000\000\002\147\000\000\000\000\002\150\000\000\002\149\000\000\000\000\000\000\002\001\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\008\000\000\000\000\002\011\000\000\000\000\001\251\000\000\000\000\001\254\000\000\000\000\000\000\002\002\000\000\000\000\002\006\000\000\000\000\001\215\000\000\000\000\001\255\000\000\000\000\002\003\002\145\001\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\007\000\000\000\000\002\n\000\000\002\146\000\000\000\000\000\000\000\000\002\t\000\000\001\249\000\000\001\250\000\000\000\000\001\253\000\000\000\000\000\000\002\000\000\000\000\000\002\004\000\000\001\132\001\197\000\000\002\151\000\000\000\000\000\000\003\027\000\017\000u\000\000\003\028\000\000\000\000\002\160\000\000\000\000\002\204\000a\000\000\000\000\000\000\000b\000\000\002\194\000\000\001f\002\191\000\000\000\000\001S\000\000\001R\000\000\001[\000\000\001x\000\000\000\000\000\000\001Q\000\000\001P\000\000\001X\000\000\001v\000\000\000\000\000\000\001U\000\000\001T\000\000\001Y\000\000\001z\000\000\000\000\000\000\001V\000\000\000\000\000\000\000\000\001O\000\000\001N\000\000\001\\\000\000\001t\000\000\000\000\000\000\001W\000\002\000\000\000N\000O\000M\001]\000\003\000\000\000\000\002\130\000\000\002\015\000\000\002\136\002\138\000\000\000\000\001\161\002\139\002\137\000\128\000\000\000\000\002\182\000\000\000\000\000\000\000z\000\000\000\000\002\170\000\000\001\244\001\243\001\156\002\143\002\134\002\135\000\000\001\189\000\000\002\131\000\000\000\000\000|\000\000\000\000\002\174\000\000\001\171\000\000\000\000\001\167\000\000\000\000\000\000\001\170\000\000\001\169\000\000\000\000\000\000\000\000\000\000\000\000\001\190\000\000\001\165\000\000\001\164\000\000\000v\000\000\000\000\002\162\000\000\000\000\001\160\000\000\000\000\000~\000\000\000\000\002\178\000\000\000\000\000\000\000{\000\000\000\000\002\172\000\000\001\240\001\239\001\152\002\141\000\000\001\176\000\000\000\000\000\000\001\173\000\000\001\178\000\000\000\000\001\168\000\000\000\000\001\174\000\000\000\000\001\175\000\000\000\000\000\000\001\163\000\000\000\000\000\000\000\000\000\000\000\000\001\191\000\000\001\166\000}\000\000\000\000\002\176\000\000\000\000\000\000\0013\000y\0012\000\000\000\000\002\168\000\000\001\238\001\237\001\150\002\140\000\000\000\127\000\000\000\000\002\180\000\000\000\000\000\000\000\000\001\242\001\241\001\154\002\142\000\000\001\183\000\000\001\187\000\000\000\000\001\179\000\000\000\000\000\000\001\172\000\000\001\177\000\000\000\000\000\000\000\000\000\000\000\000\001\186\001\159\000\000\001\185\000\000\000\000\000\000\000\000\001\182\000\000\000\000\001\181\000\000\001\180\000\000\000\000\000\000\000\000\001\184\000\000\001\188\000\000\000\000\001^\000\004\000\000\001\162\000\005\000\000\000\000\000\238\000\006\000\000\001\202\001\203\001\201\000\000\000\000\000\000\000\000\000\000\000\000\000x\000\000\000\000\002\166\000\000\000\229\001\200\001\144\002\220\001\146\000\000\000\007\000\000\001\205\001\206\001\204\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\242\000\000\000\000\000\000\000\000\000\247\000\249\000\248\000\243\000\245\000\244\000\000\000\000\000\000\000\000\000\000\002\226\002\239\000\000\002\227\000\000\002\228\000\000\000\000\002\221\000\000\000\000\000\000\000\000\002\238\000\000\000\000\002\237\001\210\001\209\000\000\000\000\001\148\000\000\001\199\001\207\000\000\000\000\000\000\000\000\001\246\000\000\000\000\000l\000m\000\000\000\000\000\000\001\245\000\000\000\163\000\000\001h\000\000\000\000\000\162\000\158\000\000\000\000\000\000\000\000\001\013\000\000\000\000\002\242\000\000\002\243\000\000\000\000\001\233\001\231\000\000\001\232\000\008\000\000\000\t\000\000\002 \002!\002\031\000\000\000\000\002\030\000\000\000\n\000\000\002#\002$\002\"\000\000\002&\000\000\000\000\000\000\002\024\000\000\000\000\002\026\000\000\002\020\000\000\002\022\000\000\002\027\000\000\002\028\002\021\002\019\002'\001\158\000\000\002\029\000\000\002)\000\000\002(\000\000\002*\000\000\002\144\000\011\000\000\000\000\000\000\000\000\000\000\000\000\002+\000\000\000\000\002.\000\000\002-\000\000\002,\000\203\000\000\000\000\000\000\000\000\000\204\002/\000\000\000\000\002\155\000\000\000\000\000\237\000\000\000\000\000\000\000\000\000\000\002\158\000k\000\000\000\000\000\212\000\000\000\000\000\232\000\231\000\230\000\000\001K\000\000\002\154\001\142\001\140\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\153\000\000\000\000\000\000\000\000\000\000\000\000\002\152\000\000\000\013\000\000\000\000\000\000\000\000\000\000\002\156") + (16, "\000\000\000\000\002\171\000\128\000\000\000\000\002\250\001Q\000\000\001O\001P\001N\000\000\001S\001R\000\001\000\000\001\145\000\000\000\000\000\144\000\000\000\000\001\129\000\169\000\000\000\000\000\156\000\000\000\000\000\161\000\160\000\000\000\157\000\000\000\155\000\000\000\000\000\000\000\159\000\000\000\158\0032\0031\000\000\000\000\000\149\000\000\000\000\000\154\000\153\000\000\000\150\000\000\000\148\000\000\000\000\000\000\000\152\000\000\000\151\000\000\000\163\000\000\000\000\000\168\000\167\000\000\000\164\000\000\000\171\000\000\001K\001J\000\000\000\172\000\000\000\170\000\143\000\000\000\162\000\000\000\177\000\000\000\000\000\000\000\166\000\000\000\000\000\000\003'\003(\000\000\000\000\000\000\000\000\000\000\003-\000\000\000\000\000\174\000\000\003/\000\000\000\000\000\000\003\172\002u\000\000\003\170\000\000\002\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\169\003\171\002{\001F\002z\001D\001E\002y\002x\002w\002s\000\000\000\000\002t\001\019\000\000\002v\000\000\003\168\000\000\000g\001C\002V\000\000\000\000\002Y\000\000\000\015\000\000\000\000\000\000\000\000\001\020\002r\002~\000_\000\021\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\138\0021\000V\001\029\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000X\000\000\000W\001\030\000\000\002\\\001\031\000\014\000\016\000\000\000\000\000\199\000\000\000\000\000\186\000\000\000\000\000\191\000\190\000\000\000\187\000\000\000\185\000\000\000\000\000\000\000\189\000\000\000\188\000\000\000\000\000\179\000\000\000\000\000\184\000\183\000\000\000\180\000\000\000\178\000\000\000\000\000\000\000\182\000\000\000\181\000\000\000\193\000\000\000\000\000\198\000\197\000\000\000\194\000\000\000\201\000\000\000\000\000\202\000\000\000\200\000\000\000\192\000\000\000\207\000\000\000\000\000\000\000\196\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\146\000\000\000\000\000\000\000\000\000\000\000\000\002\023\000\215\000\000\000\000\000r\000s\002\022\001\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\226\000\221\000\000\001\248\000\000\000\000\000\000\000\000\000\214\000\212\000\227\000\000\001\137\000\000\000\000\003*\000\000\003)\000\000\000\000\000\000\000\000\000\000\000\204\000\000\000\000\000\000\000\000\000\205\000\203\000\000\000\000\003,\0030\000\195\000\000\000\000\001\"\000\000\000\000\002W\002Z\000\000\002X\002[\003\143\003\144\003\142\000\000\002|\003\141\000\000\002\150\000\000\000\000\002\149\002\148\002\147\002\146\002\145\002\141\000\000\000\000\002\142\000\000\002\144\000\000\000\000\000k\002d\000\000\000\000\002g\000\000\000\000\002j\000\000\000\000\002e\002h\000\000\002f\002i\002\152\002\140\003\157\003\158\003\156\003\155\000l\000\000\000\000\000[\000\000\000Z\001'\000\000\002\001\000\000\000\000\000\000\000\000\000\000\001\024\002\007\000\000\000\000\001\169\000Y\0003\001\017\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0004\000\000\0005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002}\000\000\000\210\000\000\000\000\001\242\000\000\001\159\001\223\000\000\000\000\001\241\000\000\001\157\001\222\000\000\000\000\000h\000\000\002\151\000\000\000\000\003\160\003\159\000\000\002\002\000\000\000\000\003\146\003\145\000\000\000U\000\211\000\000\001\131\000\000\003+\000\000\000\000\000\000\000\000\000\175\000\173\000\000\001\028\000\000\000\000\000\176\000\165\000\000\000\000\001k\000\000\001j\000\000\001y\000\000\001\147\000\000\000\000\000\000\003b\000\000\000\000\003U\000\000\000\000\003Z\003Y\000\000\003V\000\000\003T\000\000\000\000\000\000\003X\000\000\003W\000\000\000\000\003N\000\000\000\000\003S\003R\000\000\003O\000\000\003M\000\000\000\000\000\000\003Q\000\000\003P\000\000\003\\\000\000\000\000\003a\003`\000\000\003]\000\000\003d\000\000\000\000\003e\000\000\003c\000\000\003[\000\000\003j\000\000\000\000\000\000\003_\000\000\000\000\003\137\000\000\000\000\000\000\000\000\003i\003^\000\000\003\139\000\000\000\000\003\n\003\138\000\136\000\000\001\000\000\000\000\000\000\000\000\000\003g\000\000\000\000\000\000\000\000\003h\003f\000\000\000\000\003\128\000\000\000\000\003s\000\000\000\000\003x\003w\000\000\003t\000\000\003r\000\000\000\000\000\000\003v\000\000\003u\000\000\000\000\003l\000\000\000\000\003q\003p\000\000\003m\000\000\003k\000\000\000\000\000\000\003o\000\000\003n\000\000\003z\000\000\000\000\003\127\003~\000\000\003{\000\000\003\130\000\000\000\000\003\131\000\000\003\129\000\000\003y\000\000\003\136\000\000\000\000\000\000\003}\000\000\000\000\000\000\000\000\003\135\003|\000\000\000\000\000\000\000\000\003\133\000\000\000\000\000\000\000\000\003\134\003\132\003#\003%\003&\003$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\237\000\216\000\000\000\000\000}\000\000\000\000\000\000\002\130\000\000\000\000\000\000\002\138\000\000\000\000\002\137\000\000\003\153\002\136\002\135\002\134\002\133\002\132\001g\002\128\000\000\000\000\002\129\000\000\002\131\000\000\000\000\000\000\000\000\000\000\000i\002]\000\000\000\000\002`\000\000\000\000\002c\000\000\000\000\002^\002a\000\000\002_\002b\002\139\002\127\000j\003\150\003\151\003\149\003\148\003\152\000\000\000\000\000\000\000\000\001\016\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\\\000\000\001\026\001Y\000\000\001\014\000\000\000\000\000\000\001`\000\000\000\000\001a\000\000\001\141\000$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\000\000\000&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\001d\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000z\000u\000w\000v\001f\001_\001b\000\000\001^\001[\000\000\001Z\000\000\000\249\000\000\002\244\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\252\000\000\000\000\000\255\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\000\000\000\000\000\000\242\000\000\000\239\000\000\000\000\000\000\000\000\000\000\000\250\000\000\000\246\000\000\000\000\000\000\000\000\000\247\000\000\000\243\000\000\000\000\000\000\002\156\000\000\000\000\000\000\000\000\002\163\000\000\000\000\002\162\002\161\002\160\002\159\002\158\002\154\000\000\000\000\002\155\000\000\002\157\000\000\000\000\000m\002k\000\000\000\000\002n\000\000\000\000\002q\000\000\000\000\002l\002o\000\000\002m\002p\002\165\002\153\003\164\003\165\003\163\003\162\000n\000\000\000\000\000^\000\000\000]\000\000\002\164\000\000\001\224\000\\\000B\001&\000d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\167\003\166\000\000\003\026\000\000\003\025\000\000\000\000\000\000\000\000\003\179\000\000\000\000\000\000\003\180\000\000\000\018\000\000\000\000\000\000\003\175\000\000\001\171\000\000\000\000\000\000\000\228\003\016\001\127\001~\001U\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\022\001\006\000\000\001\143\000\000\000\000\001\005\001\001\000\000\001\b\001\002\001\007\000\000\003\028\000\000\003\027\003\r\000\000\000\000\000\000\000\000\000\000\003\022\000\000\000\000\000\000\000\000\003\023\003\015\000\000\003\029\000\000\003\017\000\000\000\232\001V\000\000\003 \000\000\001X\000\000\000\000\0038\000\000\003?\000\234\000\000\000\240\000\000\0039\000\233\000\000\003:\000\000\003A\000\000\000\000\000\000\000\000\000\253\000\000\000\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\251\000\000\000\000\000\254\000\000\000\000\000\000\000\000\001H\000\000\000\000\000\000\000\241\000\000\000\238\000\000\000\000\000\000\000\000\000\000\000\248\000\000\000\244\000\230\000\229\000\000\003B\003C\000\000\003D\000\000\003E\000\000\001W\003\020\000\000\000\000\001\246\000\000\001\167\001\228\000\000\003\014\000\000\000\000\000\000\003\019\000\000\000\000\000\000\001<\000\000\0016\000\000\0017\000\000\001A\0015\001@\000\000\003\031\001B\000\000\000\235\000\000\000\000\000\000\000\000\001>\0019\001\243\000\000\001:\000\000\001;\000\000\001\161\001\225\000\000\000\000\000\000\001\253\000\000\001\251\000\000\000\000\001\255\001\249\000\000\002\000\001\250\000\000\003!\002\003\000\000\000\231\000\000\000\000\001\244\000\000\001\163\001\226\000\000\003\176\000\000\003\173\000\000\003\174\000\019\000\020\000\000\000\000\002\216\000\000\002\215\000\000\002\025\000\000\002\218\000\000\002\217\000\000\000\000\000\000\002!\000\000\000\000\002%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002(\000\000\000\000\002+\000\000\002\027\000\000\000\000\002\030\000\000\000\000\000\000\002\"\000\000\000\000\002&\000\000\000\000\001\245\000\000\000\000\002\031\000\000\000\000\002#\002\213\002\028\000\000\002\214\000\000\000\000\000\000\000\000\002)\000\000\002\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002'\000\000\000\000\002*\000\000\002\026\000\000\000\000\002\029\000\000\000\000\000\000\002 \000\000\000\000\002$\000\000\001\165\001\227\000\000\002\219\000\000\000\000\000\000\003\177\000\017\000{\000\000\003\178\000\000\000\000\002\240\000\000\000\000\003\"\000e\000\000\000\000\000\000\000f\000\000\003\024\000\000\001\133\000\000\001\139\003\021\000\000\000\000\001q\000\000\001p\000\000\001z\000\000\001\153\000\000\000\000\000\000\001o\000\000\001n\000\000\001w\000\000\001\151\000\000\000\000\000\000\001v\000\000\000\000\000\000\001s\000\000\001r\000\000\001x\000\000\001\155\000\000\000\000\000\000\001t\000\000\000\000\000\000\001m\000\000\001l\000\000\001{\000\000\001\149\000\000\000\000\000\000\001u\000\002\000\000\000R\000S\000\000\000\000\002\181\002\185\002\189\002\177\002\174\000\000\000\000\002\186\002\193\002\178\002\192\002\176\002\191\002\180\002\172\002\179\002\188\002\175\002\182\002\173\002\184\002\190\002\187\002\183\001\189\001\188\000\134\000\000\000\000\003\006\000\000\000\000\002\234\000\000\000\000\002\236\002\235\002\203\000\000\000\000\003\012\002\195\002\194\002\196\000\000\001\203\000Q\001|\000\003\000\000\000\000\002\168\000\000\002/\000\000\000\135\000\000\000\000\003\b\000\000\000\000\000\000\000\127\000\000\000\000\002\248\000\000\002\019\002\018\001\183\002\204\000\000\001\219\000\000\002\169\000\000\000\000\000\129\000\000\000\000\002\252\000\000\001\200\000\000\000\000\001\194\000\000\000\000\000\000\001\199\000\000\001\196\000\000\000\000\000\000\001\173\001\172\000\000\000\000\000\000\001\220\000\000\001\192\000\000\001\191\000\000\000|\000\000\000\000\002\242\000\000\000\000\001\187\000\000\000\000\000\132\000\000\000\000\003\002\000\000\000\000\002\211\000\000\002\210\000\000\000\000\000\000\002\017\002\016\002\208\0027\002\199\002\209\000\000\001\206\000\000\000\000\000\000\001\202\000\000\001\208\000\000\000\000\001\195\000\000\000\000\000\000\002\201\000\133\000\000\000\000\003\004\000\000\002\200\000\000\001\204\000\000\000\000\001\205\000\000\000\000\001\198\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\001\193\000\000\002\t\000\130\000\000\000\000\002\254\000\000\000\000\000\000\000\000\0034\0033\000\000\000\000\001M\000~\001L\000\000\000\000\002\246\000\000\002\011\002\n\002\r\002\197\0023\002\012\000\000\000\131\000\000\000\000\003\000\000\000\000\000\000\000\000\000\002\015\002\014\002\207\002\205\0025\002\198\002\206\000\000\001\213\000\000\001\217\000\000\000\000\001\209\000\000\000\000\000\000\001\201\000\000\001\207\000\000\000\000\001\197\000\000\000\000\000\000\000\000\001\186\000\000\000\000\001\216\000\000\001\215\000\000\000\000\000\000\000\000\001\212\000\000\000\000\001\211\000\000\001\210\000\000\000\000\000\000\000\000\001\214\000\000\001\218\000\000\000\000\001}\000\004\000\000\001\190\000\005\000\000\000\000\001*\000\006\000\000\001\232\001\233\001\231\000\000\001\230\0035\001\179\000\000\000\007\000\000\001\235\001\236\001\234\000\000\000\000\000\000\000\000\001,\000\000\000\000\000\000\000\000\0011\0013\0012\001-\001/\001.\000\000\000\000\000\000\000\000\000\000\003;\003H\000\000\003<\000\000\003=\000\000\000\000\0036\000\000\000\000\000\000\000\000\003G\000\000\000\000\003F\001\240\001\239\000\000\000\000\001\181\001\229\001\237\000\000\000\000\000\000\000\000\002\021\000\000\000\000\000p\000q\002\020\000\000\000\000\000\000\000\224\000\000\001\135\000\000\000\000\000\223\000\219\000\000\000\000\000\000\000\000\001G\000\000\003K\000\000\003L\000\000\000\000\002\006\002\004\000\000\002\005\000\b\000\000\000\t\000\000\002F\002G\002E\000\000\002D\000\000\000\n\000\000\002I\002J\002H\000\000\002L\000\000\000\000\000\000\002>\000\000\000\000\002@\000\000\002:\000\000\002<\000\000\002A\000\000\002B\000\000\002;\0029\002M\001\185\002C\000\000\002O\000\000\002N\000\000\002P\000\000\002\212\000\011\000\000\000\000\000\000\000\000\000\000\000\000\002Q\000\000\000\000\002T\000\000\002S\000\000\002R\001\t\000\000\000\000\000\000\000\000\001\n\002U\000\000\000\000\000\000\002\224\000\000\002\223\000\000\000\000\000\000\000\000\002\225\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\002\238\000o\000\000\000\000\001\018\000\000\001$\001#\000\000\001i\000\000\002\222\001\177\001\175\000\000\000\000\000\000\000\000\002\226\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\233\000\000\000\000\002\232\000\000\002\229\000\000\000\000\000\000\000\000\000\000\002\230\000\000\000\000\000\000\002\231\000\r\000\000\002\227\000\000\002\228") let error = - (171, "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\128\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\240\000\000\000\000\000\000\000=j\188\000 \004\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\008\003\008\000\001\012\192\140\002\000\128@\001\000\000\019!\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\209\192\004\001\132\000\004\134`F\001\000@!\000\128\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157C\000\016\006\016\000\018\025\129\024\004\001\000\132\002\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\2508\000\1280\128\000\144\204\008\192 \008\004 \016\000\0012\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\168`\002\000\194\000\002C0#\000\128 \016\128@\000\004\200b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\234\024\000\1280\128\000\144\204\008\192 \008\004 \016\000\0012\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001\000 \000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\149C\000\016\006\016\000\019\025\129\024\004\001\000\132\002\000\000&C\023\173W\128\004\000\128\000\004\016\016\000\000\000\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\008\000\008\004\128\140\002\000\000B\001\000\000\019\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\t\000 \000\001\004\004\000\000\000\000\004\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\016\016\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\002\000\000\000\000\000\000\030\181^\000\016\002\000\000\016@@\000\000\000\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001\000 \000\001\004\004\000\000\000\000\004\000\001\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000@\000\008\000\000\000\000\000\000\000\002\000\000\136\000\000\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008D\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003;@\000D\128@\000\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\012\237\000\001\018\001\000\000\008@ \128\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\002\000!\000\130z\213x\000T\136\000\144h\021\006v\128\000\137\000\128@\004 \016OZ\175\000\n\145\000\018\013\002\160\206\208\000\017 \016\008\000\132\002\008\000\000\000\000R\000\002A\160P\025\218\000\002$\002\000\000\016\128A=j\188\000*D\000H4\n\131;@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\002\000!\000\130\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003;@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\012\237\000\001\018\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\"0M\150K\000\000\020\001\004\000\003\186\002'\135p\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\021\"\000$\026\005A\159\160\000\"@ \016\001\t\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000@ \131\000\150\000\000(\000\000\000\007d\000M\014\224\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\008\000\132\002\008\000\000\004\128\001\016\130l\"X\000\000\160\008\000\000\029\144\001<;\128\000\000\000\n@\000H4\n\003;@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\001\016\130l\"X\000\000\160\008\000\000\025\144\001<\027\128\000\000\000\n@\000H4\n\003;@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\136A6\017,\000\000P\004\000\000\012\200\000\158\013\192\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\t\000\002!\004\216D\176\000\001@\016\000\0003 \002x7\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128@\004 \016@\000\000$\000\008\132\019a\018\192\000\005\000@\000\000\204\128\t\224\220\000\000\000\000R\000\002A\160P\025\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@gh\000\008\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\t\000\002!\004\216D\176\000\001@\016\000\0003 \002x7\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128@\004 \016@\000\000$\000\008\132\019a\018\192\000\005\000@\000\000\204\128\t\224\220\000\000\000\000R\000\002A\160P\025\218\000\002$\002\001\000\016\128A\000\000\000\144\000\"\016M\132K\000\000\020\001\000\000\0032\000'\131p\000\000\000\001H\000\t\006\129@gh\000\008\144\008\004\000B\001\004\000\000\002@\000\136A6\017,\000\000P\004\000\000\012\200\000\158\013\192\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\t\000\002!\004\216D\176\000\001@\016\000\0003 \002x7\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128`\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000R\000\002A\160P\025\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128@\004 \016@\000\000$\000\008\132\019a\018\192\000\005\000@\000\000\204\128\t\224\220\000\000\000\000R\000\002A\160P\025\218\000\002$\002\001\000\016\128A\000\000\000\144\000\"\016M\132K\000\000\020\001\000\000\0032\000'\131p\000\000\000\001H\000\t\006\129@gh\000\008\144\008\004\000B\001\004\000\000\002@\000\136A6\017,\000\000P\004\000\000\012\200\000\158\013\192\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\192\000\000C \000\000\000 \016\000@\000\004\200\002\002U\012\000@\024@\000Hf\004`\016\004\002\016\008\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\170\208\000\128\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000 \012 \000\0042\0020\008\002\001\000\004\000\000L\134 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000=j\188\000*D\000H4\n\131?@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\012\237\000\001\018\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\001H\000\t\006\129@gh\000\008\144\008\000\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003;@\000D\128@\000\002\016\008 \000\000\000\001H\000\t\006\129@gh\000\008\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\005\001\157\160\000\"@ \000\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128\000\004 \016@\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\000\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\004D\008\178I@\000\002\000 \128\0005@D0\142\000\000\000\000\000\000\000\000\000\000\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\164@\004\131@\1683\244\000\004H\004\002\000! \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\160P\025\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000D\000\139\000\148\000\000 \002\000\000\003D\000C\008\224\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003;@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000@\000\002\000\000\000\000\000B\144\000\018\013\002\128\206\208\000\017 \016\000\000\132\002\008\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003;@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\000\000!\000\130\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\017\000\"\192%\000\000\008\000\128\000\000\145\000\016\1928\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\000\000!\000\130\000\000\001 \000D\000\139\000\148\000\000 \002\000\000\002D\000C\000\224\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\000\000\132\002\008\000\000\004\128\001\016\002,\002P\000\000\128\008\000\000\t\016\001\012\003\128\000\000\000\n@\000H4\n\003;@\000D\128@\000\002\016\008 \000\000\018\000\004@\008\176\t@\000\002\000 \000\000$@\0040\014\000\000\000\000)\000\001 \208(\012\237\000\001\018\001\000\000\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\000\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\000\000\132\002\008\000\000\004\128\001\016\002,\002P\000\000\128\008\000\000\t\016\001\012\003\128\000\000\000\n@\000H4\n\003;@\000D\128@\000\002\016\008 \000\000\018\000\004@\008\176\t@\000\002\000 \000\000$@\0040\014\000\000\000\000)\000\001 \208(\012\237\000\001\018\001\000\000\008@ \128\000\000H\000\017\000\"\192%\000\000\008\000\128\000\000\145\000\016\1928\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\000\000!\000\130\000\000\001 \000D\000\139\000\148\000\000 \002\000\000\002D\000C\000\224\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\000\000\132\002\008\000\000\004\128\001\016\002,\002P\000\000\128\008\000\000\t\016\001\012\003\128\000\000\000\n@\000H4\n\003;@\000D\128@0\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000)\000\001 \208(\012\237\000\001\018\001\000\000\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\000\000!\000\130\000\000\001 \000D\000\139\000\148\000\000 \002\000\000\002D\000C\000\224\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\000\000\132\002\008\000\000\004\128\001\016\002,\002P\000\000\128\008\000\000\t\016\001\012\003\128\000\000\000\n@\000H4\n\003;@\000D\128@\000\002\016\008 \000\000\018\000\004@\008\176\t@\000\002\000 \000\000$@\0040\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000R\000\002A\160P\025\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000@\000z\213x\000@\008\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001R \002A\160T\025\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000T\136\000\144h\021\006v\128\000\137\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000\000\008\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\145C\000\000\000\016\000\016\t\001\024\004\000\000\132\002\000\000&\003\016\018(`\000\000\002\000\002\000 #\000\128\000\016\128@\000\004\192b\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001\000 \000\001\000\004`\000\000\000\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\016\008\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\003\214\171\192\002\000@\000\002\000\008\192\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\002\000\000\000\000\008\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\000@\000\002\000\008\192\000\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\015Z\175\000\008\001\000\000\008\000#\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000=j\188\000 \004\000\000 \000\140\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\016\016\000\000\000\000\016\000\000\000\000\008\000\245\170\240\000\128\016\000\000\130\002\000\000\000\000\002\000\000\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235U\160\001\000 \000\000\000\004\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tT0\001\000a\000\0011\152\017\128@\016\008@ \000\002d1z\213x\000@\008\000\000A\001\000\000\000\000\001\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\016\000\000\000\000\000\000\001z\213x\000@\008\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001\000 \000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\\\137\000\128c\021\199w\132\001\189A\128\008\214 P@$P\192\000\000\000\000\004\002\000F\000\000\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000=j\188\000 \004\000\000 \000\140\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\000@\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001P \000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000*\004\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\181Z\000\016\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000@r\004\002\001\136Q\029\218\016\006\245\006\000#\024\129A\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@gh\000\008\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\015\254\191\130\011\145 \018\013B\184\238\240\1287\1680\t\030\198\026\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000@0\n\003;@\000\196\128@\000\002\016\008 \000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\245\170\240\000\169\016\001 \208*\012\237\000\001\018\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\002\144\000\016\012\002\128\206\208\0001 \016\000\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\016\012\002\128\206\208\0001 \016\000\000\132\002\008\000\000\000\000R\000\002A\160P\025\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\000\000\164\000\004\003\000\1603\180\000\012H\004\000\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\001\017\130l\178X\000\000\160\008 \000\029P\016(;\128\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\169\016\001 \208*\012\253\000\001\018\001\000\128\008H \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\017\008&\194%\128\000\n\000\128\000\001\209\000\002\131\184\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\"\016M\132K\000\000\020\001\000\000\003\"\000\005\003p\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\002@\000\136A6\017,\000\000P\004\000\000\012\136\000\020\013\192\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\t\000\002!\004\216D\176\000\001@\016\000\0002 \000P7\000\000\000\000\020\128\000\128`\020\006v\128\001\137\000\128\000\004 \016@\000\000$\000\008\132\019a\018\192\000\005\000@\000\000\200\128\001@\220\000\000\000\000R\000\002\001\128P\025\218\000\006$\002\000\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\t\000\002!\004\216D\176\000\001@\016\000\0002 \000P7\000\000\000\000\020\128\000\128`\020\006v\128\001\137\000\128\000\004 \016@\000\000$\000\008\132\019a\018\192\000\005\000@\000\000\200\128\001@\220\000\000\000\000R\000\002\001\128P\025\218\000\006$\002\000\000\016\128A\000\000\000\144\000\"\016M\132K\000\000\020\001\000\000\003\"\000\005\003p\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\002@\000\136A6\017,\000\000P\004\000\000\012\136\000\020\013\192\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\t\000\002!\004\216D\176\000\001@\016\000\0002 \000P7\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128`\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000R\000\002\001\128P\025\218\000\006$\002\000\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\002@\000\136A6\017,\000\000P\004\000\000\012\136\000\020\013\192\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\t\000\002!\004\216D\176\000\001@\016\000\0002 \000P7\000\000\000\000\020\128\000\128`\020\006v\128\001\137\000\128\000\004 \016@\000\000$\000\008\132\019a\018\192\000\005\000@\000\000\200\128\001@\221\235U\224\001R \002A\160T\025\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \008$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240yr$\002\001\140W\029\222\016\006\245\006\000#X\129A\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@gh\000\008\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\000\000\000\000\001\008\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248 \185\018\001\000\196+\142\239\008\003z\131\000\017\172@\160\159\253\127\004\023\"@$\026\133\241\221\225\000oP`\0185\138\020\019\255\175\224\242\228H\004\003\024\174;\188 \013\234\012\000F\177\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\255\195\203\145 \016\012b\248\238\241\1287\1690\129\030\199\026\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\250\254\008.D\128@1\138\227\187\194\000\222\160\192\004k\016('\255_\193\005\200\144\t\006\161|wx@\027\212\024\004\141b\133\004\255\235\248 \185\018\001 \212+\142\239\008\003z\131\000\145\172A\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\008\140\019e\146\192\000\005\000A\000\000\238\128\137A\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\003\144 \016\012B\136\238\208\1287\1680\001\024\196\n\008\000\000\000@r\004\002\001\136Q\029\218\016\006\245\006\000#\024\129A\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\001\004\131@\1603\180\000\004H\004\002\000!\000\130\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\004\018\013\002\128\206\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003;@\000D\128@ \002\018\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000 9\002\001\000\196(\142\237\008\003z\131\000\017\140@\160\128\000\000\004\007 @ \024\133\017\221\161\000oP`\0021\136\020\016\000\000\000\000\000\000\000\000\000\000\001\000\000\000\008\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000 \000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\001\001\130\012\146X\000\000\128\000 \000\012\208\017 #\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\005H\128\t\006\129Pg\232\000\008\144\008\004\000BA\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\004\007 @ \024\133\017\221\161\000oP`\0021\136\020\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248 \185\018\001 \212+\142\239\008\003z\131\000\145\172@\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\191\240\242\228H\004\003\024\190;\188`\013\234L G\177\198\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\000\016\000\000\000\000\016\000\000\000\000\000\000\002E\012\000\000\000\000\000@ \004`\000\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\000@\000\002\000\008\192\000\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\005 \000$\026\133\001\189\160\000\"@ \016\001\008\004\016\000\000\000\000\164\000\004\0030\1603\180\000\012H\004\n\128!\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\016\012\002\128\206\208\0001 \016\000\000\132\002\008\000\000\000\000R\000\002A\160P\025\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\169\016\001 \208*\012\237\000\001\018\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\128`\020\006v\128\001\137\000\128\000\004 \016@\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000@0\n\003;@\000\196\128@\000\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001\000\192(\012\237\000\003\018\001\000\000\008@ \128\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\008\008\016d\146\128\000\004\000\001\000\000B\128\136\000\024\000\000\000\000\000\000\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\005H\128\t\006\129Pg\232\000\008\144\008\004\000BA\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1603\180\000\004H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\005H\128\t\006\129Pgh\000\008\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\206\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\004\000\000\000\000\000\n@\000H4\n\003;@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\0030\1603\180\000\012H\004\n\128!\004\130\000\000\000\002\020\128\000\128f\020\006v\128\001\137\000\129P\004 \144@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\168P\027\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\n@\000@3\n\003;@\000\196\128@\136\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\005 \000 \025\133\001\157\160\000b@ D\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000 \000A\128J\000\000\016\000\000\000\001\002\000 \000`\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\002\000\000\128\001\006\001(\000\000@\000\000\000\004\008\000\128\001\128\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\008\000\002\000\004\024\004\160\000\001\000\000\000\000\016 \002\000\006\000\000\000\000\020\128\000\128`\020\006v\128\001\137\000\128\000\004 \016@\000\000 \000\008\000\016`\018\128\000\004\000\000\000\000@\128\008\000\024\000\000\000\000R\000\002\001\128P\025\218\000\006$\002\000\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\008\000\002\000\004\024\004\160\000\001\000\000\000\000\016 \002\000\006\000\000\000\000\020\128\000\128`\020\006v\128\001\137\000\128\000\004 \016@\000\000 \000\008\000\016`\018\128\000\004\000\000\000\000@\128\008\000\024\000\000\000\000R\000\002\001\128P\025\218\000\006$\002\000\000\016\128A\000\000\000\128\000 \000A\128J\000\000\016\000\000\000\001\002\000 \000`\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\002\000\000\128\001\006\001(\000\000@\000\000\000\004\008\000\128\001\128\000\000\000\005 \000 \024\005\001\157\160\000b@ \000\001\008\004\016\000\000\008\000\002\000\004\024\004\160\000\001\000\000\000\000\016 \002\000\006\000\000\000\000\020\128\000\128`\020\006v\128\001\137\000\128\000\004 \016@\000\000 \000\008\000\016`\018\128\000\004\000\000\000\000@\128\008\000\024\000\000\000\000R\000\002\001\128P\025\218\000\006$\002\000\000\016\128A\000\000\000\128\000 \000A\128J\000\000\016\000\000\000\001\002\000 \000`\000\000\000\001H\000\008\006\001@gh\000\024\144\008\000\000B\001\004\000\000\002\000\000\128\001\006\001(\000\000@\000\000\000\004\008\000\128\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000R\000\002\001\152P\025\218\000\006$\002\005@\016\130A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\008\006a@gh\000\024\144\008\021\000B\t\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\005 \000 \025\133\001\157\160\000b@ T\001\008$\016\000\000\000\000\164\000\004\0030\1603\180\000\012H\004\008\128!\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\002\144\000\016\012\194\128\206\208\0001 \016*\000\132\018\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\128\016\000\000\128\0020\000\000\000\000\000\000\128\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013B\128\222\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000@\000H\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\000\000\008\000\t\000\000\000\000\000\000\000\000@\000\016\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000@\008\000\000@\001\024\000\000\000\000\000\000@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\016\000\004\000\000\000\000\000\000)\000\001 \212(\013\237\000\001\018\001\000\128\008@ \128\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235U\160\001\000 \000\000\000\004\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\016\000\004\000\000\000\000\000\000)\000\001 \212(\013\237\000\001\018\001\000\128\008@ \128\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240Ar$\002\001\140W\029\2220\006\245\006\000#X\129A\000\000\000\000\000\000\000\008\004\000\000\000\004\000\000\000\002 \000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248 \185\018\001\000\198+\142\239\024\003z\131\008\017\172@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000D`\155,\150\000 (\002\t\000\007t\004\n\014\224\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000 \000\008\000\000\000\000\000\000R\000\002A\168P\027\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\128\016\000\000\128\0020\000\000\000\000\000\000\128\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013B\128\222\208\000\017 \016\008\000\132\002\008\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\128\000\000\000\128\000\000\000D\000\000\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\131P\174;\188`\013\234\012\"F\177\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\191\130\011\145 \016\012b\184\238\241\1287\1680\129\026\196\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\005H\128\t\006\129Pg\232\000\008\144\008\004\000BA\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\0020\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000=j\188\000 \004\000\000 \000\140\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\008\000\002\000\000\000\000\000\000\020\128\000\144j\020\006\246\128\000\137\000\128@\004 \016@\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\170\208\000\128\016\000\000\000\002\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\008\000\002\000\000\000\000\000\000\020\128\000\144j\020\006\246\128\000\137\000\128@\004 \016@\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\131P\174;\188`\013\234\012\"F\177\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@ \000\000\000 \000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\193\005\200\144\t\006\161\\wx\192\027\212\024\004\141b\005\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\140\002\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000@r\004\002\001\136Q\029\218\016\006\245\006\000#\024\129A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\001\000\001\255\223\248Ar4\002a\168_\029\2220\014\245&\019#\216\235Y\128\000\000\008\014@\128@1\n#\187B\000\222\160\192\004c\016( \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248 \185\018\001\000\198/\142\239\008\003z\131\000\017\236q\160\128\000\000\000\000\000\000\004\002\000\000\000\000\000\000\000\000\016\000\000\000\003\255\175\224\130\228H\004\003\024\190;\188 \013\234\012\000G\177\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002\001\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\250\254\008.D\128H5\011\227\187\194\000\222\160\192${\028h \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248 \185\018\001 \212/\142\239\008\003z\131\000\145\236q\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\002\000\003\255\175\224\130\228H\004\003\024\190;\188 \013\234\012\000F\177B\130\000\000\000\000\000\000\000\016\008\002\000\000\000\000\000\000\000@\000\008\000\015\254\191\130\011\145 \016\012b\248\238\240\1287\1680\001\026\197\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@ \016\004\000\000\000\000\000\000\000\128\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\131P\190;\188 \013\234\012\002F\177B\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000 #\000\000\000\016\000\000\000\000\128\000\000\000\000\000\000\008\0000\016\000\000\000\000\004\000\000\000\128\000\004\000_\253\127\004\023\"@ \024\197q\221\225\000oP`\0025\136\020\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004 \024\008\000\000\000\000\002\000\000\000@\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240Ar4\002a\168W\029\222\016\014\245\006\001#X\137A\191\250\254\008.D\128@1\138\227\187\194\000\222\160\192\004k\016( \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\023#@&\026\133q\221\225\000\239P`\0185\136\148\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\002\000\003\255\175\224\130\228H\004\131P\190;\188 \013\234\012\002F\177B\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\004\002\000\000\000\002\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\\\137\000\144j\021\199w\140\001\189A\128H\214 P@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\191_\192\005H\144\008\006\001Pgx\000\024\144\008\000\001b\005\004\000\000\000\000)\000A \208(\012\237\000\001\018\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015~\191\128\n\145 \016\012\002\160\206\240\0001 \016\000\002\196\n\008\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\016\002\000\000\016\000@\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\168P\027\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001\000 \000\001\000\004`\000\000\000\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\133\001\189\160\000\"@ \016\001\008\004\016\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\161@oh\000\008\144\008\004\000B\001\004\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\214\171@\002\000@\000\000\000\008\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H5\n\003{@\000D\128@ \002\016\008 \000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\002\000\003\223\175\224\002\164H\004\003\000\1683\188\000\012H\004\000\000\177\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\008\012\016d\146\192\004\004\000\001 \000b\128\129\001\024\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\161@oh\000\008\144\008\004\000B\001\004\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\016\002\000\000\016\000F\000\000\000\000\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\168P\027\218\000\002$\002\001\000\016\128A\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000T\136\000\144h\021\006~\128\000\137\000\128@\004$\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000#\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144j\020\006\246\128\000\137\000\128@\004 \016@\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029j\180\000 \004\000\000\000\000\128\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131P\1607\180\000\004H\004\002\000!\000\130\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\002\0020\000\000\001\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\002\016\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240Ar$\002\001\140W\029\222\016\006\245\006\000#X\129A\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\005\001\157\160\000\"@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\127\245\252\016\\\137\000\144j\021\199w\132\001\189A\128H\2460\208@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\016\000\000\000\000\000\000\001\127\245\252\016\\\137\000\128c\021\199w\132\001\189A\128\008\214 P@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240Ar$\002\001\140W\029\222\016\006\245\006\000#X\129A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128\000\004 \016@\000\000\000\000\000\128\000\000\000\000\000\000\000@\000\000\000\000\000\000\004\000\000\000\000R\000\002A\160P\025\218\000\002$\002\000\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@gh\000\008\144\008\000\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@r\004\002\001\136Q\029\218\016\006\245\006\000#\024\129A\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\016\000\000\001\001\200\016\008\006!Dwh@\027\212\024\000\140b\005\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\007 @ \024\133\017\221\161\000oP`\0021\136\020\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@gh\000\008\144\008\000\000B\001\004\000\000\000\000\000\008\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000@\008\000\000@\001\000\001\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\191\250\254\000 \004\000\000 \000\128\000\128\000\000\128\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248\000\128\016\000\000\128\002\000\002\000\000\002\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000@\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003;@\000D\128@\000\002\016\008 \000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x@\225\008\137 B\001\000\000\018\000B\148$\000\t\128 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\0008B\"\008\016\128@\000\004\128\016\165\t\000\002`\000\003\214\171\192\007\008@\001\002\016\008\000\000\144\002\020\161 \000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\004\001\000\128\000\004\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\004\000\000\000\016\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\004\000\000\000\016\000\000@\016\000\000\000@\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\008\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\007\008D\001\002\016\008\000\000\144\002\020\161 \000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015Z\175\000\028!\000\004\008@ \000\002@\008R\132\128\001\016\000\000\000 \000\000\128 \000\000\000\128\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\004\000\000\000\016\000\000@\016\000\000\000@\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\004\001\000\000\000\004\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\128\000\000\002\000\000\000\000\000\016\000@\000\000\000\000\000\016\000\000@\016\000\000\000@\000\000\128\000\002\000\008\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\128 \000\000\000\128\000\000\000\000\004\000\016\000\000\000\000\000\004\000\000\016\004\000\000\002\016\000\000 \000\000\128\002\000\000 \000\000\000\128\000\002\000\128\000\000\002\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\008\002\000\000\000\008\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\128\016\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000z\213x\000@\008\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004\000\000\016\004\000\000\002\024\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\000\000\000\000\000\002\000\000\008\002\000\000\000\008\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000@\000\000\001\000\000\004\001\000\000\000\004\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000 \000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\017\128\000\002\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\004\001\000\000\000\004\000\000\000\000\000 \000\128\000\000\000\000\000 \000\000\128 \000\000\002\128\000\001\000\000\004\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\001\000@\000\000\001\000\000\000\000\000\008\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\128 \000\000\000\128\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000@\016\000\000\000@\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\004\001\000\000\000\004\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\128\000\000\003\000\000\000\000\000\016\000@\000\000\000\000\000\016\000\000@\016\000\000\t@\000\000\128\000\002\000\008\000\000\128\000\000\002\000\000\008\002\000\000\000\008\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\008\000\000 \008\000\000\000 \000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\016\000\000\000@\000\001\000@\000\000\001\000\000\000\000\000\008\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\008\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\001\000@\000\000\001\000\000\000\000\000\008\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\008\000\000\000 \000\000\128 \000\000\000\128\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\004\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000 \008\000\000\000 \000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\004\000\000\000\016\000\000\000\000\000\128\002\000\000\000\000\000\000\128\000\002\000\128\000\000\n\000\000\004\000\000\016\000@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015[\175\000\012\001\000\000\008D \000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\128\000\002\000\128\000\000\011\000\000\004\000\000\016\000@\000\004\000\000\000\016\000\000@\016\000\000\000@\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\007\173\215\128\006\000\128\000\004#\016\000\000\000\000\016\000@\000\000\000\000\000\016\000\000@\016\000\000\000@\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000 \008\000\000\000 \000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000@\016\000\000\008@\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\001\000@\000\000\001\000\000\000\000\000\008\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x@\225\008\137 B\001\000\000\018\000B\148$\000\t\128 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\014\003;@\000D\128@ \002\016\008 \000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003;@\000D\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000b\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006v\128\000\137\000\128\000\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\n@\000H4\n\003;@\000D\128@\000\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\251\255\008.D\128H=\014\227\187\194\000\222\164\194$k\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\255\194\011\145 \018\015B\184\238\240\1287\1690\137\026\196\n\204\239\223\184\001\000 \000\000\000\004\000\000\000\000\000 \000\000\000\000\000\000\145C\000\000\000\000\000\000\008\000\000\000\000\000\004\000\000\000\000\000\003\191~\224\004\000\128\000\000\000\016\000\000\000\000\000\128\000\000\000\000\000w\239\220\000\128\016\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000H\161\128\000\000\000\000\000\004\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$P\192\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\004\138\024\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\145C\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\018(`\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\250\254\015.D\128@1\138\227\187\194\000\222\160\192\004k\016('\255_\193\005\200\144\008\0061\\wx@\027\212\024\000\141b\005\004\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\023\"@ \024\197q\221\225\000oPa\0025\136\021\152\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\"\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@ \000\000\000\000\000\000\000\017\000\000\000\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\193\005\200\144\t\006\161\\wx@\027\212\024D\141b\005f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000 \025\133\001\157\160\000b@ T\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\191\131\203\145 \016\012b\184\238\240\1287\1680\001\026\196\n\t\255\215\240Ar$\002\001\140W\029\222\016\006\245\006\000#X\129A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\007\255_\193\005\200\144\008\0061\\wx@\027\212\024@\141b\005f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\007\151\"@ \024\197q\221\225\000oP`\0025\136\020\019\255\175\224\130\228H\004\003\024\174;\188 \013\234\012\000F\177\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\251\255\000 \004\000\000 \000\128\000\000\000\000\132\000\000\000\000\000\000\018(`\000\000\000\000\002\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\192\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\000\017\128\000\000\000\000\000\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\003\214\171\192\002\000@\000\002\000\008\192\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000=j\188\000 \004\000\000 \000\140\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\\\137\000\144j\021\199w\132\001\189A\128H\214 \208@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\145C\000\000\000\000\000\016\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\002\001\000\128\000\000\000\000\000\000\000D\000\000\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\023\"@$\026\133q\221\225\000oPa\0185\136\021\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\0020\000\000\001\000\004\000\000\000\006 \000\000\000\000\004\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\2243\180\000\004H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\012\237\000\001\018\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\\\137\000\144z\029\199w\132\001\189I\132H\214 V`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\132\023\"@$\030\133q\221\225\000oRa\0185\136\021\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\\\137\000\128c\021\199w\132\001\189I\132\008\214 V`\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\136\000\000\000\197\255\223\248Ar$\002\001\140W\029\222\016\006\245&\016#X\129Y\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\127\225\005\200\144\t\006\161\\wx@\027\212\152D\141b\005f\255\239\252 \185\018\001\000\198+\142\239\008\003z\147\008\017\172@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\"\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\255\194\011\145 \018\013B\184\238\240\1287\1690\137\026\196\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\251\255\008.D\128H5\n\227\187\194\000\222\164\194$k\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\239\252 \185\018\001 \212+\142\239\008\003z\147\008\145\172@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\239\252 \185\018\001 \212+\142\239\008\003z\147\008\145\172@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\"\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\255\194\011\145 \018\013B\184\238\240\1287\1690\137\026\196\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\024\000\000\000\128\002\000\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\004\128\000\000\000\000\000\000\000\000H\156\000\192\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000@\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016 \000\000\000\000\000\000\004\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000@\128\000\000\000\000\000\000\016\000\000\000 \000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\008\001\000\000\000\000\000\002\000\000\008\016\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000\008\000\016\000\016\000\000\000\000\000\000\000\017\128\016\000 \020\000\000\000\000\000\008\000\000 @\000\000\000\000\000\000\008\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\001\000\001\000\000\000\000\000\000\000\001\024\001\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\156\000\192\000\000\128\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\000\000\000\000\000\000\000F\000`\000\000@\000\000\000\004\000\008\000\000\000\000\000\000\000\000\000\008\192\008\000\000\008\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000#\000 \004\000 \000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\0020\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\001\024\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\016\000\000\000\000\000\000\000\000\000\019\128\024\000\000\016\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\0020\003\000\000\002\000\000\000\000 \000@\000\000\000\000\000\000\000\000\000F\000@\000\000@\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\008\192\008\000\000\008\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\001\024\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\016\000\000\000\000\000\000\000\000\000\017\128\024\000\000\016\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\0020\002\000\000\002\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000F\000@\000\000@\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\008\192\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (184, "\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\b\001\006\000\000\002\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\252\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001*\134\128(\b5A\001!\152\017\1284\002!\222\004\128\001\014d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\142\000\000\0001\000\001\000\024\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\142\000\000\0001\000\001\000\024\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\002\016\000 \000\002\b\b\000@\000\000\000\128\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000\000\000 \000\002 \000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\b\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\019\004\217d\176\000\000P\002\004\000\000n\128Bxw\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\017\004\024\004\176\000\000P\002\000\000\000l\128\002hw\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000l\128\002xw\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\012\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\000\000\000\004\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\000\000\128\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\017$ \004\131@\1683\185\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\002\004Y$\160\000\000@\000\004\000\000j\128@\016F\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000h\128\000\016F\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\002\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\012\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\000\016\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000\000\000 \000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\006\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\002\004\025$\160\000\000@\000\004\000\000B\128B\000\006\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\000\130\000\000\001 \000\003\019\004\217d\176\000\000P\002\004\000\000n\128BPw\000\000\000\002\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\003\004\025$\176\000\000@\000\004\000\000f\128B@F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\001$\000\004\0030\1603\153\000\001\132\128@\"\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001$\000\004\0030\1603\153\000\001\132\128@\"\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@\"\000A\004\130\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001 \000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\001\000\001 \000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\030Q\134\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\019\004\217d\176\000\000P\002\004\000\000j\128@Pw\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000h\128\000Pw\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\012\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\001\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\004\000\000\000\000\000\000\001\002 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\016\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\026QB\130\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\030\017\164(\004\003\024\190;\159\024\001\158\164\192\001\030Q\198\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\026QB\130\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\026Q\006\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\001\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\001\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\030\017\164(\004\003\024\190;\159\024\001\158\164\192\001\030Q\198\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\024\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\128@\000\000\000\016\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\024\001\158\160\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\019\004\217d\176\001\000P\002\004\128\000n\128@Pw\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\016\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\024\001\158\160\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\000\017\128\016\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\127\247\254\016\017\1648\004\195P\190;\159\024\003\158\164\192\025\030Q\214\179\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\190;\159\b\001\158\160\192\001\030Q\198\130\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\b\000\000\000\000\127\245\252\016\017\164(\004\003\024\190;\159\b\001\158\160\192\001\030Q\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\030Q\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\030Q\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\127\245\252\016\017\164(\004\003\024\190;\159\b\001\158\160\192\001\026QB\130\000\000\000\000\000\000\000\000\128@\016\000\000\000\000\000\000\000\b\000\000@\000\127\245\252\016\017\164(\004\003\024\190;\159\b\001\158\160\192\001\026QB\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\016\000\000\000\000\000\000\000\b\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\026QB\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\016\017\128\000\000\000\128\000\000\000\000@\000\000\000\000\000\000\000\016\000\192@\000\000\000\000\002\000\000\000\b\000\000\016\001\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\192@\000\000\000\000\002\000\000\000\b\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\1648\004\195P\174;\159\b\003\158\160\192\t\026Q\018\131\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\1648\004\195P\174;\159\b\003\158\160\192\t\026Q\018\131\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\026QB\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\245\252\000\017$(\004\003\000\1683\159\000\001\132\128@\000\002Q\002\130\000\000\000\000\001$\001\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\245\252\000\017$(\004\003\000\1683\159\000\001\132\128@\000\002Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000{\245\252\000\017$(\004\003\000\1683\159\000\001\132\128@\000\002Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\003\004\025$\176\001\000@\000\004\128\000b\128@@F\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\001\000\001\000\016\017\128\000\000\000\128\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\002\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\002\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\030Q\134\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\006\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x@8\b$I\002\016\b\000\000$\000!J\020\128\001\140\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\128(\b\004A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000 \000\002\000\000\000\000\000\000\000 \000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\"\000\000\000\000\000\000\000 \000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\0008\b$A\002\016\b\000\000$\000!H\020\128\001\140\000\000z\213x\0008\b \001\002\016\b\000\000$\000!H\020\128\001\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$a\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\0008\b$\001\002\016\b\000\000$\000!H\020\128\001\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\0008\b \001\002\016\b\000\000$\000!H\020\128\001\132\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\004\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000\001\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\000\000\000\164\000!\218\004\128\001\014\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000\161\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\128\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\017\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128.\b$A\000\005\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\129(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\129(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\128\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(H$A\000%\000\000\000\164\000!\218\004\128\001\014\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000\161\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\128\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006@\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128.\b$A\000\005\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\221x\1288\b$A\002\017\b\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\128(\b\004A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128.H$A\000\005\128\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000z\221x\1288\b$A\002\017\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x@8\b$I\002\016\b\000\000$\000!J\020\128\001\140\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\2243\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131\208\238;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131\208\174;\159\b\001\158\164\192\t\026Q\002\179{\247\254\000\016\000 \000\002\000\b\000\000\000\000\000\004\000\000\000\000\000\000{\247\254\000\016\000 \000\002\000\b\000\000\000\000\000\004\000\000\000\000\000\000{\247\254\000\016\000 \000\002\000\b\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\179\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\247\254\000\016\000 \000\002\000\b\000\000\000\000\000\132\000\000\000\000\000\000\001\"\134\000\000\000\000\000\001\000\000\017\128\000\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\000\000\128\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\000\b\192\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\026Q\006\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\001\000\001\000\000\017\128\000\000\000\132\000\000\000\000\0001\000\000\000\000\000\000\128\128 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\2243\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131\208\238;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131\208\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\003\024\174;\159\b\001\158\164\192\001\026Q\002\179\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\127\247\254\016\017\164(\004\003\024\174;\159\b\001\158\164\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\127\247\254\016\017\164(\004\003\024\174;\159\b\001\158\164\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\001\000\001\000\000\017\128\000\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\001\000\001\000\000\017\128\000\000\000\132\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000@\000\000\000\000\000\000\000\000@\145.\000`\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000 \000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000 \004\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\001\006\000@\000 \020\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\001\006\000@\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\014\000`\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000`\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\002\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\014\000`\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000`\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000`\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") let action = - ((16, "\000\212\000\031\000\000\000\000\000\235\000\000\000\000\000\000\000\212\000\000\000\228\031D\000\000\000\129F\002\000\000\000\000\026v\000\000\031\210\000\000\000\000\000\000\000\000\000\000\000\000\027b\000\000 d\000\000\000\000\000\000\000\000\000\000!P\000\000\000\000\000\000\000k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\165\000c\000\000\031D!\158G\168\000+GD\000\000\000\000\000\0000h\000rG\168\000\015G\168\000\000\000\156\000\000G\168\000\000\000k\003\250\144\000\000@\182\000\000AdE\016H\"E\016O\240\000\000\006\178\000\000\006\2241\234\000\0002\152\006\2402\1523\190\006\2442\152\000\000\000\000\000\000\000\000\000\000\006\232\000\000\007\198\000\000\000k\000\000\002p\007\204\000\000\007\174\007\158\000k\007\000\007\190N\012\007\018\000\232\000\000\000\000\008\"N\012\007t\008T\000\000\003\248\000\000\000\000\001\254\020\016\000\000\001\254\000\000\000\000\007\150\000\000\003\024\000\003\019<\000\000\003\250\000%\003\250\000\000\000\148\000\000\006\162\000\000\006\162\000\000\000\000\000\000\007\144\000\000\000\000\007\154\000\000\003:\005N\000%\003\250\000\000\000\000\000\000\000\148\000\000\006\162\000\000\003:\000\000\000\000\000\234\000\015\015\238\000\000\020\016\000\000\tJ\015\238\000\000\000\000\tJ\000\000\000\000\007\156\000\000\000\000\007\174\000\000\004z\006\162\000\000\004z\000\000\000\000\008&\000\000\001\028\000\000\006\162\000\000\000\000\000\000\0176>H\000\000\008\140\000\000\0176\008\142\000\000\008\148\000\000$4\000k\002*\000\000\t\180\000\000\tJ\n\170\000\000\006,\003^\n\186\011\194\n\186\000\000\000\000\002\030\000\127\000\000\002F\n\012\000\000\000\000\000\000\005\206\000\000\t\190\000\000\000\000\000\000\000\000\tJ\006,\003^\002\030\002F\005\206\t\192\000\000\006,\003^\002\030\002F\005\206\t\196\000\000\000\127\000\000\n\192\n\188\n\000\000\127\n\\\000\000"), (16, "\n\237\n\237\n\237\n\237\n\237\n\237\n\237\n\237\n\237\n\237\n\237\000:\n\237\n\237\n\237\n\237\n\237\n\237\n\237\n\237\n\237\n\237\000\n\001^\020\131\020\135\n\237\012\022\001j\020\139\006\025\006\002\n\237\016\130\n\237\n\237\n\237\000\158\007y\n\237\017r\008J\000\014\n\237\n\237\005\129\n\237\002\150\000\023\000\027\008~\005\129\008J\007y\000\218\n\237\000\162\000\194\n\237\n\237\004\t\008~\017v\000\250\n\237\n\237\000\162\n\237\006j\n\237\000\198\000J\017z\000N\n\237\000V\n\237\n\237\n\237\n\237\n\237\013\006\000Z\000\158\n\237\n\237\n\237\ny\n\237\n\237\n\237\005\129\n\237\n\237\n\237\n\237\006\n\0182\016\138\n\237\n\237\001^\017\134\007y\005Z\001f\001j\003\198\000\162\n\237\n\237\n\237\000\162\n\237\n\237\n\237\n\237\001^\n\237\t\158\n\237\012\022\001j\n\237\t\146\n\029\n\237\n\237\006\025\000\242\t\158\013~\n\237\008J\000\162\013\174\n\237\000\006\004\t\n\237\016B\000^\008~\n\237\n\237\n\237\n\237\000\162\n\237\n\237\000\162\007y\004\t\n\237\n\237\n\237\005\193\n\237\005\217\n\237\n\237\017\138\n\237\007y\n\237\n\237\012\002\013\006\n\237\n\237\006!\006!\006!\006!\006!\006!\006!\006!\006!\006!\006!\n\029\006!\006!\006!\006!\006!\006!\006!\006!\006!\006!\t\146\017\178\020\150\004\162\006!\008N\008^\008n\n\161\008J\006!\001^\006!\006!\006!\012\022\001j\006!\008~\t\158\n\209\006!\004\138\006\194\006!\000.\006\"\016\162\016\202\016\242\017\002\017.\016Z\006!\0069\0069\018\150\005\145\004\t\0069\000\158\002\206\006!\006!\000\162\003\137\001\006\006!\006!\000n\011\145\000r\006!\000z\006!\006!\006!\006!\006!\012\006\000~\002J\006!\006!\006!\022+\006!\006!\006!\000\162\006!\006!\006!\006!\022/\n\174\017\150\006!\006!\005\185\005\185\005\233\000\158\011\145\0222\000\162\005\129\t\158\006!\006!\002\166\006!\006!\006!\006!\000\218\006!\n\186\006!\006\142\005\241\006!\006\146\007e\006!\006!\021\n\007e\006\150\002\222\006!\000\162\012\194\006\154\021\014\011\145\011\145\006!\017z\000\130\011\145\006!\006!\006!\006!\0061\006!\006!\002\254\t\n\n\166\006!\006!\006!\006A\014\230\006A\006!\006!\006A\006!\013\138\006!\006!\017\166\023\146\006!\006!\006A\006A\006A\006A\006A\006A\006A\006A\006A\006A\006A\008r\006A\006A\006A\006A\006A\006A\006A\006A\006A\006A\n\137\018b\008J\002a\006A\020r\006A\002a\n\129\023\018\006A\008~\006A\006A\006A\006A\016\170\006A\006A\006A\006A\006A\006A\006A\006A\006A\005\169\012\198\003\n\003\018\n\222\023\022\000\158\006A\015\022\0061\006A\003f\023\026\0061\0061\006A\006A\006A\006A\006A\003\213\006A\006A\006\017\014\234\023\134\006A\020r\006A\023\154\006A\006A\006A\003\161\023\158\000\162\006A\006A\006A\005>\006A\006A\006A\005\161\006A\006A\006A\006A\019N\0061\008Y\014\170\006A\t\002\t\158\016\178\014\174\006A\t\146\t\218\n\137\003r\006A\006A\n\137\006A\006A\006A\006A\003\161\006A\023\"\006A\003\017\023n\006A\005f\011\206\006A\006A\002\141\n\137\008Y\008Y\006A\023\n\004\138\008Y\006A\006)\019R\006A\016.\015\026\003\190\006A\006A\000\162\006A\023:\006A\006A\023*\013\254\005\129\006A\0081\005\129\0035\018z\013\006\005\129\006A\005\129\006A\005\209\006A\006A\005\129\005\129\006A\006A\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\015.\000\146\020\234\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\242\t\146\0126\001^\003\206\006\158\012V\012\022\001j\003\214\008J\000\186\004V\001\030\006\174\006\202\004\193\004z\006\206\008~\011\206\005\241\000\190\012\138\011\206\008:\006)\n\137\005\137\002\150\006)\006)\004%\020\174\001*\004\193\000\162\021.\005\249\n\145\015\214\011\206\006)\008\146\006\214\021Z\021f\001\026\008\150\013\186\007=\023J\004\130\001R\004\186\001V\003\229\000\206\t\154\008\158\015J\017\162\023B\006\234\001^\008\162\006)\006\238\008\166\001j\n\177\006\242\006\246\008\170\006\250\0152\001^\004\198\005\129\008\174\012\022\001j\007=\007=\008Y\004\210\006i\007=\t\158\006\254\007\002\004\189\008\178\008\182\007\006\008\186\t\006\000\162\004\222\008\206\005\177\004\193\003\193\020\219\020\223\008\218\007\014\004!\020\227\000\162\004\189\006I\013\"\005\137\n\137\021z\008Y\008Y\008\250\004\193\014~\008Y\008\254\t:\003\229\t\166\017\246\007\018\t>\004\234\011\206\005\137\007\022\003\229\003\229\005\137\016\210\013\006\003\229\tF\n\193\007\026\006i\006I\006I\015N\015^\001\154\006I\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\004\246\000\146\020\234\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\242\0039\015\186\001^\005\n\006\158\004\189\012\022\001j\005\026\n\185\000\186\017\014\001\030\006\174\006\202\0039\018\146\006\206\0085\005\030\019\154\000\190\t\"\004\189\008:\018\134\003\021\006\001\013B\004\138\016\218\023:\019b\001*\005&\000\162\008J\005*\015n\n\153\0085\006Y\008\146\006\214\021Z\008~\011\206\008\150\014\002\008\145\0085\005R\001R\006\t\001V\003\245\000\206\t\154\008\158\017j\019J\005V\006\234\001^\008\162\019>\006\238\008\166\001j\000\162\006\242\006\246\008\170\006\250\022K\022O\017\022\005^\008\174\022S\0085\008\145\008\145\005\130\005\138\006Q\008\145\015\166\006\254\007\002\005\225\008\178\008\182\007\006\008\186\0039\000\162\006Y\008\206\0039\0039\003\193\021\190\n\201\008\218\007\014\005\153\005\241\022o\022s\006q\0039\015\222\022w\t\158\015\250\005\142\008\250\005\150\0035\019\150\008\254\t:\015r\t\166\0085\007\018\t>\021\238\005\170\005\174\007\022\002\129\003\245\0035\0039\005\201\023B\tF\0085\007\026\006Q\006q\006q\005\198\006a\001\154\006q\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\019\138\000\146\020\234\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\242\005\214\023\166\015\170\005\234\006\158\005\242\005\250\006\023\006.\0066\000\186\006:\001\030\006\174\006\202\006Z\006r\006\206\005\129\006\162\006\170\000\190\006\178\006\186\008:\006\190\006\198\015\226\006\222\006\230\015\254\006a\007>\001*\007J\007\146\008J\005%\008\n\0082\005\129\008F\008z\006\214\0035\008~\008R\008\150\0035\0035\005\129\008Z\001R\008b\001V\004\017\000\206\008\154\008\158\008j\0035\023\n\006\234\001^\008\162\008\190\006\238\008\166\001j\008\198\006\242\006\246\008\170\006\250\008\214\005\129\008\222\011\153\008\174\008\230\005\129\002\150\008r\008\238\0035\008\246\t2\tB\006\254\007\002\tJ\008\178\008\182\007\006\008\186\tV\000\162\018\022\008\206\tZ\tb\003\193\tf\tr\008\218\007\014\tz\t\138\t\174\t\190\008a\t\198\t\202\t\242\t\158\t\254\008v\008\250\n\006\017v\nZ\008\254\t:\004\017\t\166\005\129\007\018\t>\nf\017z\n\154\007\022\004\017\004\017\n\182\n\202\n\214\004\017\tF\005\129\007\026\n\238\008a\008a\n\250\011\130\001\154\008a\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\017\134\000\146\011\138\000\150\006\150\000\154\000\174\000\178\000\182\006\154\011\154\014\170\011\166\011\194\011\202\006\158\014\174\011\222\011\230\011\234\014\178\000\186\011\242\001\030\006\174\006\202\011\246\005\129\006\206\019\022\005\129\011\254\000\190\012\014\005\129\008:\005\129\012\"\012*\012.\012>\005\129\005\129\012F\001*\000\162\012^\008J\012f\012\146\012\154\017v\016.\008z\006\214\012\166\008~\012\170\008\150\017\138\012\178\017z\012\182\001R\012\190\001V\012\206\000\206\008\154\008\158\012\242\012\250\012\254\006\234\001^\008\162\013\014\006\238\008\166\001j\013\022\006\242\006\246\008\170\006\250\013\026\005\129\013*\011\153\008\174\0132\017\134\000:\013J\013R\000\218\013\162\013\234\013\246\006\254\007\002\014j\008\178\008\182\007\006\008\186\001^\000\162\014v\008\206\001f\001j\014\150\014\194\014\206\008\218\007\014\014\214\014\242\014\250\014\254\011\153\015\006\015\n\015\018\t\158\015\"\015:\008\250\015V\015z\015\138\008\254\t:\015\142\t\166\000\162\007\018\t>\000\162\015\150\015\154\007\022\015\162\005\129\015\178\015\194\015\202\015\206\tF\017\138\007\026\015\234\011\153\011\153\016\006\015\214\001\154\011\153\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\016\026\000\146\016*\000\150\006\150\000\154\000\174\000\178\000\182\006\154\016:\016R\016b\016n\004\162\006\158\016\151\016\191\016\231\003\173\016\255\000\186\001^\001\030\006\174\006\202\012\022\001j\006\206\017#\017;\022\254\000\190\007\129\003\173\008:\006\142\017~\017\190\006\146\017\219\018\003\018\015\021\n\001*\006\150\018\031\008J\007\129\018'\006\154\021\014\018:\008z\006\214\000\162\008~\018C\008\150\018K\018S\018n\018\174\001R\018\195\001V\018\211\000\206\008\154\008\158\018\219\018\231\018\243\006\234\001^\008\162\018\255\006\238\008\166\001j\019\006\006\242\006\246\008\170\006\250\019\015\019\"\019+\0193\008\174\019n\019\162\005\233\019\183\019\191\011\230\019\203\019\219\007\129\006\254\007\002\019\227\008\178\008\182\007\006\008\186\019\238\000\162\019\242\008\206\023Z\019\255\n\169\020\011\003\173\008\218\007\014\023^\003\173\003\173\020\018\020\031\020+\0203\020>\t\158\020G\020O\008\250\020[\003\173\003\173\008\254\t:\020v\t\166\020\154\007\018\t>\020\158\020\162\006\142\007\022\020\186\006\146\021:\007\129\021b\021\n\tF\006\150\007\026\021r\003\213\003\173\006\154\021\014\001\154\007\129\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\021\170\000\146\020\234\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\242\021\178\021\206\021\210\021\254\006\158\022\002\022\n\018.\0227\023\002\000\186\n\169\001\030\006\174\006\202\n\169\n\169\006\206\017r\012\166\023\014\000\190\023\030\023&\008:\023.\023W\023b\023r\017v\023\150\023\175\023\219\001*\023\247\024\006\024\n\024\014\018\162\017z\017v\024\023\008\146\006\214\000\000\n\169\000\000\008\150\022\134\000\000\017z\n\169\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\000\000\000\000\006\234\001^\008\162\000\000\006\238\008\166\001j\017\134\006\242\006\246\008\170\006\250\000\000\020:\000\000\003\213\008\174\000\000\017\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\000\000\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\000\000\000\000\003\193\000\000\000\000\008\218\007\014\000\000\000\000\000\000\000\000\008E\000\000\000\000\000\000\000\162\000\000\000\000\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\162\007\018\t>\017\138\000\000\000\000\007\022\000\000\000\000\000\000\000\000\000\000\000\000\tF\017\138\007\026\000\000\008E\008E\000\000\000\000\001\154\008E\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\nq\000\000\000\000\000\000\000\000\006\158\000\000\000\000\017r\000\000\000\000\000\186\000\000\001\030\006\174\006\202\000\000\000\000\006\206\017r\000\000\000\000\000\190\000\000\000\000\008:\000\000\000\000\000\000\000\000\017v\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\017z\017v\000\000\008\146\006\214\000\000\000\000\000\000\008\150\012n\000\000\017z\000\000\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\000\000\000\000\006\234\001^\008\162\000\000\006\238\008\166\001j\018\202\006\242\006\246\008\170\006\250\000\000\000\000\000\000\011u\008\174\nq\019\210\000\000\000\000\nq\nq\000\000\000\000\000\000\006\254\007\002\000\000\008\178\008\182\007\006\008\186\nq\000\162\000\000\008\206\000\000\000\000\000\000\000\000\000\000\008\218\007\014\023v\000\000\000\000\000\000\011u\000\000\000\000\000\000\000\162\000\000\000\000\008\250\000\000\nq\000\000\008\254\t:\000\000\t\166\000\162\007\018\t>\017\138\000\000\000\000\007\022\000\000\000\000\000\000\000\000\000\000\000\000\tF\017\138\007\026\000\000\011u\011u\000\000\000\000\001\154\011u\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\000\000\000\000\000\000\006\158\000\000\000\000\000\000\000\000\000\000\000\186\000\000\001\030\006\174\006\202\000\000\000\000\006\206\000\000\000\000\000\000\000\190\000\000\000\000\008:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\146\006\214\000\000\000\000\000\000\008\150\021>\000\000\000\000\000\000\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\000\000\000\000\006\234\001^\008\162\000\000\006\238\008\166\001j\000\000\006\242\006\246\008\170\006\250\000\000\000\000\000\000\000\000\008\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\000\000\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\000\000\000\000\000\000\000\000\000\000\008\218\007\014\000\000\000\000\000\000\000\000\011\193\000\000\000\000\000\000\000\000\000\000\000\000\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\000\007\018\t>\000\000\000\000\000\000\007\022\000\000\000\000\000\000\000\000\000\000\000\000\tF\000\000\007\026\000\000\011\193\011\193\000\000\000\000\001\154\011\193\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\000\000\000\000\000\000\006\158\000\000\000\000\000\000\000\000\000\000\000\186\000\000\001\030\006\174\006\202\000\000\000\000\006\206\000\000\000\000\000\000\000\190\000\000\000\000\008:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\146\006\214\000\000\000\000\000\000\008\150\021>\000\000\000\000\000\000\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\000\000\000\000\006\234\001^\008\162\000\000\006\238\008\166\001j\000\000\006\242\006\246\008\170\006\250\000\000\000\000\000\000\000\000\008\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\000\000\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\000\000\000\000\000\000\000\000\000\000\008\218\007\014\000\000\000\000\000\000\000\000\011\189\000\000\000\000\000\000\000\000\000\000\000\000\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\000\007\018\t>\000\000\000\000\000\000\007\022\000\000\000\000\000\000\000\000\000\000\000\000\tF\000\000\007\026\000\000\011\189\011\189\000\000\000\000\001\154\011\189\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\000\000\000\000\000\000\006\158\000\000\000\000\000\000\000\000\000\000\000\186\000\000\001\030\006\174\006\202\000\000\000\000\006\206\000\000\000\000\000\000\000\190\000\000\000\000\008:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\146\006\214\000\000\000\000\000\000\008\150\0146\000\000\000\000\000\000\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\000\000\000\000\006\234\001^\008\162\000\000\006\238\008\166\001j\000\000\006\242\006\246\008\170\006\250\000\000\000\000\000\000\000\000\008\174\000\000\000\000\000\000\000\000\000\000\0031\000\000\000\000\000\000\006\254\007\002\000\000\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\0031\000\000\000\000\000\000\000\000\008\218\007\014\000\000\017r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\000\007\018\t>\000\000\017v\000\000\007\022\000\000\000\000\000\000\000\000\000\000\000\000\tF\017z\007\026\000\000\0002\006&\000F\000b\001\154\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\019\026\000\000\000\000\n\029\000\000\017\134\000\000\000\000\000\000\000\000\000\186\000\000\001\030\000\000\006\202\0031\004\169\006\206\000\000\0031\0031\000\190\000\000\000\000\014\182\000\000\000\000\000\000\n\029\000\000\000\000\0031\000\000\001*\000\000\000\000\000\000\000\000\004\169\000\000\000\000\000\000\014\198\006\214\000\000\000\000\0031\000\000\004\169\000\000\000\162\000\000\001R\000\000\001V\0031\000\206\023B\000\000\011\018\000\000\000\000\006\234\001^\017\138\000\000\006\238\001f\001j\000\000\006\242\006\246\008\170\006\250\000\000\000\000\n\017\011\026\004\169\004\169\000\000\000\000\000\000\000\000\n\029\000\000\000\000\000\000\006\254\007\002\000\000\000\000\011\"\007\006\000\000\000\000\000\162\000\000\011b\011j\000\000\n\017\000\000\000\000\000\000\007\014\000\000\017r\011B\000\000\000\000\011*\000\000\011:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\169\t\166\000\000\007\018\014\202\000\000\017v\000\000\007\022\000\000\000\000\011J\000\000\000\000\004\169\014\210\017z\007\026\000\000\0002\0006\000F\000b\001\154\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\000\000\000\150\n\017\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\n)\000\000\017\134\011R\000\000\000\000\000\000\000\186\000\000\001\030\0112\001\"\000\000\000\000\001&\000\000\000\000\000\000\000\190\000\000\000\000\000\000\004\253\000\000\000\000\n)\000\000\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\011r\011Z\001F\001B\000\000\001J\000\000\000\000\000\000\000\000\000\162\000\000\001R\000\000\001V\000\000\000\206\000\000\000\000\000\000\000\000\000\000\001Z\001^\017\138\000\000\001b\001f\001j\001\190\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\000\000\002\186\000F\000b\000\000\000f\n)\000j\000\134\000\000\000\138\001z\000\146\000\000\000\150\001~\000\154\000\174\000\162\000\182\000\000\006\158\000\000\000\000\000\000\000\000\000\000\001\134\000\000\001\030\006\174\006\202\000\186\000\000\006\206\000\000\001\138\000\000\000\000\000\000\000\000\008:\000\000\000\190\000\000\000\000\000\000\000\000\001\142\000\000\001*\000\000\000\000\001\146\000\000\000\000\003\133\000\000\000\000\008\202\006\214\000\000\001\150\000\000\008\150\000\000\000\000\000\000\001\154\001R\000\000\001V\000\000\000\000\000\000\008\158\000\000\000\000\000\206\006\234\001^\008\162\000\000\006\238\008\166\001j\000\000\006\242\006\246\000\000\006\250\000\000\000\000\000\000\000\000\008\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\000\000\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\000\000\000\000\000\162\000\000\000\000\008\218\007\014\000\000\000\000\000\000\000\000\006\158\000\000\000\000\000\000\000\000\000\000\000\000\008\250\001\030\006\174\006\202\008\254\t:\006\206\000\000\000\000\007\018\t>\007y\000\000\008:\007\022\000\000\t\146\000\000\000\000\000\000\000\000\tF\001*\007\026\000\000\008J\007y\000\000\000\000\001\154\000\000\006\210\006\214\000\000\008~\000\000\008\150\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\008\158\000\000\000\000\000\000\006\234\001^\008\162\000\000\006\238\008\166\001j\000\000\006\242\006\246\000\000\006\250\000\000\000\000\000\000\000\000\008\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007y\006\254\007\002\000\000\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\000\000\000\000\000\000\000\000\000\000\008\218\007\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\158\011\213\000\000\008\250\011\213\000\000\000\000\008\254\t:\000\000\000\000\000\000\007\018\t>\000\000\000\000\000\000\007\022\000\000\011\213\000\000\007y\000\000\011\213\tF\000\000\007\026\001\178\011\213\000\000\000\000\000\000\001\154\007y\011\213\000\000\000\000\011\213\011\213\000\000\011\213\011\213\000\000\000\000\001\186\000\000\011\213\002\214\000\000\000\000\011\213\000\000\000\000\011\213\000\000\011\213\011\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\213\000\000\011\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\213\005\129\000\000\000\000\000\000\000\000\002\226\000\000\000\000\000\000\000\000\005\129\005\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\213\011\213\011\213\000\000\011\213\011\213\002\230\000\000\011\213\000\000\000\000\000\000\004!\005\129\000\000\004!\002\238\000\000\005\129\002\150\011\213\000\000\005\129\011\213\011\213\011\213\011\213\000\000\000\000\000\000\004!\011\213\011\213\011\213\004!\011\213\011\213\011\213\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\004!\004!\000\000\004!\004!\000\000\005\129\004!\000\000\004!\004!\000\000\000\000\004!\000\000\005\129\004!\000\000\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\129\000\000\000\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\129\000\000\004!\005\129\005\129\000\000\000\000\005\129\004!\000\000\000\000\000\162\000\000\000\000\000\000\000\000\000\000\005\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\000\000\004!\004\189\004!\000\000\004!\000\000\001=\001=\001=\001=\000\000\001=\004!\001=\001=\000\000\001=\000\000\001=\004!\001=\004!\001=\001=\001=\001=\000\000\004!\004!\004!\017F\004!\004!\004!\000\000\000\000\000\000\001=\001=\001=\000\000\000\000\000\000\000\000\001=\000\000\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\000\000\017J\000\000\000\000\001=\000\000\000\000\000\000\006~\006J\000b\001=\000f\000\181\006N\000\134\001=\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\001=\000\182\000\000\000\000\000\000\000\000\011\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\000\000\000\000\000\000\000\000\000\001=\011\"\000\000\001=\000\000\000\190\000\000\000\181\000\181\000\000\000\000\000\000\000\000\000\000\001=\000\000\000\000\011B\000\000\001=\011*\001=\011:\000\000\001=\000\000\001=\000\000\000\000\004%\000\000\001=\004%\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\011J\000\000\000\000\000\000\004%\000\000\001=\000\000\004%\001=\001=\000\000\004%\004%\000\000\000\000\000\000\000\000\000\000\004%\017N\000\000\004%\004%\000\000\004%\004%\000\000\000\000\004%\000\000\004%\004%\000\000\000\000\004%\011R\000\000\004%\000\000\004%\004%\000\000\0112\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\000\000\000\000\000\000\000\000\000\000\000\000\000\181\011Z\000\000\004%\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\004%\004%\000\000\004%\004\193\004%\000\000\004%\000\000\000\000\000\000\012)\000\000\000\000\012)\004%\000\000\000\000\000\000\004%\000\000\000\000\004%\000\000\004%\000\000\000\000\000\000\000\000\012)\004%\004%\004%\012)\004%\004%\004%\007.\012)\000\000\000\000\000\000\000\000\000\000\012)\000\000\000\000\012)\012)\000\000\012)\012)\000\000\000\000\0076\000\000\012)\007B\000\000\000\000\012)\000\000\000\000\012)\000\000\012)\012)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012)\000\000\000\000\000\000\000\000\000\000\007N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012)\012)\012)\000\000\012)\000\000\007R\000\000\012)\000\000\n\013\n\013\n\013\n\013\000\000\n\013\007Z\n\013\n\013\000\000\n\013\000\000\n\013\012)\n\013\012)\n\013\n\013\n\013\n\013\000\000\012)\012)\012)\000\000\012)\012)\012)\000\000\000\000\000\000\n\013\n\013\n\013\000\000\000\000\000\000\000\000\n\013\000\000\000\000\000\000\000\000\n\013\000\000\000\000\000\000\017^\000\000\000\000\000\000\017f\000\000\000\000\000\000\000\000\000\000\n\013\000\000\000\000\000\000\000\000\000\000\000\000\n\013\000\000\000\000\000\000\000\000\n\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\n\013\000J\004E\000N\004E\000V\004E\000\000\004E\000\000\000\000\000\000\000Z\004E\004E\000\000\000\000\000\000\000\000\000\000\n\013\000\000\000\000\n\013\000\000\000\000\004E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\013\000\157\004E\004E\000\000\n\013\000\000\n\013\004E\000\000\n\013\000\000\n\013\000\000\000\000\000\000\000\000\n\013\000\000\000\157\n\013\000\000\000\000\000\000\004E\000\000\000\000\004E\000\000\000\000\000\000\000\000\004E\004E\011\"\n\013\004E\000^\017\222\n\013\000\157\000\157\000\000\000\000\004E\000\000\000\000\000\000\004E\004E\000\157\000\000\000\000\011*\000\000\011:\000\000\000\000\004E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\004E\000\000\000\000\000\000\000\000\004E\004I\000\000\000n\004I\000r\004I\000z\004I\004E\004I\000\000\000\000\000\000\000~\004I\004I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004I\004E\000\157\000\000\004E\004E\000\000\000\000\004E\0112\004I\004I\000\000\004E\004E\000\000\004I\000\000\004E\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000\000\000\000\001\137\004I\000\000\000\000\004I\000\157\000\157\000\000\000\000\004I\004I\000\000\000\000\004I\000\130\001\137\000\000\000\000\000\000\001\137\000\000\004I\000\000\000\000\001\137\004I\004I\000\000\000\000\000\000\001\137\000\000\000\000\001\137\001\137\004I\001\137\001\137\000\000\000\000\000\000\000\000\001\137\000\000\000\000\004I\001\137\000\000\000\000\001\137\000\000\001\137\001\137\000\000\004I\000\000\000\000\000\000\000\000\004I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004I\000\000\000\000\000\000\001\137\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000\000\000\000\000\000\004I\000\000\000\000\004I\004I\000\000\000\000\004I\000\000\000\000\000\000\000\000\004I\004I\000\000\000\000\000\000\004I\000\000\001\137\001\137\001\206\000\000\001\137\001\137\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000\000\000\000\001\137\001\137\001\137\001\137\000\000\000\000\000\000\000\000\002z\001\137\001\137\000\000\001\137\001\137\001\137\t\253\t\253\t\253\t\253\000\000\t\253\000\000\t\253\t\253\000\000\t\253\000\000\t\253\000\000\t\253\000\000\t\253\t\253\t\253\t\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\253\t\253\t\253\000\000\000\000\000\000\000\000\t\253\000\000\000\000\000\000\000\000\t\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\241\t\253\000\000\000\000\000\000\000\000\000\000\000\000\t\253\000\000\000\000\000\000\000\000\t\253\000\000\000\000\000\000\000\000\011\241\000\000\000\000\000\000\t\253\000\000\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\011\241\000\000\000\000\000\000\000\000\000\000\011\241\011\241\000\000\t\253\nR\000\000\t\253\n^\000\000\000\000\011\241\000\000\000\000\011\241\000\000\011\241\000\000\t\253\000\000\000\000\000\000\000\000\t\253\000\000\t\253\000\000\000\000\t\253\000\000\t\253\000\000\000\000\000\000\000\000\t\253\000\000\011\241\t\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149\000\000\000\000\000\000\000\000\000\000\000\000\t\253\000\000\nj\017b\t\253\n\001\n\001\n\001\n\001\000\000\n\001\000\149\n\001\n\001\000\000\n\001\000\000\n\001\000\000\n\001\011\241\n\001\n\001\n\001\n\001\nn\000\149\011\241\000\000\000\000\000\000\000\000\000\149\000\149\000\000\nv\n\001\n\001\n\001\011\241\000\000\000\000\000\149\n\001\000\000\011*\000\000\000\149\n\001\000\000\000\000\000\000\017\226\000\000\011\241\011\241\000\000\000\000\000\153\000\000\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\000\149\n\001\000\000\000\000\000\000\000\000\n\001\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\000\000\000\000\000\000\000\n\001\000\149\000\000\n\001\000\153\000\000\000\000\011*\0112\000\153\000\000\000\000\000\000\000\000\n\001\000\000\000\000\000\000\000\000\n\001\000\149\n\001\000\000\000\000\n\001\000\000\n\001\000\000\000\000\000\000\000\153\n\001\000\000\000\000\n\001\000\149\000\149\000\000\0002\0006\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\n\001\000\146\000\000\000\150\n\001\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\017\234\000\186\018\006\000\000\0112\000\000\000\000\018\018\000\000\000\000\000\000\000\000\000\190\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\169\018*\000\000\000\000\000\000\000\000\000\153\000\153\000\202\000\000\000\000\000\000\000\000\018V\000\000\000\000\000\000\000\000\011\026\000\000\000\000\004}\000\206\000\000\004}\000R\004}\000\000\004}\000\000\004}\000\000\000\000\011\"\000\000\004}\004}\000\000\000\000\000\169\000\169\000\000\018v\000\000\000\000\018\198\000\000\000\000\004}\000\169\000\000\000\000\011*\000\000\011:\000\000\018\222\000\000\004}\004}\000\000\018\234\000\000\008-\004}\000\000\018\246\000\000\019\002\000\000\000\000\000\000\000\000\019\018\000\000\011J\019\194\000\000\000\000\000\000\004}\000\000\000\000\004}\000\000\000\000\000\000\000\000\004}\004}\000\000\019\206\004}\004}\004\129\019\230\000\000\004\129\000v\004\129\004}\004\129\000\000\004\129\004}\004}\000\000\000\000\004\129\004\129\000\000\000\169\000\000\000\000\004}\000\000\000\000\000\000\0112\000\000\000\000\004\129\000\000\000\000\004}\000\000\000\000\000\000\000\000\000\000\000\169\004\129\004\129\004}\000\000\000\000\000\000\004\129\004}\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\169\004}\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\000\000\004\129\004\129\000\000\000\000\004\129\004\129\004}\000\000\000\000\004}\004}\000\000\004\129\004}\000\000\000\000\004\129\004\129\004}\004}\000\000\000\000\000\000\004}\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\004\129\004\133\000\000\000\000\004\133\000\142\004\133\000\000\004\133\004\129\004\133\000\000\000\000\000\000\000\000\004\133\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\004\129\000\000\000\000\004\129\004\129\000\000\000\000\004\129\000\000\004\133\004\133\004\185\004\129\004\129\004\185\004\133\004\185\004\129\004\185\000\000\004\185\000\000\000\000\000\000\000\000\004\185\004\185\000\000\000\000\000\000\000\000\004\133\000\000\000\000\004\133\000\000\000\000\000\000\004\185\004\133\004\133\000\000\000\000\004\133\004\133\000\000\000\000\000\000\004\185\004\185\000\000\004\133\000\000\000\000\004\185\004\133\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\004\185\000\000\000\000\004\185\000\210\004\133\000\000\000\000\004\185\004\185\000\000\000\000\004\185\004\185\004\133\000\000\000\000\000\000\000\000\004\133\004\185\000\000\000\000\000\000\004\185\004\185\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\004\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\000\000\000\000\004\133\000\000\000\000\004\133\004\133\004\185\000\000\004\133\001\238\000\000\004\185\002B\004\133\004\133\000\000\000\000\000\000\004\133\000\000\004\185\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\004\185\000\000\002\002\004\185\004\185\002\001\002\001\004\185\002b\002j\000\000\000\000\004\185\004\185\002\001\000\000\000\000\004\185\002\"\000\000\000\000\002\n\000\000\002\026\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\002\001\0022\000\000\000\000\002\001\002\001\000\000\000\000\002\018\000\000\000\186\000\000\000}\000\000\000\000\000}\000\000\000\000\000\000\000\000\002\001\000\190\000\000\002\001\002\001\002\001\002\001\000\000\000\000\000\000\001\250\000\000\002\001\002\001\000}\002r\002:\002\001\000\000\000}\000\000\000\000\000\202\000\000\000\000\002\002\000\000\000\000\000}\000}\000\000\000}\000}\000\000\000\000\000\000\000\206\000}\000\000\000\000\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000}\000\000\000\000\000\000\000\000\008\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\162\000\000\000\000\000}\0002\t\182\000F\000b\000\000\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\020\234\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\242\000}\0022\t\166\000\000\000}\000}\000\000\000\000\002\018\000\000\000\186\000\000\000e\000\000\000\000\000e\000\000\000\000\000\000\000\000\000}\000\190\000\000\000}\000}\000}\000}\000\000\000\000\000\000\000e\000\000\000}\000}\000e\000}\002:\000}\000\000\000e\000\000\000\000\000\202\000\000\000\000\002\002\000\000\000\000\000e\000e\000\000\000e\000e\000\000\000\000\000\000\000\206\000e\000\000\000\000\000\000\000e\000\000\000\000\002\n\000\000\002\026\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\162\000\000\000\000\000e\000\000\003\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000e\000\000\000\000\000e\000e\000\000\000\000\002\018\000\000\000\000\000\000\000]\000\000\000\000\000]\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000e\000e\000\000\000\000\000\000\000]\000\000\000e\000e\000]\000e\000e\000e\000\000\000]\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000]\000]\000\000\000\000\000\000\000\000\000]\000\000\000\000\000\000\000]\000\000\000\000\002\n\000\000\000]\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\020\238\000F\000b\000\000\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\020\234\000\150\006\150\000\154\000\174\000\000\000\182\006\154\020\242\000]\000]\000\000\000\000\000]\000]\000\000\000\000\002\018\000\000\000\186\000\000\000a\000\000\000\000\000a\000\000\000\000\000\000\000\000\000]\000\190\000\000\000]\000]\000]\000]\000\000\000\000\000\000\000a\000\000\000]\000]\000a\000]\000]\000]\000\000\000a\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000\000\000\000\000\000\000\206\000a\000\000\000\000\000\000\000a\000\000\000\000\002\n\000\000\000a\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\003\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000a\000\000\000\000\000a\000a\000\000\000\000\002\018\000\000\000\000\000\000\000q\000\000\000\000\000q\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\000\000\000\000\001\250\000\000\000a\000a\000q\000a\000a\000a\000\000\000q\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000q\000q\000\000\000q\000q\000\000\000\000\000\000\000\000\000q\000\000\000\000\000\000\000q\000\000\000\000\002\n\000\000\002\026\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\0002\006B\006J\000b\000\000\000f\000\000\006N\000\134\000\000\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000q\000q\000\000\000\000\000q\000q\000\000\000\000\002\018\000\000\000\186\000\000\000i\000\000\000\000\000i\000\000\000\000\000\000\000\000\000q\000\190\000\000\000q\000q\000q\000q\000\000\000\000\000\000\001\250\000\000\000q\000q\000i\000q\000q\000q\000\000\000i\000\000\000\000\006R\000\000\000\000\002\002\000\000\000\000\000i\000i\000\000\000i\000i\000\000\000\000\000\000\000\206\000i\000\000\000\000\000\000\000i\000\000\000\000\002\n\000\000\002\026\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000\000\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000i\000\000\000\000\000i\000i\000\000\000\000\002\018\000\000\000\000\000\000\000m\000\000\000\000\000m\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\000\000\000\000\001\250\000\000\000i\000i\000m\000i\000i\000i\000\000\000m\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000m\000m\000\000\000m\000m\000\000\000\000\000\000\000\000\000m\000\000\000\000\000\000\000m\000\000\000\000\002\n\000\000\002\026\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000m\000\000\000\000\000m\000m\000\000\000\000\002\018\000\000\000\000\000\000\000u\000\000\000\000\000u\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000m\000m\000m\000\000\000\000\000\000\001\250\000\000\000m\000m\000u\000m\000m\000m\000\000\000u\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000u\000u\000\000\000u\000u\000\000\000\000\000\000\000\000\000u\000\000\000\000\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\0022\000\000\000\000\000u\000u\000\000\000\000\002\018\000\000\000\000\000\000\001\238\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000u\000\000\000\000\000u\000u\000u\000u\000\000\000\000\000\000\001\250\000\000\000u\000u\000\133\000u\000u\000u\000\000\000\133\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000\133\000\133\000\000\000\133\002j\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\0022\000\000\000\000\000\133\000\133\000\000\000\000\002\018\000\000\000\000\000\000\001\238\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\133\000\133\000\133\000\133\000\000\000\000\000\000\001\250\000\000\000\133\000\133\000y\002r\002:\000\133\000\000\000y\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000y\000y\000\000\000y\000y\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\0022\000\000\000\000\000y\000y\000\000\000\000\002\018\000\000\000\000\000\000\001\238\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000y\000y\000y\000\000\000\000\000\000\001\250\000\000\000y\000y\000\129\000y\002:\000y\000\000\000\129\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000\129\000\129\000\000\000\129\002j\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\004\153\000\000\000\000\004\153\000\000\004\153\000\000\004\153\000\000\004\153\000\000\000\000\000\000\000\000\004\153\004\153\000\000\000\000\000\000\000\000\000\000\000\129\0022\000\000\000\000\000\129\000\129\004\153\000\000\002\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\153\004\153\000\000\000\000\000\129\000\000\004\153\000\129\000\129\000\129\000\129\000\000\000\000\000\000\000\000\000\000\000\129\000\129\000\000\000\129\002:\000\129\004\153\000\000\000\000\004\153\005\226\000\000\000\000\000\000\004\153\004\153\000\000\000\000\004\153\004\153\005\129\000\000\000\000\005\129\000\000\005\129\004\153\005\129\000\000\005\129\004\153\004\153\000\000\000\000\005\129\005\129\000\000\000\000\000\000\000\000\004\153\000\000\005\129\000\000\000\000\000\000\000\000\005\129\000\000\000\000\004\153\000\000\005\129\005\129\000\000\000\000\000\000\005\129\005\129\004\153\000\000\000\000\000\000\005\129\004\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\153\000\000\000\000\000\000\005\129\000\000\005\129\000\000\000\000\005\129\002\150\000\000\000\000\005\129\005\129\002\150\000\000\000\000\005\129\005\129\004\153\005\129\000\000\004\153\004\153\005\129\005\129\004\153\000\000\000\000\005\129\005\129\004\153\004\153\000\000\005\129\000\000\004\153\000\000\000\000\005\129\000\000\000\000\000\000\000\000\005\129\000\000\000\000\000\000\000\000\005\129\000\000\000\000\000\000\005\129\000\000\000\000\000\000\000\000\005\129\000\000\000\000\000\000\000\000\005\129\000\000\000\000\000\000\005\129\000\000\000\000\000\000\n\198\005\129\000\000\000\000\000\000\003i\000\000\003i\000\000\000\000\003i\000\000\000\000\000\000\000\000\000\000\005\129\000\000\000\000\005\129\005\129\005\129\000\000\005\129\005\129\005\129\003i\000\000\005\129\005\129\000\000\000\000\000\000\005\129\005\129\003i\003i\000\000\005\129\003i\003i\000\000\000\000\000\000\000\000\003i\000\000\003i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003i\003i\000\000\000\000\003i\003i\003i\000\000\003i\003i\000\000\003i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\161\000\000\000\000\001\161\003i\003i\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\000\000\000\000\000\000\000\000\001\161\000\000\000\000\003i\001\161\000\000\000\000\000\000\000\000\001\161\003i\000\000\003i\000\000\003i\001\161\000\000\000\000\001\161\001\161\000\000\001\161\001\161\000\000\003i\000\000\000\000\001\161\000\000\003i\000\000\001\161\000\000\000\000\001\161\003i\001\161\001\161\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\000\000\000\000\003q\003q\003q\003q\000\000\003q\000\000\003q\003q\001\161\003q\001\161\003q\000\000\003q\000\000\003q\003q\003q\003q\000\000\001\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\238\000\000\000\000\003q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003q\001\161\001\161\007~\000\000\001\161\000\000\000\000\000\000\001\161\001\030\000\000\t\226\000\000\000\000\t\230\000\000\000\000\000\000\000\000\000\000\003q\000\000\000\000\001\161\000\000\001\161\003q\000\000\000\000\000\000\001*\007\134\001\161\001\161\003q\001\161\001\161\001\161\000\000\t\234\n\146\000\000\000\000\n\166\n\190\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\n\001^\000\000\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\003q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\001\030\000\000\t\226\000\000\000\000\t\230\n*\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\n\194\000\000\n\222\000\000\003q\000\000\001*\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\t\234\n\146\n2\000\000\n\166\n\190\000\000\000\000\011\186\000\000\001R\n6\001V\000\000\000\000\000\000\000\000\001\154\000\000\000\000\n\n\001^\000\000\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\001\030\000\000\t\226\000\000\000\000\t\230\n*\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\n\194\000\000\n\222\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\t\234\n\146\n2\000\000\n\166\n\190\000\000\000\000\n\230\000\000\001R\n6\001V\000\000\000\000\000\000\000\000\001\154\000\000\000\000\n\n\001^\000\000\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\001\030\000\000\t\226\000\000\000\000\t\230\n*\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\n\194\000\000\n\222\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\t\234\n\146\n2\000\000\n\166\n\190\000\000\000\000\005\021\000\000\001R\n6\001V\000\000\000\000\000\000\000\000\001\154\000\000\012\013\n\n\001^\012\013\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\000\000\000\000\012\013\000\000\000\000\000\000\012\013\000\000\000\000\000\000\003V\006\254\n\030\000\000\000\000\000\000\n\"\012\013\000\000\000\162\000\000\012\013\000\000\012\013\012\013\000\000\000\000\003^\n*\000\000\003j\000\000\000\000\012\013\000\161\005\169\012\013\n\194\012\013\n\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\011\026\000\000\n2\000\000\000\000\000\000\000\000\012\013\001\189\000\000\000\000\n6\000\000\000\000\000\000\011\"\000\000\001\154\000\000\012\013\000\000\000\161\000\161\000\000\000\000\003v\000\000\000\000\000\000\000\000\001\030\000\161\t\226\000\000\011*\t\230\011:\000\000\000\000\000\000\000\000\000\000\000\000\012\013\012\013\000\000\012\013\000\000\003z\000\000\012\013\001*\000\000\000\000\000\000\000\000\000\000\000\161\003\130\000\000\t\234\n\146\012\013\000\000\n\166\n\190\000\000\012\013\012\013\000\000\001R\000\000\001V\012\013\000\000\000\000\000\000\012\013\012\013\012\013\n\n\001^\000\000\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\161\000\000\000\000\000\000\000\000\001\137\000\000\0112\001\137\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\000\000\n\"\000\161\000\000\000\162\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\n*\000\000\001\137\000\000\000\161\000\161\000\000\005\169\001\137\000\000\000\000\n\222\000\000\000\000\001\137\001\137\000\000\000\000\000\000\000\000\007\178\n.\000\000\008\002\001\137\000\000\n2\001\137\000\165\001\137\001\137\000\000\001\201\000\000\000\000\n6\000\000\000\000\007\186\000\000\000\000\001\154\002\017\000\000\000\000\000\000\011\026\002\017\000\000\000\000\001\137\000\000\001\137\007\194\000\000\000\000\002\017\002\017\000\000\008\018\008\026\011\"\000\000\000\000\000\000\002\017\000\000\000\165\000\165\007\226\000\000\000\000\007\202\000\000\007\218\002\017\000\000\000\165\000\000\000\000\011*\000\000\011:\000\000\000\000\001\137\001\137\001\198\000\000\001\137\001\137\000\000\000\000\001\137\000\000\007\234\000\000\002\017\000\000\000\000\000\000\000\000\000\000\011J\000\000\001\137\000\000\002\017\001\137\001\137\000\000\001\137\000\000\000\000\000\000\000\000\002\134\001\137\001\137\000\000\001\137\001\137\001\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\007\242\000\000\000\000\002\017\000\000\000\000\000\000\007\210\000\165\000\000\000\000\001%\000\000\000\000\001%\0112\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\002\017\000\000\000\000\000\165\000\000\007\186\000\000\002\017\002\017\001%\008\"\007\250\002\017\000\000\001%\000\000\000\000\000\000\000\165\000\165\007\194\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\000\000\000\000\001%\000\000\000\000\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\234\001\013\001%\000\000\001\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\001\013\000\000\000\000\000\000\001\013\000\000\000\000\000\000\000\000\001\013\000\000\000\000\000\000\000\000\000\000\007\194\001%\007\242\001\013\001\013\001%\001\013\001\013\000\000\007\210\000\000\000\000\001\013\000\000\000\000\000\000\001\013\000\000\000\000\007\202\000\000\007\218\001\013\000\000\001%\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\007\250\001%\000\000\000\000\000\000\001\013\001\005\001\013\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\013\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\005\001\013\001\013\001\005\001\005\001\013\001\005\001\005\000\000\007\210\000\000\000\000\001\005\000\000\000\000\000\000\001\005\000\000\000\000\007\202\000\000\001\005\001\005\000\000\001\013\000\000\001\013\000\000\000\000\000\000\000\000\000\000\000\000\001\013\001\013\000\000\001\013\001\013\001\013\000\000\000\000\000\000\001\005\001\t\001\005\000\000\001\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\000\000\000\001\t\000\000\000\000\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\001\t\001\005\001\005\001\t\001\t\001\005\001\t\001\t\000\000\007\210\000\000\000\000\001\t\000\000\000\000\000\000\001\t\000\000\000\000\007\202\000\000\001\t\001\t\000\000\001\005\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\001\005\001\005\000\000\001\005\001\005\001\005\000\000\000\000\000\000\001\t\001\025\001\t\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001\025\000\000\000\000\000\000\000\000\001\025\000\000\000\000\000\000\000\000\000\000\007\194\001\t\001\t\001\025\001\025\001\t\001\025\001\025\000\000\007\210\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\000\000\007\202\000\000\007\218\001\025\000\000\001\t\000\000\001\t\000\000\000\000\000\000\000\000\000\000\000\000\001\t\001\t\000\000\001\t\001\t\001\t\000\000\000\000\000\000\007\234\001\017\001\025\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\007\194\001\025\001\025\001\017\001\017\001\025\001\017\001\017\000\000\007\210\000\000\000\000\001\017\000\000\000\000\000\000\001\017\000\000\000\000\007\202\000\000\007\218\001\017\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\001\025\001\025\001\025\000\000\000\000\000\000\001\017\001\021\001\017\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\007\194\001\017\001\017\001\021\001\021\001\017\001\021\001\021\000\000\007\210\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\000\000\007\202\000\000\007\218\001\021\000\000\001\017\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\017\001\017\001\017\000\000\000\000\000\000\007\234\001\029\001\021\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\007\194\001\021\001\021\001\029\001\029\001\021\001\029\001\029\000\000\007\210\000\000\000\000\001\029\000\000\000\000\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001\029\000\000\001\021\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\021\000\000\001\021\001\021\001\021\000\000\000\000\000\000\007\234\007\178\001\029\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001-\000\000\000\000\000\000\000\000\001-\000\000\000\000\000\000\000\000\000\000\007\194\001\029\007\242\001-\001-\001\029\001-\008\026\000\000\007\210\000\000\000\000\001-\000\000\000\000\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001-\000\000\001\029\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\029\000\000\001\029\001\029\001\029\000\000\000\000\000\000\007\234\007\178\001-\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001!\000\000\000\000\000\000\000\000\001!\000\000\000\000\000\000\000\000\000\000\007\194\001-\007\242\001!\001!\001-\001!\001!\000\000\007\210\000\000\000\000\001!\000\000\000\000\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001!\000\000\001-\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\001-\001-\000\000\008\"\007\250\001-\000\000\000\000\000\000\007\234\007\178\001!\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\007\194\001!\007\242\001)\001)\001!\001)\008\026\000\000\007\210\000\000\000\000\001)\000\000\000\000\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001)\000\000\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\001!\001!\000\000\001!\007\250\001!\000\000\000\000\000\000\007\234\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\030\000\000\001\"\000\000\000\000\001&\000\000\000\000\000\000\000\000\000\000\001)\007\242\000\000\000\000\001)\000\000\000\000\000\000\007\210\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\000\000\001>\001B\000\000\001J\001)\t\222\001)\000\000\000\000\000\000\001R\000\000\001V\001)\001)\000\000\001)\007\250\001)\000\000\001Z\001^\000\000\n\206\001b\001f\001j\000\000\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\000\000\001~\000\000\000\000\000\162\001\030\000\000\001\"\000\000\000\000\001&\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\008>\000\000\001\138\008=\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\001\142\001>\001B\000\000\001J\001\146\000\000\000\000\008=\000\000\008=\001R\000\000\001V\001\150\000\000\000\000\000\000\000\000\000\000\001\154\001Z\001^\000\000\000\000\001b\001f\001j\000\000\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\000\000\001~\000\000\000\000\000\162\001\030\000\000\001\"\000\000\000\000\001&\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\008=\000\000\001\138\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\001\142\001>\001B\000\000\001J\001\146\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\001\150\000\000\000\000\000\000\000\000\000\000\001\154\001Z\001^\000\000\000\000\001b\001f\001j\000\000\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\000\000\001~\000\000\000\000\000\162\001\030\000\000\001\"\000\000\000\000\001&\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\014\186\000\000\001\138\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\001\142\001>\001B\000\000\001J\001\146\000\000\001\030\000\000\001\"\000\000\001R\001&\001V\001\150\000\000\000\000\000\000\000\000\000\000\001\154\001Z\001^\000\000\000\000\001b\001f\001j\001*\001n\001r\001.\001v\000\000\000\000\000\000\000\000\001>\004\226\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\001R\001z\001V\000\000\000\000\001~\000\000\000\000\000\162\000\000\001Z\001^\000\000\000\000\001b\001f\001j\001\134\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\001\142\000\000\000\000\001~\000\000\001\146\000\162\001\030\000\000\001\"\000\000\000\000\001&\000\000\001\150\001\134\000\000\000\000\000\000\000\000\001\154\000\000\000\000\000\000\001\138\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\001\142\001>\001\130\000\000\001J\001\146\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\001\150\000\000\000\000\000\000\000\000\000\000\001\154\001Z\001^\000\000\000\000\001b\001f\001j\000\000\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\003\202\001~\000\000\000\000\000\162\003a\000\000\003a\000\000\000\000\003a\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\000\000\000\000\000\000\001\142\003a\003a\000\000\003a\001\146\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\001\150\000\000\000\000\000\000\000\000\000\000\001\154\003a\003a\000\000\000\000\003a\003a\003a\000\000\003a\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\000\000\000\000\000\000\003a\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\003a\000\000\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\001\030\000\000\0012\004!\004!\0016\000\000\004!\000\000\003a\004!\000\000\000\000\004!\003a\000\000\004!\000\000\004!\004!\000\000\001*\000\000\003a\001.\000\000\000\000\000\000\000\000\003a\001:\001N\000\000\001J\000\000\000\000\000\000\000\000\000\000\004!\001R\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\001^\000\000\000\000\003\026\001f\001j\004!\003\030\003\"\000\000\003&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\004!\003*\000\000\004\189\004!\003.\004!\000\000\000\162\000\000\000\000\001\030\000\000\0012\004!\000\000\0016\0036\004!\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\001*\004!\004!\001.\000\000\000\000\003:\000\000\000\000\001:\004\202\003>\001J\000\000\000\000\000\000\000\000\000\000\000\000\001R\003B\001V\000\000\000\000\000\000\000\000\001\154\000\000\000\000\003\022\001^\000\000\000\000\003\026\001f\001j\000\000\003\030\003\"\000\000\003&\000\000\000\000\000\000\000\000\001\030\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\003*\000\000\000\000\000\000\003.\000\000\000\000\000\162\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\0036\000\000\000\000\001:\0032\000\000\001J\000\000\000\000\001\030\000\000\006\202\000\000\001R\006\206\001V\000\000\000\000\000\000\000\000\000\000\003:\000\000\003\022\001^\000\000\003>\003\026\001f\001j\001*\003\030\003\"\000\000\003&\003B\000\000\000\000\000\000\006\210\008*\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001R\003*\001V\000\000\000\000\003.\000\000\000\000\000\162\000\000\006\234\001^\000\000\000\000\006\238\001f\001j\0036\006\242\006\246\000\000\006\250\000\000\000\000\000\000\000\000\001\030\000\000\006\202\000\000\000\000\006\206\000\000\000\000\000\000\000\000\006\254\007\002\003:\000\000\000\000\007\006\000\000\003>\000\162\000\000\000\000\001*\000\000\000\000\000\000\000\000\003B\007\014\000\000\000\000\006\210\006\214\001\154\000\000\000\173\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\000\000\000\007\018\000\000\006\234\001^\011\026\007\022\006\238\001f\001j\000\000\006\242\006\246\000\000\006\250\007\026\000\000\000\000\000\000\000\000\011\"\001\154\000\000\000\000\000\000\000\000\000\173\000\173\000\000\006\254\007\002\000\000\000\000\000\000\007\006\000\000\011B\000\162\001\030\011*\006\202\011:\000\000\006\206\000\000\000\000\007\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\011J\000\000\000\000\000\000\000\000\007\018\006\210\007\n\000\000\000\000\007\022\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\007\026\000\000\000\000\000\000\000\000\000\000\001\154\006\234\001^\000\000\000\000\006\238\001f\001j\000\000\006\242\006\246\011R\006\250\000\000\000\000\000\000\000\000\001\030\0112\t\226\000\000\000\000\t\230\000\000\000\000\000\000\000\000\006\254\007\002\000\000\000\173\000\000\007\006\000\000\000\000\000\162\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\007\014\000\173\000\173\t\234\t\246\000\000\000\000\011\018\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\000\000\000\007\018\000\000\n\n\001^\011\026\007\022\n\014\001f\001j\000\000\n\018\n\022\000\000\n\026\007\026\000\000\000\000\000\000\000\000\011\"\001\154\000\000\000\000\000\000\000\000\000\189\011j\000\000\006\254\n\030\000\000\000\000\000\000\n\"\000\000\011B\000\162\001\030\011*\t\226\011:\000\000\t\230\000\000\000\000\n*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\011J\000\000\000\000\000\000\000\000\n.\t\234\n&\000\000\000\000\n2\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\n6\000\000\000\000\000\000\000\000\000\000\001\154\n\n\001^\000\000\000\000\n\014\001f\001j\000\000\n\018\n\022\011R\n\026\000\000\000\000\000\000\000\000\001\030\0112\t\226\000\000\000\000\t\230\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\189\000\000\n\"\000\000\000\000\000\162\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\n*\011r\011Z\t\234\n\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\000\000\000\n.\000\000\n\n\001^\000\000\n2\n\014\001f\001j\000\000\n\018\n\022\000\000\n\026\n6\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\000\000\000\000\0002\0006\000F\000b\n*\000f\000\000\000j\000\134\007\169\000\138\017r\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\000\000\000\000\n2\007\169\000\186\017v\000\000\000\000\000\000\000\000\000\000\n6\000\000\007\169\007\169\019\234\000\000\001\154\000\000\007\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\001\153\000\000\000\202\000\000\007\169\000\000\000\000\018V\000\000\007\169\000:\017\134\000:\007\169\007\169\001\153\000\206\000\000\000\000\001\153\000\000\007\169\000\000\000\000\000\000\007\169\007\169\000\000\000\000\000\000\001\153\000\000\000\000\000\000\001\153\007\169\001\153\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\169\001\153\000\000\000\000\001\153\000\000\001\153\000\000\000\000\007\169\000\000\000\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\169\000\000\017\138\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\007\169\000\000\000\000\007\169\007\169\000\000\000\000\007\169\000\000\000\000\000\000\000\000\007\169\007\169\000\000\005\129\000\000\007\169\005\129\000\000\001\153\003\166\005\129\001\153\005\129\000\000\000\000\001\153\000\000\005\129\005\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\001\153\001\153\000\000\000\000\000\000\000\000\003\174\000\000\000\000\000\000\001\153\001\153\001\153\000\000\007\169\0002\000\214\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\000\000\000\150\005\129\000\154\000\174\000\178\000\182\003\254\000\000\000\000\004N\000\218\000\000\000\000\007\169\000\000\000\000\000\000\000\000\000\186\000\000\000\000\007\169\000\000\000\000\004\006\007\169\007\169\000\000\002\t\000\190\000\000\000\000\000\000\000\000\000\000\007\169\000\000\000\000\000\000\004\014\000\000\000\000\000\000\002\t\000\000\004^\004f\000\000\000\000\000\000\000\202\000\000\000\000\000\000\007\169\004.\000\230\000\000\004\022\005\129\004&\000\000\000\000\000\000\000\206\000\000\000\000\000\000\007\169\011\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\000\000\000\000\000\000\000\000\011\026\007\169\000\000\000\000\007\169\007\169\002\t\000\237\000\000\000\000\000\237\000\000\000\000\007\169\007\169\011\"\000\000\000\162\007\169\000\000\000\000\000\177\000\177\000\000\000\000\004\006\000\000\000\000\000\000\000\237\004>\011B\000\000\002\t\011*\000\234\011:\004\030\000\000\000\000\004\014\000\000\000\000\000\000\000\237\000\000\000\237\000\237\000\000\002\t\000\000\000\000\000\000\000\000\002\t\002\t\004.\011J\011Y\004\022\000\000\004&\000\000\000\000\004n\004F\002\t\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\000\000\213\011R\000\237\000\000\000\000\000\000\000\000\000\000\0112\000\000\000\000\004\014\000\000\000\000\000\000\000\213\000\000\000\213\000\213\000\205\000\177\000\000\000\205\000\000\000\000\000\000\004>\000\213\000\000\000\237\004\022\000\000\004&\004\030\000\000\000\177\011Z\000\205\000\000\000\000\000\000\000\205\000\000\000\000\000\000\000\237\000\000\000\000\000\000\000\000\000\237\000\237\000\205\000\213\000\000\000\000\000\205\000\000\000\205\000\205\000\237\004F\000\237\000\000\000\000\000\213\000\000\000\000\000\205\000\000\000\000\004\022\000\000\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\209\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\205\000\000\004\030\000\000\000\000\000\000\000\209\000\000\000\000\000\000\000\209\000\000\000\205\000\000\000\213\000\000\000\000\000\000\000\000\000\213\000\213\000\209\000\000\000\000\000\000\000\209\000\000\000\209\000\209\000\213\000\213\000\213\000\000\000\000\000\000\000\000\000\205\000\209\000\000\000\205\004\022\000\000\000\209\004\030\000\225\000\000\000\000\000\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\000\000\000\000\000\205\000\205\004\006\000\209\000\000\000\000\000\225\000\000\000\000\000\000\000\205\000\205\000\205\000\000\000\000\000\209\000\000\004\014\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\225\000\000\000\000\004\022\000\000\004&\000\209\000\000\000\000\000\209\000\000\000\000\000\000\004\030\004\006\000\000\000\000\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\209\0046\000\000\000\000\004\014\000\209\000\209\000\000\000\217\000\000\000\217\000\217\000\000\000\225\000\000\000\209\000\209\000\209\000\000\000\000\000\217\000\000\000\000\004\022\000\000\004&\000\000\000\221\000\000\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\000\000\004\030\004\006\000\217\000\000\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\000\000\217\000\000\004\014\000\225\000\225\000\000\000\221\000\000\000\221\000\221\000\000\000\000\000\000\000\225\000\225\000\225\000\000\000\000\000\221\000\000\000\000\004\022\000\000\004&\000\217\000\000\000\000\000\217\000\000\000\000\000\000\004\030\000\229\000\000\000\000\000\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\0046\000\000\000\000\000\000\000\217\000\217\004\006\000\000\000\000\000\000\000\229\000\000\000\221\000\000\000\217\000\217\000\217\000\000\000\000\000\000\000\000\004\014\000\000\000\000\000\000\000\229\000\000\000\229\000\229\003\254\000\000\000\000\000\245\000\000\000\000\000\000\000\221\004.\000\000\000\221\004\022\000\000\004&\004\030\000\000\000\000\000\000\004\006\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\221\000\000\000\000\000\000\000\000\000\221\000\221\004\014\0046\000\000\000\000\000\245\000\000\000\245\004f\000\221\000\221\000\221\000\000\000\000\000\229\000\000\000\000\004.\000\000\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\254\000\000\000\000\000\233\000\000\000\000\000\000\004>\000\000\000\000\000\229\000\000\0046\000\000\004\030\000\000\000\000\000\000\004\006\000\000\000\000\000\000\000\233\000\000\000\245\000\000\000\229\000\000\000\000\000\000\000\000\000\229\000\229\004\014\000\000\000\000\000\000\000\233\000\000\000\233\000\233\000\229\000\229\000\229\000\000\000\000\000\000\000\000\004>\004.\000\000\000\245\004\022\000\000\004&\004\030\003\254\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\245\000\245\004\006\0046\000\000\000\000\000\241\000\000\000\000\000\000\004n\004F\000\245\000\000\000\000\000\233\000\000\004\014\000\000\000\000\000\000\000\241\000\000\000\241\004f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004.\003\185\000\000\004\022\003\185\004&\004>\000\000\003\185\000\233\003\185\000\000\000\000\004\030\000\000\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233\0046\000\000\000\000\000\000\000\233\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\241\000\000\000\233\004F\000\233\000\000\002-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\004>\000\000\000\000\000\241\000\000\000\000\000\000\004\030\000\000\000\000\002-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\241\000\000\000\000\002-\002-\000\241\000\241\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\000\000\241\004F\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002-\0002\005.\000F\000b\003\185\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\002-\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\002-\000\000\000\000\002-\002-\000\000\000\000\000\000\000\000\000\000\000\190\000\000\002-\002-\000\000\000\000\000\000\002-\000\000\000\000\0002\000\214\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\000\202\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\0052\0056\000\000\000\186\000\000\0002\005.\000F\000b\000\000\000f\000\000\000j\000\134\000\190\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\186\000\000\000\000\000\000\000\230\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\206\000\000\000\000\000\000\000\000\005:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\000\000\000\000\000\002y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\021\182\0056\000\162\000\000\000\000\0002\005.\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\000\000\000\150\000\234\000\154\000\174\000\178\000\182\000\000\000\000\000\000\0002\000\214\000F\000b\000\000\000f\000\000\000j\000\134\000\186\000\138\000\000\000\146\000\000\000\150\002)\000\154\000\174\000\178\000\182\000\190\000\000\000\000\000\000\000\000\000\000\021\186\000\000\000\000\000\000\000\000\000\000\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\190\000\000\000\000\002q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\0052\0056\000\000\000\000\000\000\000\202\000\000\000\000\011\018\000\000\000\000\000\230\000\000\0002\005.\000F\000b\000\000\000f\000\206\000j\000\134\000\000\000\138\000\000\000\146\011\026\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\"\000\000\000\000\000\000\000\186\000\000\000\185\011j\000\000\000\000\000\000\000\000\000\000\005B\000\000\000\190\011B\000\000\000\162\011*\000\000\011:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\000\000\000\000\000\000\000\011J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\021\182\0056\000\000\000\000\000\000\002!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011R\000\000\000\000\000\000\000\000\000\000\000\000\0112\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\194\000\000\000\000\000\000\000\185\011Z")) + ((16, "\000\240\000\193\000\000\000\000\n\228\000\193\000\000\000\000\000'\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\240\000\000\000u\027<\000\000\019x\019x\000\000\000\000/\002\019x\000\000@\218\019x\000\000\000\000\019x\000\000\019x\000\000\000\179\000g\019x\000\000\019x\000\000\000\000\000\000/\204\019x\000\000A,\019x\000\000\000\000\019x\000\000\019x\000\000\000u\000\005\019x\000\000\019x\000\000\019x\000\000A`\019x\000\000\000\000\019x\000\000\019x\000\000\000y\000\000\000\000\019x\000\000\019x\000\000\000\000\019x\000\000\019x\000\000\000\130\000\240\019x\000\000\027<@\218L\232\000\000\000\000L>\001\1840\220\001@L\232\000\000\001\004\019x\000\000L\232\000\000\000y\000x0\194\000\000\000\000>\174\000\000BH\000\000B\1600\1940\194\020\230\020\230BH\020\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?,0\194\000\000\000\000?,\000\000?,\000\0000\194\000\000\000\000\000\000\025$\000y\000\000\020\230\000\000-\0220\194\031J0\194\000\000\000\000\000\000\000\000\000\000\000\000 \1500\194!\1700\194\"\0120\194# 0\194\000\0000\194\000\0000\194#\1300\194$\1500\194$\2480\194&\0120\194&n0\194'\1300\194\001J0\194\000\000\000\000\000\000\000\000\000\0000\194'\2280\194(\2480\194)Z0\194\000\000\000\0000\194\000\000\000\000\002\n\000\000\000\000\000\000\000\000\018\182\019x\000\000\001\002\019x\000\000C\\\019x\000\000\000\000\019x\000\000\019x\000\000\002\160\002\240\019x\000\000\019x\000\000\001\244\019x\000\000Ch\019x\000\000\000\000\019x\000\000\019x\000\000\003\148\004\n\019x\000\000\019x\000\000\019x\000\000Cx\019x\000\000\000\000\019x\000\000\019x\000\000\000y\019x\000\000\019x\000\000\019x\000\000\019x\000\000\003\242\004V\019x\000\000A,L\232\004\002\019x\000\000N\182M0\000\000\002\186\005J\000y\004\166\005rN\182\000\000\000\000\000\199\028\014\000\000\000\000\000\000\000\000\001`\005v\000\\\005\252N\182\001<\029|\000\000\000\000\005B\000\000\005v\006JN\182\005\166\000\000\000\000\000\000\000\199\000\000\005\172\006\160\000\000\006\162\000\000\018\182\001JL\232\005\198\019x\000\000A`L\232\006\002\019x\000\000\000\000\000y\006\250\000\000\000\000\000\000\001\130\020\230\000\0000\194\006\024\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\006\"\000\000\000\000\006(\000\000\0062BH\000\000\000\000\000\000\000\000\000\000\000\000D\1340\194\000\000D\134\000\000D\134BH\000\000\000\000E\028\000y\000\000\020\230\0066\000\0000\194\006:\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\2140\194\000\0000\194\000\000\000\000\006@\000\000\000\000?\170\007\0000\194\006\202\000\000\000\000BH\000\000\000\000\000\000\000\000\000\000\000\0004JBH5\190BH72BH8\166BH\000\000BH\000\000BHOFBHPNBHP^BHP\198BHQrBHQ\1780\194\006\130BH\000\000BHQ\242BHR2BHRr\006\\\000\000\006j\000\000\000\0210\194\000\000\000\021\000\000\000\000\000\017\027<\000\000\000\017\000\000\000\000\006j0\194\000\000\006t\000\000\020\230\006~\000\000\000\000\007R\000\000\020\230\006\130\000\000\000\000\006\134\000\000\000\000\000x\000\000\007x\000\000C\\L\232\006\142\019x\000\000\000\000\007 \000\000\006\158\019x\000\000\000\000\000\\\027<\000\000\027<\000\000\006\144\000\000\000\\\000\000\017&\028V\019N\000\000\003\154\019N\000\000\019N\019N\000\000\000\000\019N\000\000\019N\000\000\006\212\007\002\019N\000\000\019N\000\000\006\186\019N\000\000\019t\019N\000\000\000\000\019N\000\000\019N\000\000\006\216\007\006\019N\000\000\019N\000\000\019N\000\000\019x\019N\000\000\000\000\019N\000\000\019N\000\000\000y\019N\000\000\019N\000\000\019N\000\000\019N\000\000\006\220\007\n\019N\000\000\027<\006\186\000\000\019bL\232\006\182\019N\000\000\000\000\0002\000\000\000r\0002\000\000\000\000\000\000\007\168\000\000\004&L\232\006\190\019N\000\000\019xL\232\006\200\019N\000\000\000\000!L\019N\000\000\006\240\019N\000\000\b\0200\194\000\000\007\232\000\000\000\000\000y\000\000\026P\007\156*\200\000\000\007\152*\200\000\000\000\190\000\000\000\000\021dF\1560\"F\156;\004F\156;\222F\156\000\000F\156\000\000F\156C\244F\156J\208F\156N\178F\156R\242F\156S`F\156S\132F\156S\148F\156T\024F\156T|\000\000\007x+\220\000\000,f,f\007z,f-d,f\000\000\007~,f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007r\000\000\000\000\007t\000\000\bd\000\000\000y\000\000\001J\bf\000\000\000\246\b6\000y\007\134\bPN\182\007\154\002<\000\0000\194\b\130\000\000\006.\007\218\bdN\182\007\160\b\142\000\000\002\0240\194\b\148\000\000\b\150\000\000\018\182\000y\004@0\194\b\152\000\000\b\154\000\000\000y\004H0\194\b\156\000\000\b\162\000\000\002\166\007\236\007$\000\000F\244G~\020\230\007\196\000\000\007\198G~\000\000\000\000\000\000\000\000\000\000\000\000G\2140\194\000\000G\214\000\000G\214G~\000\000\000\000\028\212\000y\000\000\020\230\007\200\000\0000\194\007\210\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.d0\194\000\0000\194\000\000\007\218\000\000\000\021\000\000\000\000\000\000\000\000\000\0001\194G~2\"G~36G~3\150G~\000\000G~\000\000G~4\170G~5\nG~6\030G~6~G~7\146G~7\2420\194\b\004G~\000\000G~9\006G~9fG~:z\020\230\007\220\000\000\000\000=Z\000\000\b\210\000\000\001l\b\1680\194\bn\000\000\b\1780\194\b~\000\000\002\156\000\000\007$\007$\001l\000\000\001l\000\000\017&\007$\007$\000\000\000\000\000\000\000\000\000\000\000\000\b\2000\194\b\014\022\234\023\194\000y\b\246\000\000\b\216=\216\b\250=\216\b\254=Z\b\026\022\234\022\234\000y\002\228\001J\000\000\000\000\000\000\002\228\000\000\0030\000y\000\000\000\000\b\028\000\000\000\000\000\000\t\004\000\000\t\006\000\000\000\000\t@\b\2340\194\b&\t\014\000\000\b\246\020\230\b2\022\234\000\000\000\000\bf\000\000\000\021\000\000\005\182\000\000\000\000\001l\000\000\b\190\000\000\012\220\003\028\000\000\012\220\000\000\000\000\026P\000\000\003\028\000\000\000\000\n\000\000\000\012\220\000\000\t\012\020\230\bH\t2\000\000\0002\000\000\t\b\000y\bX\t N\182\b\\\004\b\000\0000\194\tD\000\000\t*N\182\bh\tP\000\000\005\0260\194\tT\000\000\tV\000\000\018\182\000y\005\1440\194\tX\000\000\t^\000\000\000\000\000\000\n\000\000\000\000\000\003\028\000\000\007$\000\000\001\194\000\000\000\000\002l\023\194\000\000\002l\000\000\000\000\b~\000\000\000\021\000\003\022\234\000\000\004H\000Q\004H\000\000\002\030\000\000\007$\000\000\007$\000\000\000\000\000\000\bx\000\000\000\000\b\132\000\000\002\134\005\182\002\208\004H\000\000\000\000\000\000\007\188\000\000\007$\000\000\002\134\000\000\000\000\005\148\000Q\017&\000\000\002\030\000\000\b\146\017&\000\000\000\000\b\146\000\000\000\000\b\132\000\000\000\000\b\138\000\000\003@\007$\000\000\003@\000\000\000\000\t\b\000\000\003\028\000\000\007$\000\000\000\000\000\000\018\136>V\000\000\tt\000\000\018\136\000\000\tv\000\000\tx\000\000\028\014\000y\004\170\000\0000\194\t|\000\000\003\006\tL\000y\b\156\tfN\182\b\162\004\252\000\0000\194\t\140\000\000\005\000\000\0000\194\t\142\000\000\018\182\000y\005\014\000\0000\194\t\174\000\000\004&\018\136\000\000\026P\005v\000\0000\194\t\190\000\000\000\000\000\000\000\250\000\000\t\160\020\230\b\220\t\196\000\000\004t\000\000\t\148\000y\b\228\t\172N\182\b\232\005\154\000\0000\194\t\208\000\000\006l\000\0000\194\t\212\000\000\018\182\000y\006\144\000\0000\194\t\214\000\000\004&\000\000\000\000\b\250\000\000\000\250\005\234\t|\000\000\000\000\000\000\t\128\000\000\005\028\002\156\000\000\017&\t\214\000\000\000\0000\194\t2\007$\000\000\t\004\000\000\002\166\000\0000\220\000\000\000\000\004B\017&\000\000\017&\000\000\b\242\000\000\004B\000\0000\194\004D0\194\000\0000\194\000\000\b\244\000\000\004D\000\0000\194\004D\b\248\000\000\022\234\004\190\022\234\000\000\022\234\000\000\b\252\000\000\004\190\000\0000\194\004D\b\254\000\0000\220\005\2340\220\000\0000\220\000\000\t\000\000\000\005\234\000\0000\194\004D\t\002\000\000\000\000\025$\000\000\000\000\tt:\250\000\000\000\000\000\000\000\000\000\000\tH\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206:\250\000\000\000v\000~\000\000\tJ\000\193\000\000\000\000\000\000\002\176\000~\000\000\000\000\000\000\000\000\t\168\000\000\000\000\000\000\000\000\028\212\030B\000\000Hp\000\000:\250\000\000\001~:\250\000\000\003H\004`\004`\000\000\000\146\004`\000\000\t\"\000\000\000\000\000\000\000\000\t\174\000\000\030\192\000\000 @:\250\000\000\000}:\250\000\000\t\178\000\000:\250\t\180\000\000I\216;\192\t\182\000\000\t\184\000\000J\138@^:\250\000\000\000\000\t8:\250\t\200\000\000\t\202\000\000\t\204\000\000\027<\000\000\004\204\027<\000\000\tD\019N\000\000\002\022:\250\000\000\002\206:\250\000\000\000\020\nN\000\000\nR\000\000:\250:\250\tT\000\000\000\000\000\000\000\000\000\000\000\000\t\224\000\000J\226:\250\t\226\000\000\t\234\000\000:\250\t\242\000\000:\250\t\152\000\193\000\000\000\000\004\026:\250\000\000\000\020\000\000\n\000\000\000:\250\n\002\000\000:\250\n\004\000\000H\200;\192:\250\t\130:\250\n\012\000\000\n\014\000\000Iz\000\000\000\000\005\200:\250\000\000\005\148\006\012\004`\t\134\000\000\000\000\001\212\001\212\000\000\000\000\000\000\004\222\001\212\000\000\t\136\000\000\000\000\000\000\000\000\000\000\000\000:\250\000\000\006\024:\250\000\000\000\003\004(\000\193\t\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\022\000\000\n\024\000\000:\250\n\026\000\000K\148:\250\n\028\000\000\n\"\000\000:\250\n$\000\000\022H\t\210Ml\019b\000\000:\250\n2\000\000\n6\000\000\n\006\022H:\250\n:\000\000:\250\n<\000\000\n>\000\000:\250\t\188:\250\nF\000\000\nH\000\000\000\193\t\180\000\000\000\000\025$\000\000\000\000\002\142\n\166\000\000\000\000\000\216\000\000\000\000\000\0000\194\000\000\000\000\000\000\002\218\000\000\002\198\000\000\000\000\000\000\004H0\2200\2200\220\000\000\000\246\000\246\000\246\000\246\000\000\000\000\000\000\000\000\000\000\000\000\001l\017&\n\156\014J\001R\000\000\000\000\002\166\000\000\n\000\000\000*\200\t\198\000\000\001l\017&\t\208\015\184\000\000\001l\014J\000\000\000\000\000\0000\220\000\246\000\000\000\000\000\000\n \001\212\n\158N\224\000\000\004\232P:\000\000\000\000\000\000\004&\n\144\000y\000\000\004\232\000\000\006\nN\224\000\000\000\000\t\222\n\158\007$\t\224\000\000\002\166\000\000\n\000\000\000/n\003\174\000\000\000\000\n\144\000\000\000\000\002\142\000\000\004\138\000\000\000\000\000\0000\194\000\000\002\218\000\000\004\174\000\000\000\000\000\000\005\182\000\000\011n\002\192\011n\000\000\007$\011n\000\000\0048\000\000\007$\000\000\007$\000\000\007$\000\000\t\138\000\000\000\000\000\000\000\000\000\000\007$\000\000\0048\000\000\007$\000\000S\022\000\000\000\000\006\142\n\022\000\193\000\200\n\186\004@\000\000\004@\n\228\000\000\n\230\000\000\n\232\000\000\000\000\005\162\004@\007\206\004@\000\000\000\000\002\b\000\200\t\234\000\000\t\236\000\000\n*\000\193\000\200\t\240\000\000\000\192\n\244\000\000\004\218\006R\011\006\005l\011\006\000\000\000\000\003l\000\193\000\000\000\227\000\000\000\000\001\242\000\000\t\248\000\000\000\000\000\000\n8\000\193\000\200\n\002\000\000\000\000\000\192\004\218\006R\003l\000\227\001\242\n\004\000\000\004\218\006R\003l\000\227\001\242\n \000\000\004\012\003\250\nP\000\193\nJ\006\150\000\t\nt\000\193\000\000\nv\000\193\000\000\n\214\000\000\n\\\006\130\nV\006\150\n\220\000\000\nZ\006\150\n\224\000\000\000\000\006\150\000\000\n\226\000\000"), (16, "\012E\012E\012E\012E\012E\012E\012E\012E\012E\012E\012E\007\237\012E\012E\012E\012E\012E\012E\012E\012E\012E\012E\028n\000&\015\026\007\237\012E\028\254\004\145\028r\0007\000;\000\n\015N\012E\001\"\0236\023>\012E\012E\024\030\012E\011\233\000*\012E\016V\029\n\0236\023>\012E\012E\012E\000N\007\202\020\150\020\190\020\206\020\246\021\006\021.\012E\000\150\011\142\012E\012E\006\157\004\145\004j\000\n\012E\012E\006\029\012E\006\242\012E\007\n\024\134\000\154\007\237\012E\016\202\012E\012E\012E\012E\012E\011\154\023F\015\202\012E\012E\012E\000\226\012E\012E\012E\016\206\007\170\012E\012E\012E\012E\012E\b\205\022\146\021\214\012E\012E\016f\b\230\004\t\011\233\012!\021\218\b\213\006\005\001\234\012E\012E\012E\r\026\001\246\012E\012E\012E\012E\000\230\012E\004\157\012E\nf\007\237\012E\nj\001\166\012E\012E\025\214\003F\nn\003N\001\"\003^\007\237\nr\025\218\017\158\012E\006&\003f\012E\000\006\000\"\000\n\012E\012E\012E\012E\021\230\006u\012E\006m\012E\011%\007\178\b\205\012E\012E\012E\011\134\012E\006\157\012E\012E\000\n\012E\b\213\012E\012E\003n\019z\012E\012E\006\165\006\165\006\165\006\165\006\165\006\165\006\165\006\165\006\165\006\165\006\165\012\238\006\165\006\165\006\165\006\165\006\165\006\165\006\165\006\165\006\165\006\165\021\210\006\005\012\017\006\242\006\165\015\030\015.\015>\003~\001\234\001R\004\138\006\165\r\026\001\246\011\201\006\165\006\165\b\238\006\165\011%\006\005\006\165\000\n\006E\006\005\004\157\006\165\015\026\006\165\001\130\028:\004\157\004\157\022V\004\234\006-\015N\006\165\000.\011\198\011\217\004\130\001V\004\157\004\157\000\n\006\165\006\165\027\198\001\"\004\189\006\165\006\165\003\138\001\"\003\146\006\165\003\162\006\165\006\165\006\165\006\165\006\165\021\198\003\170\001\"\006\165\006\165\006\165\004\157\006\165\006\165\006\165\004-\016\202\006\165\006\165\006\165\006\165\006\165\025\139\025\143\000\n\006\165\006\165\025\147\0041\000\n\006u\012\025\016\206\001z\006=\006=\003\178\006\165\006\165\001\142\000\n\006\165\006\165\006\165\006\165\0246\006\165\n\182\006\165\015\210\002\218\006\165\001\234\016f\006\165\006\165\r\026\001\246\007\237\011\201\004\150\001\234\016V\027\246\003\129\001\242\001\246\012\214\017n\006\165\003\194\015\026\007\237\006\165\006\165\006\165\006\165\r\n\003Q\006\165\015N\006\165\003Q\012\245\012\245\006\165\006\165\006\165\012\245\000\n\024:\006\165\006\165\022:\006\165\005*\006\165\006\165\000\n\004\129\006\165\006\165\006\197\006\197\006\197\006\197\006\197\006\197\006\197\006\197\006\197\006\197\006\197\015B\006\197\006\197\006\197\006\197\006\197\006\197\006\197\006\197\006\197\006\197\006\197\007\237\028z\006\197\006\197\017z\016V\0041\b\177\006\197\006\197\023\030\006\197\0041\0041\015\026\006\197\006\197\017\238\006\197\025z\006\197\006\197\015F\015N\0041\r:\006\197\015\026\006\197\006\197\016f\004J\006\197\006\197\006\197\015\026\015N\006\197\006\197\005\157\006\197\006\197\003&\r\014\015N\012\214\006\197\006\197\006\197\006\197\0041\006\197\027\254\007\237\004\241\001\"\006\197\025z\006\197\012)\006\197\006\197\006\197\006\197\016V\007\237\006\197\006\197\006\197\018\238\006\197\006\197\006\197\015\026\012\001\006\197\006\197\006\197\006\197\006\197\018\154\007\222\015N\007\230\006\197\007\246\006\197\018\158\000\n\001\234\006\149\018\162\007\254\r\026\001\246\006\197\006\197\003r\016f\006\197\006\197\006\197\006\197\006}\006\197\006\197\006\197\r\142\022F\006\197\018n\016f\006\197\006\197\006\197\003v\012\245\021\242\020F\016f\006\197\012)\b\006\006\r\006\197\020\026\000\n\006\197\012\245\012\245\026\235\006\197\006\197\012\245\006\197\006\213\023*\006\197\026\239\006\197\004\241\b\241\b\241\006\197\025\179\025\183\b\241\015\206\026\242\025\187\006\197\0065\006\197\028\234\006\197\006\197\b\022\016f\006\197\006\197\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\021V\001\014\025\194\001\022\nn\001\030\0012\001:\001>\nr\025\198\016\234\021Z\006\189\015\234\nv\012\245\012\245\004\r\006\189\006\189\012\245\021^\001F\021b\006\133\006\213\001\170\n\134\028\230\r\150\028b\021f\r\154\027\206\016V\020v\020\158\001N\011\201\015\n\021r\026\154\011\201\015\026\021v\t\n\024\138\003\182\001\182\021j\021z\025\250\015N\019N\027\210\n>\006\189\015b\r\162\026&\0262\027\214\015f\017\170\019\150\001\"\021~\001\222\012\t\001\226\004\205\001b\016^\015n\022J\001\"\000\n\r\182\001\234\015r\019\154\r\186\011\166\001\246\003\186\000\n\r\190\r\194\n\154\n\158\r\198\018\218\004-\021\130\004\026\015v\021\134\020\214\000\n\000\n\001\234\016\238\020~\020\166\r\026\001\246\n\250\r\202\000\n\021\138\015z\015~\r\206\015\130\021\142\000\n\021\146\015\150\021\150\021\154\004\169\021\158\004\030\015\162\r\214\0042\027\222\016f\021\162\rZ\023\174\021\166\019\n\rv\019\030\026F\003Q\000\n\015\194\006\141\003Q\019:\015\198\016\002\004\205\n\162\021\170\011\201\r\218\012\214\016\006\021\174\021\178\012\214\r\222\004\205\004\205\b\241\b\241\027\230\004\205\016\014\b\241\r\226\020\222\006\205\006\205\006]\006U\002&\006\205\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\018\222\001\014\025\194\001\022\nn\001\030\0012\001:\001>\nr\025\198\019^\024\030\004-\004N\nv\027\011\027\015\011\185\004-\004-\027\019\004V\001F\011\201\004Z\016\202\001\170\n\134\019\182\r\150\004-\027\198\r\154\027+\027/\004\134\023\006\001N\0273\015\n\019\014\016\206\019\"\011\193\027\246\024J\006e\0242\001\182\019>\026\134\015\026\011\209\007\n\006\021\017\018\004-\015b\r\162\026&\015N\001\234\015f\017\242\021\014\r\026\001\246\001\222\019\150\001\226\004\221\001b\016^\015n\b\197\012\214\020.\r\182\001\234\015r\021j\r\186\011\166\001\246\019\154\011\177\r\190\r\194\n\154\n\158\r\198\011\177\011\177\004\142\016b\015v\007\n\028J\000\n\004\166\011\241\019b\005)\011\177\001\234\024\"\n\250\r\202\r\026\001\246\015z\015~\r\206\015\130\0172\000\n\028R\015\150\005\r\019\186\004\169\005)\029&\015\162\r\214\004\174\b\"\004\157\b*\011\177\b:\021\022\004\178\019\202\012\214\016f\b\197\bB\015\194\006m\011\249\000\n\015\198\016\002\027\186\n\162\028\250\028\006\r\218\004\186\016\006\019\230\004\210\tB\r\222\tJ\004\221\tZ\027\254\004\214\004\222\016\014\024\018\r\226\tb\006\221\006\221\bJ\004\242\002&\006\221\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\006m\001\014\025\194\001\022\nn\001\030\0012\001:\001>\nr\025\198\005)\tj\026\178\006M\nv\005\006\003u\006\181\bZ\024z\029O\005\026\001F\006\181\006\181\005:\001\170\n\134\005^\r\150\005)\005j\r\154\028\"\000\n\006\181\005r\001N\005\198\015\n\000\n\019\206\005\210\0286\006\030\tz\006.\004\157\001\182\0066\028\142\015\026\028:\004\157\004\157\006\190\006\226\015J\r\162\019\234\015N\006\181\015f\006\234\007\"\004\157\004\157\001\222\007.\001\226\004\249\001b\015j\015n\007:\007F\007R\r\182\001\234\015r\007^\r\186\011\166\001\246\007r\007\130\r\190\r\194\n\154\n\158\r\198\004\157\007\146\007\154\012\253\015v\007\191\b\n\b\014\bN\bR\b\178\b\182\b\198\004)\b\214\n\250\r\202\t\002\t\018\015z\015~\r\206\015\130\t&\000\n\tn\015\150\016V\tr\004\169\t\178\t\182\015\162\r\214\n\022\t\134\015\026\t\142\n\026\t\158\n.\nF\005%\nZ\016f\015N\t\166\015\194\004)\nz\n\130\015\198\016\002\004\249\n\162\004\241\n\138\r\218\005\t\016\006\n\146\005%\n\150\r\222\004\249\004\249\n\206\n\218\n\226\004\249\016\014\011&\r\226\011F\b\249\b\249\t\174\011R\002&\b\249\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\011\150\001\014\011\178\001\022\nn\001\030\0012\001:\001>\nr\011\190\011\214\011\226\012r\012\134\nv\012\154\012\190\012\202\t\190\012\210\012\230\012\242\001F\012\250\004)\012\254\001\170\n\134\016f\r\150\004)\004)\r\154\r\006\r\022\r&\r.\001N\007\245\015\n\r2\005%\004)\rB\rJ\rb\rj\r~\001\182\004\241\r\134\015\026\007\245\r\146\r\170\r\178\014\006\015J\r\162\004)\015N\005%\015f\014\018\014Z\014\218\015\002\001\222\004)\001\226\027\254\001b\015j\015n\015\022\015\"\015*\r\182\001\234\015r\0152\r\186\011\166\001\246\015:\015\134\r\190\r\194\n\154\n\158\r\198\015\142\015\158\015\166\015\174\015v\015\182\015\190\015\250\016\n\016\018\016\030\016\"\016*\016.\007\245\n\250\r\202\0166\016>\015z\015~\r\206\015\130\016N\000\n\016r\015\150\nf\016\182\016\190\nj\016\194\015\162\r\214\025\214\016\210\nn\016\218\016\222\016\230\016\246\nr\025\218\016\254\016f\017\006\017\n\015\194\017\026\017\"\017:\015\198\016\002\017B\n\162\017\146\017\218\r\218\017\230\016\006\018Z\018f\018\134\r\222\018\178\018\194\018\202\007\245\018\230\018\242\016\014\018\250\r\226\018\254\019\006\016\202\019\022\019*\002&\007\245\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\016\206\001\014\019F\001\022\nn\001\030\0012\001:\001>\nr\019j\019\130\019\138\019\142\019\158\nv\019\166\019\170\019\178\019\194\001\234\019\214\019\242\001F\r\026\001\246\020\006\001\170\n\134\020\022\r\150\020&\020>\r\154\020N\020Z\020\139\020\179\001N\020\203\015\n\020\235\021\003\021#\021;\021R\021n\021\222\022\011\001\182\022b\022w\015\026\022\159\022\171\022\187\022\195\000\n\015J\r\162\022\222\015N\004\189\015f\022\231\022\239\022\247\023\018\001\222\023:\001\226\023B\001b\015j\015n\023R\023o\023\127\r\182\001\234\015r\023\135\r\186\011\166\001\246\023\147\023\158\r\190\r\194\n\154\n\158\r\198\023\195\023\207\023\219\012\253\015v\023\238\023\247\023\255\024*\024V\024\146\024\179\024\187\024\199\024\215\n\250\r\202\024\223\024\235\015z\015~\r\206\015\130\024\246\000\n\025\011\015\150\025\019\025\026\025'\0253\025;\015\162\r\214\025F\025O\025W\025c\025~\026\006\026.\011\225\011\225\026>\016f\026r\026z\015\194\026\158\026\194\026\198\015\198\016\002\026\206\n\162\026\247\027\190\r\218\027\202\016\006\027\218\027\226\027\234\r\222\028\023\028\031\028&\0283\028>\028N\016\014\028\131\r\226\028\146\012\253\012\253\028\159\028\195\002&\012\253\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\028\223\001\014\025\194\001\022\nn\001\030\0012\001:\001>\nr\025\198\028\238\028\246\029\002\029\014\nv\029\027\029\"\029*\0293\029:\029C\029W\001F\000\000\000\000\000\000\001\170\n\134\000\000\r\150\000\000\000\000\r\154\000\000\000\000\000\000\000\000\001N\000\000\015\n\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\000\000\000\000\000\011\225\000\000\000\000\000\000\015b\r\162\011\225\011\225\000\000\015f\027B\000\000\000\000\000\000\001\222\000\000\001\226\000\000\001b\016^\015n\000\000\000\000\000\000\r\182\001\234\015r\000\000\r\186\011\166\001\246\000\022\000\000\r\190\r\194\n\154\n\158\r\198\011\225\000\000\000\000\000\000\015v\011\225\011\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\250\r\202\000\000\000\000\015z\015~\r\206\015\130\000\000\000\n\000\000\015\150\000\000\000\000\004\169\000\000\000\000\015\162\r\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\194\000\000\000\000\000\000\015\198\016\002\000\000\n\162\000\000\000\000\r\218\000\000\016\006\000\000\000\000\000\000\r\222\000\000\000\000\000\000\000\000\000\000\000\000\016\014\000\000\r\226\000\000\b\221\b\221\000\000\000\000\002&\b\221\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\000\000\001\014\000\000\001\022\nn\001\030\0012\001:\001>\nr\000\000\000\000\000\000\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\170\n\134\000\000\r\150\000\000\000\000\r\154\000\000\000\000\000\000\000\000\001N\000\000\015\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015b\r\162\000\000\000\000\000\000\015f\016z\000\000\000\000\000\000\001\222\000\000\001\226\000\000\001b\016^\015n\000\000\000\000\000\000\r\182\001\234\015r\000\000\r\186\011\166\001\246\000\000\000\000\r\190\r\194\n\154\n\158\r\198\000\000\000\000\000\000\012\217\015v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\250\r\202\000\000\000\000\015z\015~\r\206\015\130\000\000\000\n\000\000\015\150\000\000\000\000\000\000\000\000\000\000\015\162\r\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\194\000\000\000\000\000\000\015\198\016\002\000\000\n\162\000\000\000\000\r\218\000\000\016\006\000\000\000\000\000\000\r\222\000\000\000\000\000\000\000\000\000\000\000\000\016\014\000\000\r\226\000\000\012\217\012\217\000\000\000\000\002&\012\217\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\000\000\001\014\000\000\001\022\nn\001\030\0012\001:\001>\nr\000\000\000\000\000\000\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\170\n\134\000\000\r\150\000\000\000\000\r\154\000\000\000\000\000\000\000\000\001N\000\000\015\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015b\r\162\000\000\000\000\000\000\015f\026\n\000\000\000\000\000\000\001\222\000\000\001\226\000\000\001b\016^\015n\000\000\000\000\000\000\r\182\001\234\015r\000\000\r\186\011\166\001\246\000\000\000\000\r\190\r\194\n\154\n\158\r\198\000\000\000\000\000\000\000\000\015v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\250\r\202\000\000\000\000\015z\015~\r\206\015\130\000\000\000\n\000\000\015\150\000\000\000\000\000\000\000\000\000\000\015\162\r\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\194\000\000\000\000\000\000\015\198\016\002\000\000\n\162\000\000\000\000\r\218\000\000\016\006\000\000\000\000\000\000\r\222\000\000\000\000\000\000\000\000\000\000\000\000\016\014\000\000\r\226\000\000\r%\r%\000\000\000\000\002&\r%\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\000\000\001\014\000\000\001\022\nn\001\030\0012\001:\001>\nr\000\000\000\000\000\000\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\170\n\134\000\000\r\150\000\000\000\000\r\154\000\000\000\000\000\000\000\000\001N\000\000\015\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015b\r\162\000\000\000\000\000\000\015f\026\n\000\000\000\000\000\000\001\222\000\000\001\226\000\000\001b\016^\015n\000\000\000\000\000\000\r\182\001\234\015r\000\000\r\186\011\166\001\246\000\000\000\000\r\190\r\194\n\154\n\158\r\198\000\000\000\000\000\000\000\000\015v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\250\r\202\000\000\000\000\015z\015~\r\206\015\130\000\000\000\n\000\000\015\150\000\000\000\000\000\000\000\000\000\000\015\162\r\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\194\000\000\000\000\000\000\015\198\016\002\000\000\n\162\000\000\000\000\r\218\000\000\016\006\000\000\000\000\000\000\r\222\000\000\000\000\000\000\000\000\000\000\000\000\016\014\000\000\r\226\000\000\r!\r!\000\000\000\000\002&\r!\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\000\000\001\014\000\000\001\022\nn\001\030\0012\001:\001>\nr\000\000\000\000\000\000\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\170\n\134\000\000\r\150\000\000\000\000\r\154\000\000\000\000\000\000\000\000\001N\000\000\015\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015b\r\162\000\000\000\000\000\000\015f\018&\000\000\000\000\000\000\001\222\000\000\001\226\000\000\001b\016^\015n\000\000\000\000\000\000\r\182\001\234\015r\000\000\r\186\011\166\001\246\000\000\000\000\r\190\r\194\n\154\n\158\r\198\000\000\000\000\000\000\000\000\015v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\250\r\202\000\000\000\000\015z\015~\r\206\015\130\000\000\000\n\000\000\015\150\000\000\000\000\000\000\000\000\000\000\015\162\r\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\194\000\000\000\000\000\000\015\198\016\002\000\000\n\162\000\000\000\000\r\218\000\000\016\006\000\000\000\000\000\000\r\222\000\000\000\000\000\000\000\000\000\000\000\000\016\014\000\000\r\226\000\000\000R\000V\000f\000\170\002&\000\174\nf\000\178\000\246\nj\000\254\000\000\001\014\000\000\001\022\nn\001\030\0012\001:\001>\nr\000\000\000\000\000\000\003:\003B\000\170\000\000\000\174\000\000\003\134\003\202\000\000\003\210\001F\003\226\000\000\003\234\001\170\003\242\003\254\r\150\004\006\000\000\r\154\000\000\000\000\000\000\000\000\001N\000\000\018\166\000\000\000\000\000\000\000\000\000\000\004\014\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\182\r\162\000\000\004\022\000\000\000\000\000\000\000\000\000\000\000\000\001\222\000\000\001\226\000\000\001b\000\000\000\000\000\000\000\000\000\000\r\182\001\234\000\000\000\000\r\186\001\242\001\246\000\000\000\000\r\190\r\194\n\154\018\186\r\198\000\000\000\000\000\000\004&\000\000\000\000\007\234\005\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\250\r\202\005\253\000\000\005\253\000\000\r\206\000\000\005\253\000\n\b.\005\253\bn\005\253\005\253\005\253\005\253\005\253\r\214\000\000\000\000\000\000\005\253\005\253\005\253\005\253\005\253\n\169\n\169\000\000\005\253\n\169\000\n\005\253\005\253\005\253\000\000\005\253\000\000\n\162\005\253\000\000\r\218\005\253\018\190\005\253\000\000\005\253\r\222\005\253\000\000\005\253\005\253\005\253\005\253\018\198\005\253\r\226\005\253\005\253\000Z\000\000\005\253\002&\005\253\b\206\000\000\n\169\000\000\005\253\000Z\000\000\005\253\005\253\005\253\005\253\t\030\000\000\005\253\000Z\005\253\000Z\000\000\005\253\005\253\005\253\005\253\000\000\000\000\005\253\000\000\000\000\005\253\000\000\n\169\000\000\005\253\005\253\000\000\005\253\000\000\000\000\005\253\000\000\000\000\005\253\000\000\005\253\005\253\005\253\005\253\005\253\005\253\000\000\005\253\000\000\000\000\005\253\005\253\005\253\000\000\005\253\005\253\005\253\005\253\000\000\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\000\000\000\000\000\000\005\253\005\253\000\000\005\253\005\253\005\253\005\253\000\000\000\000\000\000\005\253\000\000\000\000\000\000\000\000\005\253\005\253\n\169\000\000\005\253\000\000\005\253\000\000\000\000\005\253\005\253\005\253\005\253\005\253\000\000\000\000\005\253\005\253\000\000\000\000\005\253\000\000\000\000\000\000\000\000\005\253\005\253\000\000\000\000\000\000\005\253\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\170\000\000\000\000\001\174\000\000\000\000\001\178\000\000\000\000\000\000\000\000\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\000\001\186\000\000\000\000\000\000\000\000\000\000\001\210\001\206\000\000\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001\222\000\000\001\226\000\000\001b\000\000\011\250\000\000\000\000\000\000\001\230\001\234\000\000\000\000\001\238\001\242\001\246\000\000\002J\001\250\001\254\000\000\000\000\002\002\000\000\000\000\000\000\000\000\000\000\012\002\012*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\000\012\n\002\n\000\000\000\000\000\n\000\000\012R\012Z\000\000\000\000\000\000\000\000\000\000\002\018\000\000\000\000\0122\000\000\000\000\012\018\000\000\012\"\000\000\000\000\002\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\026\000\000\000\000\000\000\000\000\000\000\002\030\012:\000\000\004}\000\000\000\000\000\000\000\000\000\000\002\"\000\000\000R\007\210\007\218\000\170\002&\000\174\000\000\b\030\bb\000\000\bj\021V\bz\000\000\b\130\000\000\b\138\b\150\001:\b\158\000\000\000\000\000\000\021Z\000\000\000\000\000\000\000\000\000\000\000\000\012B\000\000\000\000\021^\b\166\021b\000\000\012\026\000\000\000\000\000\000\000\000\000\000\021f\000\000\000\000\000\000\000\000\000\000\024\242\000\000\005q\021r\000\000\000\000\000\000\021v\000\000\000\000\000\000\000\000\000\000\021z\000\000\000\000\000\000\012b\012J\000\000\b\190\000\000\000\000\000\000\000\000\022\250\000\000\000\000\000\000\021~\024\002\000\000\000\000\000\000\b\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\130\000\000\nv\021\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\170\n\134\021\138\r\150\000\000\000\000\r\154\021\142\000\n\021\146\000\000\021\150\021\154\015\n\021\158\000\000\000\000\000\000\000\000\000\000\000\000\021\162\001\182\000\000\021\166\000\000\000\000\000\000\000\000\000\000\000\000\015\146\r\162\000\000\000\000\000\000\015f\000\000\000\000\021\170\000\000\001\222\000\000\001\226\021\174\021\178\000\000\015n\000\000\000\000\000\000\r\182\001\234\015r\000\000\r\186\011\166\001\246\000\000\000\000\r\190\r\194\000\000\000\000\r\198\000\000\000\000\000\000\000\000\015v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\250\r\202\000\000\000\000\015z\015~\r\206\015\130\000\000\000\n\000\000\015\150\000\000\000\000\000\000\000\000\nv\015\162\r\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\170\n\134\000\000\r\150\015\194\000\000\r\154\000\000\015\198\016\002\000\000\000\000\000\000\015\n\r\218\000\000\016\006\000\000\000\000\000\000\r\222\000\000\001\182\000\000\000\000\000\000\000\000\016\014\000\000\r\226\000\000\r\158\r\162\000\000\000\000\002&\015f\000\000\000\000\000\000\000\000\001\222\000\000\001\226\000\000\000\000\000\000\015n\000\000\000\000\000\000\r\182\001\234\015r\000\000\r\186\011\166\001\246\000\000\000\000\r\190\r\194\000\000\000\000\r\198\000\000\000\000\000\000\000\000\015v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\250\r\202\000\000\000\000\015z\015~\r\206\015\130\000\000\000\n\000\000\015\150\000\000\000\000\000\000\000\000\000\000\015\162\r\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\194\000\000\000\000\000\000\015\198\016\002\000\000\000\000\000\000\000\000\r\218\000\000\016\006\000\000\000\000\000\000\r\222\000\000\000\000\000\000\000\000\000\000\000\000\016\014\000\000\r\226\000\000\001M\001M\001M\001M\002&\001M\000\000\001M\001M\000\000\001M\000\000\001M\000\000\001M\000\000\001M\001M\001M\001M\000\000\000\000\014-\000\000\021F\014-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\001M\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\014-\014-\000\000\000\000\001M\014-\000\000\001M\002>\014-\000\000\001M\000\000\000\000\021J\014-\000\000\001M\014-\014-\000\000\014-\014-\000\000\001M\002F\000\000\014-\0052\001M\000\000\014-\000\000\000\000\014-\000\000\014-\014-\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014-\001M\014-\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014-\000\000\000\000\000\000\001M\000\000\000\000\005>\000\000\001M\000\000\001M\000\000\000\000\001M\000\000\021N\000\000\000\000\000\000\000\000\001M\000\000\001M\000\000\000\000\001M\014-\014-\000\000\014-\014-\005B\000\000\014-\000\000\000\000\000\000\000\000\000\000\000\000\001M\001M\005J\000\000\000\000\001M\001M\014-\000\000\000\000\014-\014-\014-\014-\005\t\000\000\022\014\005\t\014-\014-\014-\000\000\014-\014-\014-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\t\005\t\000\000\000\000\000\000\005\t\000\000\000\000\005\t\005\t\000\000\000\000\000\000\000\000\000\000\005\t\000\000\000\000\005\t\005\t\000\000\005\t\005\t\000\000\000\000\005\t\000\000\005\t\005\t\000\000\000\000\005\t\000\000\000\000\005\t\000\000\005\t\005\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\t\000\000\005\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\t\000R\000V\000f\000\170\000\000\000\174\005\t\000\178\000\246\000\n\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000\000\000\000\000\000\000\000\005\t\005\t\000\000\005\t\005%\005\t\000\000\005\t\001F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\t\005\r\000\000\000\000\005\r\005\t\000\000\001N\005\t\000\000\005\t\000\000\000\000\000\000\000\000\000\000\005\t\005\t\005\t\000\000\005\t\005\t\005\t\000\000\005\r\005\r\000\000\001^\000\000\005\r\000\000\000\000\005\r\005\r\000\000\000\000\000\000\000\000\000\000\005\r\000\000\001b\005\r\005\r\000\000\005\r\005\r\000\000\000\000\005\r\000\000\005\r\005\r\000\000\000\000\005\r\000\000\000\000\005\r\000\000\005\r\005\r\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\005\r\000\000\005\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\001F\000\000\000R\007\210\007\218\000\170\005\r\000\174\000\000\b\030\bb\000\000\bj\000\000\bz\001N\b\130\000\000\b\138\b\150\001:\b\158\000\000\000\000\000\000\000\000\005\r\005\r\000\000\005\r\005)\005\r\000\000\005\r\000\000\001^\b\166\000\000\000\000\000\000\000\000\000\000\005\r\000\000\000\000\000\000\000\000\005\r\000\000\001b\005\r\b\174\005\r\004^\004b\000\000\000\000\000\000\005\r\005\r\005\r\000\000\005\r\005\r\005\r\n\165\n\165\n\165\n\165\000\000\n\165\b\190\n\165\n\165\000\000\n\165\000\000\n\165\000\000\n\165\000\000\n\165\n\165\n\165\n\165\b\202\000\000\014\129\000\000\000\000\014\129\000\000\000\000\000\n\000\000\000\000\000\000\000\000\n\165\n\165\n\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\165\000\000\014\129\014\129\000\000\004n\n\165\014\129\000\000\022\030\r\246\014\129\000\000\022&\000\000\000\000\000\000\014\129\000\000\n\165\014\129\014\129\000\000\014\129\014\129\000\000\n\165\r\254\000\000\014\129\014\n\n\165\000\000\014\129\000\000\000\000\014\129\000\000\014\129\014\129\n\165\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\014\129\n\165\014\129\000\000\n\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\129\001F\000\000\000\000\n\165\000\000\000\000\014\022\000\000\n\165\000\000\n\165\000\000\000\000\n\165\000\000\001N\000\000\000\000\000\000\000\000\n\165\000\000\n\165\000\000\000\000\n\165\014\129\014\129\000\000\014\129\000\000\014\026\000\000\014\129\000\000\001^\000\000\000\000\000\000\000\000\n\165\n\165\014\"\000\000\000\000\022z\n\165\000\000\000\000\001b\014\129\000\000\014\129\004^\004b\000\000\000\000\000\000\014\129\014\129\014\129\000\000\014\129\014\129\014\129\n\149\n\149\n\149\n\149\000\000\n\149\000\000\n\149\n\149\000\000\n\149\000\000\n\149\000\000\n\149\000\000\n\149\n\149\n\149\n\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\149\n\149\n\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\149\000\000\000\000\000\000\000\000\004f\n\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\149\n\153\n\153\n\153\n\153\000\000\n\153\n\149\n\153\n\153\000\000\n\153\n\149\n\153\000\000\n\153\000\000\n\153\n\153\n\153\n\153\n\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\n\153\n\153\000\000\000\000\000\000\000\000\000\000\000\000\n\149\n\153\000\000\n\149\000\000\000\000\000\000\n\153\000\000\000\000\022~\000\000\000\000\000\000\000\000\000\000\n\149\000\000\000\000\000\000\n\153\n\149\000\000\n\149\000\000\000\000\n\149\n\153\000\000\000\000\000\000\000\000\n\153\n\149\000\000\n\149\000\000\000\000\n\149\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\001\153\n\149\n\149\000\000\000\000\000\000\022\"\n\149\000\000\000\000\000\000\n\153\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\001\153\001\153\000\000\000\000\000\000\001\153\000\000\n\153\000\000\001\153\000\000\000\000\n\153\000\000\n\153\001\153\000\000\n\153\001\153\001\153\000\000\001\153\001\153\000\000\n\153\000\000\n\153\001\153\000\000\n\153\000\000\001\153\000\000\000\000\001\153\000\000\001\153\001\153\000\000\000\000\000\000\000\000\000\000\000\000\n\153\n\153\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000R\007\210\007\218\000\170\000\000\000\174\000\000\b\030\bb\000\000\bj\000\000\bz\000\000\b\130\000\000\b\138\b\150\001:\b\158\000\000\001\153\002Z\000\000\001\153\001\153\000\000\000\000\001\153\000\000\000\000\000\000\000\000\022\134\b\166\022\162\000\000\000\000\000\000\000\000\000\000\000\000\001\153\022\174\000\000\001\153\001\153\001\153\001\153\b\174\000\000\000\000\000\000\003\n\001\153\001\153\000\000\001\153\001\153\001\153\000\000\000\000\022\198\000\000\000\000\002z\000\000\000\000\002\210\b\190\000\000\000\000\000\000\000\000\022\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\202\000\000\000\000\000\000\000\000\002\130\002\170\000\000\000\000\000\000\002!\000\000\000\000\000\000\002!\000\000\000\000\000\000\000\000\000\000\002\138\000\000\023\026\002!\002!\023r\002\242\002\250\000\000\000\000\000\000\000\000\002!\000\000\000\000\000\000\002\178\000\000\023\138\002\146\000\000\002\162\002!\023\150\000\000\b\173\000\000\000\000\023\198\000\000\000\000\000\000\t6\t>\000\170\023\210\000\174\023\222\t\130\t\198\024\190\t\206\000\000\t\222\002\186\t\230\002!\t\238\t\250\000\000\n\002\000\000\000\000\000\000\000\000\024\202\024\226\002!\000\000\000\000\000\000\024\238\000\000\000\000\000\000\n\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\018\000\000\000\000\000\000\002\194\000\000\000\000\002!\002!\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\000\002!\000\000\000\000\002!\002!\002!\002!\000\000\000\000\n\"\000\000\000\000\002!\002!\000\000\003\002\002\202\002!\002\130\002\170\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000\000\002\138\000\000\000\000\000\129\000\129\000\000\000\129\000\129\000\000\000\000\000\000\000i\000\129\000\000\000i\000\000\002\178\000\000\000\000\002\146\000\000\002\162\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000i\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\002\186\000\000\000\129\000\000\000\000\002\138\000\000\000\000\000i\000i\000\000\000i\000i\000\129\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\002\146\000\000\002\162\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\129\000\129\000\000\000\000\002\154\000\000\000i\000\000\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000i\000\000\000\129\000\129\000\129\000\129\000\000\000\000\000\000\000\000\000\000\000\129\000\129\000\000\000\129\002\202\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\000\000\000\000\000\000\000\000\000i\000i\000\000\000i\000i\000i\000]\000]\000\000\000\000\000\000\000]\000\000\000\000\000\000\000]\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000]\000]\000\000\000\000\000\000\000a\000]\000\000\000a\000\000\000]\000\000\000\000\002\146\000\000\000]\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000a\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000]\000\000\000]\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000]\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\002\146\000\000\000a\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000\000\002\154\000\000\000a\000\000\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000a\000\000\000]\000]\000]\000]\000\000\000\000\000\000\000\000\000\000\000]\000]\000\000\000]\000]\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\000\000\000\000\000\000\000\000\000a\000a\000\000\000a\000a\000a\000e\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000\000\000\000\002\138\000\000\000\000\000e\000e\000\000\000e\000e\000\000\000\000\000\000\000u\000e\000\000\000u\000\000\000e\000\000\000\000\002\146\000\000\002\162\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\130\002\170\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\000e\000\000\000e\000\000\000\000\002\138\000\000\000\000\000u\000u\000\000\000u\000u\000e\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\000\000\000\000\002\146\000\000\002\162\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000\000\000\000\002\154\000\000\002\186\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000u\000\000\000e\000e\000e\000e\000\000\000\000\000\000\000\000\000\000\000e\000e\000\000\000e\000e\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000u\000u\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000\000\000u\000\000\000\000\000u\000u\000u\000u\000\000\000\000\000\000\000\000\000\000\000u\000u\000\000\000u\000u\000u\002\130\002\170\000\000\000\000\000\000\000m\000\000\000\000\000\000\000m\000\000\000\000\000\000\000\000\000\000\002\138\000\000\000\000\000m\000m\000\000\000m\000m\000\000\000\000\000\000\000q\000m\000\000\000q\000\000\000m\000\000\000\000\002\146\000\000\002\162\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\130\002\170\000\000\000\000\000\000\000q\000\000\000\000\000\000\000q\000m\000\000\000m\000\000\000\000\002\138\000\000\000\000\000q\000q\000\000\000q\000q\000m\000\000\000\000\000\000\000q\000\000\000\000\000\000\000q\000\000\000\000\002\146\000\000\002\162\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000m\000\000\000\000\002\154\000\000\002\186\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000q\000\000\000m\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000\000\000q\000\000\000\000\000q\000q\000q\000q\000\000\000\000\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\002\130\002\170\000\000\000\000\000\000\000y\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\002\138\000\000\000\000\000y\000y\000\000\000y\000y\000\000\000\000\000\000\002z\000y\000\000\000\137\000\000\002\178\000\000\000\000\002\146\000\000\002\162\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\130\002\170\000\000\000\000\000\000\000\137\000\000\000\000\000\000\000\137\002\186\000\000\000y\000\000\000\000\002\138\000\000\000\000\000\137\000\137\000\000\000\137\002\250\000y\000\000\000\000\000\000\000\137\000\000\000\000\000\000\002\178\000\000\000\000\002\146\000\000\002\162\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000y\000y\000\000\000\000\002\154\000\000\002\186\000\000\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\137\000\000\000y\000y\000y\000y\000\000\000\000\000\000\000\000\000\000\000y\000y\000\000\000y\000y\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\137\000\137\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002z\000\000\000\000\000}\000\000\000\137\000\000\000\000\000\137\000\137\000\137\000\137\000\000\000\000\000\000\000\000\000\000\000\137\000\137\000\000\003\002\002\202\000\137\002\130\002\170\000\000\000\000\000\000\000}\000\000\000\000\000\000\000}\000\000\000\000\000\000\000\000\000\000\002\138\000\000\000\000\000}\000}\000\000\000}\000}\000\000\000\000\000\000\002z\000}\000\000\000\133\000\000\002\178\000\000\000\000\002\146\000\000\002\162\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\130\002\170\000\000\000\000\000\000\000\133\000\000\000\000\000\000\000\133\002\186\000\000\000}\000\000\000\000\002\138\000\000\000\000\000\133\000\133\000\000\000\133\002\250\000}\000\000\000\000\000\000\000\133\000\000\000\000\000\000\002\178\000\000\000\000\002\146\000\000\002\162\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000}\000}\000\000\000\000\002\154\000\000\002\186\000\000\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\000\133\000\000\000}\000}\000}\000}\000\000\000\000\000\000\000\000\000\000\000}\000}\000\000\000}\002\202\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\174\002\194\000\000\000\000\000\133\000\133\000\000\000\000\002\154\004a\000\000\000\000\004a\000\000\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\133\000\133\000\133\000\133\000\000\000\000\004a\000\000\000\000\000\133\000\133\000\000\000\133\002\202\000\133\004a\004a\000\000\000\000\004a\004a\004a\000\000\000\000\000\000\004a\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004a\004a\000\000\000\000\004a\004a\004a\000\000\000\000\004a\004a\000\000\000\000\004a\000\000\000\000\000\000\000\000\001\170\000\000\000\000\n\190\000\000\000\000\n\194\000\000\000\000\000\000\000\000\004a\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\004a\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\004a\000\000\n\198\011\030\000\000\000\000\011\134\011\158\011\162\004a\000\000\004a\001\222\004a\001\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\230\001\234\004a\000\000\n\234\011\166\001\246\000\000\004a\n\238\n\242\000\000\000\000\n\246\004a\000\000\000\000\004a\001\170\000\000\000\000\n\190\000\000\004a\n\194\000\000\000\000\000\000\000\000\n\250\n\254\000\000\000\000\000\000\000\000\011\002\000\000\000\000\000\n\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\011\n\000\000\n\198\011\030\000\000\000\000\011\134\011\158\011\162\006-\000\000\011\170\001\222\011\198\001\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\230\001\234\011\014\000\000\n\234\011\166\001\246\000\000\011\018\n\238\n\242\000\000\000\000\n\246\012\194\000\000\000\000\011\022\001\170\000\000\000\000\n\190\000\000\002&\n\194\000\000\000\000\000\000\000\000\n\250\n\254\000\000\000\000\000\000\000\000\011\002\000\000\000\000\000\n\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\011\n\000\000\n\198\011\030\000\000\000\000\011\134\011\158\011\162\006-\000\000\011\170\001\222\011\198\001\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\230\001\234\011\014\000\000\n\234\011\166\001\246\000\000\011\018\n\238\n\242\000\000\000\000\n\246\012\178\000\000\000\000\011\022\001\170\000\000\000\000\n\190\000\000\002&\n\194\000\000\000\000\000\000\000\000\n\250\n\254\000\000\000\000\000\000\000\000\011\002\000\000\000\000\000\n\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\011\n\000\000\n\198\011\030\000\000\000\000\011\134\011\158\012~\006-\000\000\011\170\001\222\011\198\001\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\230\001\234\011\014\000\000\n\234\011\166\001\246\000\000\011\018\n\238\n\242\000\000\000\000\n\246\005\137\000\000\000\000\011\022\000\000\000\000\000\000\001\153\000\000\002&\001\153\000\000\000\000\000\000\000\000\n\250\n\254\000\000\000\000\000\000\000\000\011\002\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\001\153\001\153\000\000\011\n\000\000\001\153\000\000\000\000\000\000\001\153\000\000\000\000\006-\000\000\011\170\001\153\011\198\000\000\000\000\000\000\000\000\001\153\001\153\000\000\000\000\000\000\000\000\011\014\000\000\000\000\000\000\001\153\001\170\011\018\001\153\n\190\001\153\001\153\n\194\001\205\000\000\000\000\011\022\000\000\000\000\000\000\000\000\000\000\002&\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\000\000\000\000\000\001\153\000\000\001\153\000\000\n\198\011\030\000\000\000\000\011\134\011\158\012\142\000\000\000\000\001\153\001\222\000\000\001\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\230\001\234\000\000\000\000\n\234\011\166\001\246\000\000\000\000\n\238\n\242\000\000\000\000\n\246\000\000\000\000\001\153\002R\000\000\001\153\001\153\000\000\000\000\001\153\000\000\000\000\000\000\000\000\000\000\n\250\n\254\000\000\000\000\000\000\000\000\011\002\000\000\001\153\000\n\000\000\001\153\001\153\000\000\001\153\000\000\000\000\000\000\011\n\003\022\001\153\001\153\000\000\001\153\001\153\001\153\000\000\006-\000\000\000\000\000\000\011\198\001\177\000\000\000\000\001\177\000\000\000\000\000\000\000\000\000\000\000\000\011\014\000\000\000\000\000\000\000\000\000\000\011\018\000\000\000\000\000\000\000\000\000\000\001\221\001\177\001\177\011\022\000\000\000\000\001\177\000\000\000\000\002&\001\177\000\000\000\000\000\000\000\000\000\000\001\177\000\000\000\000\001\177\001\177\000\000\001\177\001\177\000\000\000\000\000\000\000\000\001\177\000\000\000\000\000\000\001\177\000\000\000\000\001\177\000\000\001\177\001\177\000\000\000\000\003A\000\000\000j\003A\000r\000\000\000\130\003A\000\000\003A\000\000\000\000\000\000\000\138\003A\003A\000\000\000\000\000\000\001\177\000\000\001\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\003A\000\000\000\000\000\000\003A\000\000\000\000\000\000\000\000\000\000\nf\000\000\000\000\nj\000\000\001\177\014F\025\214\001\177\nn\003A\000\000\001\177\000\000\nr\025\218\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\162\000\000\000\000\000\000\000\000\000\000\001\177\003A\001\177\000\000\000\000\003A\003A\000\000\014N\001\177\001\177\000\000\001\177\001\177\001\177\000\000\000\000\003A\003=\016\202\000\182\003=\000\190\000\000\000\206\003=\000\000\003=\003A\000\000\000\000\000\214\003=\003=\000\000\016\206\000\000\000\000\003A\000\000\000\000\000\000\000\000\003A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\r\026\001\246\000\222\003=\000\000\000\000\000\000\003=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\189\000\000\003A\003A\000\000\003=\003A\000\000\000\000\000\000\000\000\003A\003A\000\000\000\000\000\n\003A\003=\000\238\000\000\004\189\000\000\000\000\012\002\012*\003=\000\000\000\000\000\000\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\n\000\000\000\000\003=\000\000\000\000\000\189\000\189\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\0122\000\000\000\000\012\018\000\000\012\"\000\000\000\000\003=\000\000\000\000\007\181\007\181\003=\000\000\000\000\007\181\000R\000V\000f\000\170\007\206\000\174\nf\000\178\000\246\nj\000\254\012:\001\014\025\194\001\022\nn\001\030\0012\001:\001>\nr\025\198\000\000\000\000\000\000\001\170\000\000\000\000\001\174\003=\000\000\001\178\003=\003=\001F\000\000\003=\000\000\000\000\000\000\000\000\003=\003=\000\000\000\000\000\000\003=\001\182\000\000\001N\001\186\012B\000\000\000\000\000\000\000\000\001\202\001\206\012\026\001\214\000\000\n\186\000\000\000\000\000\000\000\000\001\222\000\000\001\226\001^\000\000\000\000\000\189\000\000\000\000\001j\001\230\001\234\000\000\011\182\001\238\001\242\001\246\001b\000\000\001\250\001\254\000\189\012J\002\002\000\000\000\000\000\000\000\000\000\000\000\000\001n\000\000\000\000\000\000\n\154\n\158\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\000\000\000\002\n\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\004\169\000\000\002\022\b\189\000\000\014z\000\000\000\000\014\210\000\000\000\000\000\000\000\000\000\000\000\000\002\026\000\000\000\000\000\000\000\000\000\000\002\030\000\000\000\000\006%\n\162\b\189\000\000\014\130\014\170\002\"\000\000\000\000\0021\000\000\006%\002&\0021\000\000\000\000\006%\000\000\000\000\014\138\000\000\000\000\0021\0021\000\000\014\226\014\234\000\000\000\000\0015\000\000\0021\0015\000\000\000\000\014\178\000\000\000\000\014\146\000\000\014\162\0021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\130\014\170\000\000\000\000\000\000\0015\000\000\000\000\000\000\0015\000\000\014\186\000\000\0021\000\000\014\138\000\000\000\000\0015\0015\000\000\0015\0015\000\000\0021\000\000\000\000\0015\000\000\000\000\000\000\014\178\000\000\000\000\014\146\000\000\014\162\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\194\000\000\000\000\0021\000\000\000\000\000\000\014\154\014\186\000\000\0015\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\001\169\000\000\0015\000\000\000\000\0021\000\000\0021\000\000\000\000\000\000\000\000\000\000\000\000\0021\0021\000\000\014\242\014\202\0021\001\169\001\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\194\000\000\000\000\0015\000\000\000\000\001\169\014\154\000\000\000\000\001\169\000\000\001\169\001\169\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\001\169\000\000\0015\001\169\0015\001\169\000\000\000\000\000\000\000\000\000\000\0015\0015\000\000\0015\014\202\0015\001\029\001\029\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\029\000\000\001\169\000\000\000\000\000\000\014\138\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\000\000\001\017\000\000\001\029\001\017\000\000\000\000\001\029\000\000\000\000\014\146\000\000\014\162\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\169\006\006\001\017\001\169\000\000\000\000\001\017\001\169\001\029\000\000\001\029\000\000\001\017\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\001\029\000\000\000\000\001\017\000\000\001\169\000\000\001\017\000\000\000\000\014\146\006\014\001\017\001\017\000\000\001\169\001\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\000\000\014\154\001\017\000\000\001\017\000\000\000\000\000\000\000\000\000\000\006^\000\000\000\000\006\182\000\000\001\017\000\000\000\000\001\029\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\029\000\000\001\029\001\029\001\029\006f\006\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\006n\014\154\000\000\000\000\002)\000\000\006\198\006\206\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\000\006\150\000\000\001\017\006v\001\017\006\134\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\017\001\017\001\017\001\021\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\006\158\000\000\000\000\000\000\001\021\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\000\000\001\025\000\000\001\021\001\025\000\000\000\000\001\021\000\000\000\000\014\146\000\000\001\021\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\006\166\000\000\001\025\002)\000\000\000\000\001\025\006~\001\021\000\000\001\021\000\000\014\138\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\001\021\000\000\000\000\001\025\000\000\002)\000\000\001\025\000\000\000\000\014\146\000\000\014\162\001\025\000\000\006\214\006\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\000\000\000\014\154\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\249\000\000\000\000\000\249\000\000\001\025\000\000\000\000\001\021\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\021\000\000\001\021\001\021\001\021\006f\006\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\000\000\001\025\000\000\000\000\006n\014\154\000\000\000\000\000\249\000\000\000\249\000\249\000\000\000\000\001)\000\000\000\000\001)\000\000\000\000\006\150\000\000\001\025\006v\001\025\006\134\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\001\025\001\025\001\025\014\130\014\170\000\000\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\006\158\000\000\000\000\000\000\014\138\000\000\000\000\001)\001)\000\000\001)\001)\000\000\000\000\001!\000\000\001)\001!\000\000\000\000\001)\000\000\000\000\014\146\000\000\014\162\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\130\014\170\000\000\006\166\000\000\001!\000\249\000\000\000\000\001!\006~\014\186\000\000\001)\000\000\014\138\000\000\000\000\001!\001!\000\000\001!\001!\000\000\001)\000\000\000\000\001!\000\000\000\249\000\000\001!\000\000\000\000\014\146\000\000\014\162\001!\000\000\000\249\006\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\001)\000\000\000\000\000\000\014\154\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\225\000\000\001!\000\000\000\000\001)\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\001)\001)\000\000\001)\001)\001)\000\225\000\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000\000\000\000\001!\000\000\000\000\006n\014\154\000\000\000\000\000\225\000\000\000\225\000\225\000\000\000\000\001%\000\000\000\000\001%\000\000\000\000\000\225\000\000\001!\006v\001!\006\134\000\000\000\000\000\000\000\000\000\000\001!\001!\000\000\001!\001!\001!\014\130\014\170\000\000\000\000\000\000\001%\000\000\000\000\000\000\001%\000\000\000\225\000\000\000\000\000\000\014\138\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\001-\000\000\001%\001-\000\000\000\000\001%\000\000\000\000\014\146\000\000\014\162\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\130\014\170\000\000\000\225\000\000\001-\000\225\000\000\000\000\001-\006~\014\186\000\000\001%\000\000\014\138\000\000\000\000\001-\001-\000\000\001-\001-\000\000\001%\000\000\000\000\001-\000\000\000\225\000\000\014\178\000\000\000\000\014\146\000\000\014\162\001-\000\000\000\225\000\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\000\000\001%\000\000\000\000\000\000\014\154\014\186\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\001-\000\000\000\000\001%\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\001%\001%\000\213\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\194\000\000\000\000\001-\000\000\000\000\000\213\014\154\000\000\000\000\000\213\000\000\000\213\000\213\000\000\000\000\014z\000\000\000\000\001=\000\000\000\000\000\213\000\000\001-\006v\001-\000\213\000\000\000\000\000\000\000\000\000\000\001-\001-\000\000\001-\001-\001-\014\130\014\170\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\000\213\000\000\000\000\000\000\014\138\000\000\000\000\001=\001=\000\000\001=\014\234\000\000\000\000\014z\000\000\001=\0011\000\000\000\000\014\178\000\000\000\000\014\146\000\000\014\162\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\130\014\170\000\000\000\213\000\000\0011\000\213\000\000\000\000\0011\006~\014\186\000\000\001=\000\000\014\138\000\000\000\000\0011\0011\000\000\0011\0011\000\000\001=\000\000\000\000\0011\000\000\000\213\000\000\014\178\000\000\000\000\014\146\000\000\014\162\0011\000\000\000\213\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\194\000\000\000\000\001=\000\000\000\000\000\000\014\154\014\186\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\001=\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\000\001=\001=\000\000\014\242\014\202\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\194\000\000\000\000\0011\000\000\000\000\000\000\014\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014z\000\000\000\000\0019\000\000\000\000\000\000\000\000\0011\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\0011\0011\000\000\0011\014\202\0011\014\130\014\170\000\000\000\000\000\000\0019\000\000\000\000\000\000\0019\000\000\000\000\000\000\000\000\000\000\014\138\000\000\000\000\0019\0019\000\000\0019\014\234\000\000\000\000\000\000\000\000\0019\000\000\000\000\021V\014\178\000\000\000\000\014\146\000\000\014\162\0019\000\000\000\000\000\000\000\000\021Z\000\000\000\000\000\000\000\165\000\000\000\000\023\154\000\000\000\000\021^\000\000\021b\n\253\n\253\000\000\000\000\014\186\000\000\0019\021f\000\000\000\000\000\000\000\000\000\000\021j\000\165\000\165\021r\0019\000\000\000\000\021v\000\000\000\000\000\000\000\000\000\000\021z\000\000\000\000\012\n\000\000\000\000\000\000\000\000\000\000\000\165\000\165\025B\023J\000\000\n\253\000\000\021~\000\000\014\194\000\165\000\000\0019\012\018\000\000\012\"\014\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\253\0019\021\130\0019\000\000\021\134\000\165\021V\000\000\000\000\0019\0019\000\000\0019\014\202\0019\022\210\000\000\021\138\021Z\000\000\000\000\000\000\021\142\000\n\021\146\000\000\021\150\021\154\021^\021\158\021b\000\000\000\153\000\000\000\000\n\209\021\162\000\000\021f\021\166\000\000\000\000\000\000\000\000\021j\000\165\000\000\021r\000\000\000\000\000\000\021v\012\026\000\000\021\170\000\153\000\153\021z\000\000\021\174\021\178\n\253\000\000\000\000\000\000\000\000\000\165\000\000\023\230\000\000\000\153\n\209\000\000\021~\000\000\000\000\000\153\000\153\000\000\000\000\000\000\000\165\000\165\000\000\000\000\000\000\000\153\000\000\000\000\012\018\000\000\000\153\000\000\000\000\tN\005\253\000\000\000\000\n\209\000\000\021\130\000\000\000\000\021\134\t\146\005\253\000\000\005\253\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\000\021\138\005\253\000\000\005\253\000\000\021\142\000\n\021\146\000\000\021\150\021\154\005\253\021\158\005\253\000\000\000\000\t\210\005\253\000\000\021\162\005\253\005\253\021\166\000\000\005\253\000\000\000\000\005\253\000\000\005\253\005\253\000\000\000\000\000\000\005\253\000\000\000\000\021\170\000\153\005\253\005\253\005\253\021\174\021\178\n\209\012\026\005\253\000Z\000\000\005\253\000\000\005\253\n&\000\000\000\000\005\253\005\253\000Z\005\253\000\153\000\000\005\253\005\253\000\000\000\000\000\000\000\000\000\000\005\253\000\000\000\000\000\000\000\000\005\253\000\153\000\153\005\253\000\000\000\000\005\253\nR\000\000\000\000\005\253\005\253\000Z\005\253\000\000\000\000\005\253\000\000\000\000\000\000\000\000\005\253\005\253\005\253\000\000\005\253\005\253\000\000\005\253\000\000\000\000\005\253\005\253\005\253\000\000\005\253\005\253\000\000\005\253\000\000\000\000\005\253\000\000\000\000\000\000\005\253\000\000\000\000\005\253\001\170\000\000\000\000\001\174\005\253\005\253\001\178\000\000\000\000\005\253\005\253\005\253\005\253\000\000\005\253\005\253\015\014\005\253\000\000\005\253\005\253\000\000\001\182\000\000\005\253\001\186\000\000\005\253\000\000\000\000\000\000\001\202\001\206\000\000\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001\222\005\253\001\226\000\000\000\000\000\000\005\253\005\253\000\000\000\000\001\230\001\234\000\000\000\000\001\238\001\242\001\246\000\000\000\000\001\250\001\254\000\000\001\170\002\002\000\000\001\174\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\002\006\000\000\000\000\000\000\001\182\002\n\000\000\001\186\000\n\000\000\000\000\000\000\000\000\001\202\001\206\000\000\001\214\002\018\000\000\000\000\000\000\000\000\000\000\001\222\000\000\001\226\000\000\000\000\002\022\000\000\000\000\000\000\000\000\001\230\001\234\000\000\000\000\001\238\001\242\001\246\000\000\002\026\001\250\001\254\000\000\001\170\002\002\002\030\001\174\000\000\b\189\001\178\000\000\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000\000\018\170\002&\002\006\000\000\000\000\000\000\001\182\002\n\000\000\001\186\000\n\000\000\000\000\000\000\000\000\001\202\001\206\000\000\001\214\002\018\000\000\000\000\000\000\000\000\000\000\001\222\000\000\001\226\001\170\000\000\002\022\001\174\000\000\000\000\001\178\001\230\001\234\000\000\000\000\001\238\001\242\001\246\000\000\002\026\001\250\001\254\000\000\000\000\002\002\002\030\001\182\000\000\000\000\001\186\000\000\000\000\000\000\000\000\002\"\001\202\007J\000\000\001\214\000\000\002&\002\006\000\000\000\000\000\000\001\222\002\n\001\226\000\000\000\n\000\000\000\000\000\000\000\000\000\000\001\230\001\234\000\000\002\018\001\238\001\242\001\246\000\000\000\000\001\250\001\254\000\000\001\170\002\002\002\022\001\174\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\026\000\000\000\000\002\006\000\000\000\000\002\030\001\182\002\n\000\000\001\186\000\n\000\000\000\000\000\000\002\"\001\202\002\014\000\000\001\214\002\018\002&\000\000\000\000\000\000\000\000\001\222\000\000\001\226\000\000\000\000\002\022\000\000\000\000\000\000\000\000\001\230\001\234\000\000\006*\001\238\001\242\001\246\000\000\002\026\001\250\001\254\000\000\004Y\002\002\002\030\004Y\000\000\000\000\004Y\000\000\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000\000\000\000\002&\002\006\000\000\000\000\000\000\004Y\002\n\000\000\004Y\000\n\000\000\000\000\000\000\000\000\004Y\004Y\000\000\004Y\002\018\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\000\000\000\000\002\022\000\000\000\000\000\000\000\000\004Y\004Y\000\000\000\000\004Y\004Y\004Y\000\000\002\026\004Y\004Y\000\000\021V\004Y\002\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\021Z\000\000\000\000\000\000\000\000\002&\004Y\000\000\000\000\000\000\021^\004Y\021b\000\000\004Y\000\000\000\000\000\000\000\000\000\000\021f\000\000\000\000\004Y\000\000\000\000\021j\000\000\000\000\021r\000\000\000\000\000\000\021v\000\000\000\000\000\000\000\000\000\000\021z\000\000\000\000\000\000\000\000\000\000\005\253\000\000\004Y\005\253\000v\022\206\000\000\005\253\004Y\005\253\021~\000\000\000\000\000\000\005\253\005\253\000\000\004Y\000\000\000\000\000\000\000\000\000\000\004Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\209\000\000\021\130\000\000\000\000\021\134\005\253\000\000\000\000\005\253\000\194\000\000\000\000\005\253\000\000\005\253\000\000\000\000\021\138\000\000\005\253\005\253\000\000\021\142\000\n\021\146\000\000\021\150\021\154\005\253\021\158\000\000\005\253\001f\000\000\005\253\001\002\021\162\000Z\005\253\021\166\005\253\000\000\000\000\000\000\000\000\005\253\005\253\000\000\005\253\005\253\000\000\000\000\005\253\005\253\021\170\000\000\000\000\000\000\000\000\021\174\021\178\n\209\000\000\000\000\005\253\000\000\000\000\000\000\000\000\005\253\000\000\000\000\000\000\004*\000\000\005\253\000\000\000\000\000Z\005\253\000\000\005\253\000\000\000\000\000\000\005\253\000\000\000\000\000\000\005\253\005\253\000\000\000\000\005\253\005\253\005\253\000\000\000\000\000\000\004\254\000\000\000\000\000\000\000\000\000Z\005\253\000\000\005\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\253\005\253\000\000\000\000\005\253\005\253\000\000\000\000\005\253\000\000\000\000\005\253\005\253\000\000\000\000\005\253\005\253\000\000\000\000\000\000\005\253\005\253\000\000\000\000\000\000\005\253\000\000\005\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\253\000\000\000\000\000\000\000\000\005\253\000\000\000\000\000\000\000\000\000\000\000\000\005\253\000\000\000\000\005\253\005\253\000\000\000\000\005\253\000\000\000\000\000\000\000\000\005\253\005\253\000\000\001\170\000\000\005\253\001\190\000\000\000\000\001\194\000\000\000\000\000\000\000\000\005\253\000\000\000\000\005\253\005\253\000\000\000\000\005\253\000\000\000\000\000\000\001\182\005\253\005\253\001\186\000\000\000\000\005\253\000\000\000\000\001\198\001\218\000\000\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001\222\000\000\001\226\001\170\000\000\000\000\001\190\000\000\000\000\001\194\005v\001\234\000\000\000\000\005z\001\242\001\246\000\000\000\000\005~\005\130\000\000\000\000\005\134\000\000\001\182\000\000\000\000\001\186\000\000\000\000\000\000\000\000\000\000\001\198\0072\000\000\001\214\000\000\000\000\005\138\000\000\000\000\000\000\001\222\005\142\001\226\000\000\000\n\000\000\000\000\000\000\000\000\000\000\005v\001\234\000\000\005\150\005z\001\242\001\246\000\000\000\000\005~\005\130\005\253\000\000\005\134\005\253\003R\000\000\005\253\005\253\000\000\005\253\003\150\000\000\000\000\005\253\005\253\005\253\005\154\005\253\003\214\005\138\005\253\005\253\005\158\005\253\005\142\000\000\000\000\000\n\005\253\005\253\000\000\005\162\000\000\000\000\000\000\000\000\005\150\002&\000\000\000\000\000\000\000\000\000\000\000\000\005\253\000\000\000\000\000\000\005\253\000\000\005\253\000\000\000\000\000\000\005\253\000\000\000\000\000\000\005\253\000\000\005\154\000\000\005\253\000\000\005\253\000\000\005\158\000\000\007z\000\000\005\253\000\000\000\000\000Z\000\000\005\162\005\253\000\000\005\253\000Z\000\000\002&\005\253\000\000\005\253\000\000\000\000\000Z\005\253\005\253\005\253\000\000\000\157\000\000\005\253\005\253\000\000\000\000\005\253\000\000\005\253\000\000\005\253\005\253\000\000\000\000\005\253\000\000\000\000\000\000\000\000\005\253\000\000\000\000\005\253\000\157\000\157\005\253\000\000\000\000\000\000\005\253\000\000\000\000\000\000\005\253\005\253\005\253\000\000\000\000\000\157\000\000\005\253\000\000\000\000\005\253\000\157\000\157\000\000\000\000\005\253\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\012\018\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\253\000\000\000\000\005\253\005\253\000\000\005\253\005\253\000\000\005\253\005\253\000\000\005\253\005\253\005\253\000\157\000\000\005\253\005\253\005\253\000\000\005\253\001\170\005\253\000\000\001\190\005\253\005\253\001\194\000\000\000\000\005\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\000\000\000\000\001\186\000\000\000\000\000\000\000\000\000\000\001\198\005\146\000\157\001\214\000\000\000\000\000\000\000\000\000\000\012\026\001\222\000\000\001\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005v\001\234\000\000\000\157\005z\001\242\001\246\000\000\014e\005~\005\130\014e\000\000\005\134\000\000\000\000\000\000\000\000\000\157\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\138\014e\014e\000\000\000\000\005\142\000\000\000\000\000\n\005\182\000\000\000\000\000\000\000\000\000\000\000\000\014e\005\150\000\000\000\000\014e\000\000\014e\014e\000\000\000\000\005\190\000\000\000\000\005\202\000\000\000\000\014e\001\170\000\000\014e\n\190\014e\000\000\n\194\000\000\005\154\000\000\000\000\000\000\000\000\000\000\005\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\005\162\000\000\000\000\000\000\014e\000\000\002&\000\000\n\198\n\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\222\000\000\001\226\000\000\000\000\000\000\005\214\000\000\000\000\000\000\n\230\001\234\000\000\000\000\n\234\001\242\001\246\000\000\000\000\n\238\n\242\000\000\000\000\n\246\000\000\000\000\014e\014e\000\000\014e\000\000\005\218\000\000\014e\000\000\000\000\000\000\000\000\000\000\n\250\n\254\000\000\005\226\001\170\000\000\011\002\n\190\000\000\000\n\n\194\000\000\000\000\014e\000\000\000\000\000\000\000\000\011\n\014e\000\000\000\000\000\000\014e\014e\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\198\011\006\000\000\000\000\000\000\000\000\000\000\011\014\000\000\000\000\001\222\000\000\001\226\011\018\000\000\000\000\000\000\000\000\000\000\000\000\n\230\001\234\011\022\000\000\n\234\001\242\001\246\000\000\002&\n\238\n\242\000\000\000\000\n\246\000\000\000\000\000\000\000\000\001\170\000\000\000\000\n\190\000\000\000\000\n\194\000\000\000\000\000\000\000\000\n\250\n\254\000\000\000\000\000\000\000\000\011\002\000\000\000\000\000\n\000\000\001\182\000\000\000\000\000\000\000\000\000\000\000\000\011\n\000\000\n\198\011\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\222\000\000\001\226\001\170\000\000\000\000\r\150\000\000\000\000\r\154\n\230\001\234\011\014\000\000\n\234\001\242\001\246\000\000\011\018\n\238\n\242\000\000\000\000\n\246\000\000\001\182\000\000\011\022\000\000\000\000\000\000\000\000\000\000\002&\r\158\014\250\000\000\000\000\000\000\n\250\n\254\000\000\000\000\000\000\001\222\011\002\001\226\000\000\000\n\000\000\000\000\000\000\000\000\000\000\r\182\001\234\000\000\011\n\r\186\001\242\001\246\000\000\000\000\r\190\r\194\000\000\000\000\r\198\000\000\000\000\000\000\000\000\001\170\000\000\000\000\r\150\000\000\000\000\r\154\000\000\000\000\011\014\000\000\n\250\r\202\000\000\000\000\011\018\000\000\r\206\000\000\000\000\000\n\000\000\001\182\000\000\011\022\000\000\000\000\000\000\000\000\r\214\002&\r\158\r\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\222\000\000\001\226\001\170\000\000\000\000\r\150\000\000\000\000\r\154\r\182\001\234\r\218\000\000\r\186\001\242\001\246\000\000\r\222\r\190\r\194\000\000\000\000\r\198\000\000\001\182\000\000\r\226\000\000\000\000\000\000\000\000\000\000\002&\r\158\r\210\000\000\000\000\000\000\n\250\r\202\000\000\000\000\000\000\001\222\r\206\001\226\000\000\000\n\000\000\000\000\000\000\000\000\b\181\r\182\001\234\000\000\r\214\r\186\001\242\001\246\000\000\000\000\r\190\r\194\b\181\000\000\r\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\181\000\000\b\181\000\000\000\000\000\000\r\218\000\000\n\250\r\202\b\181\000\000\r\222\000\000\r\206\000\000\b\181\000\n\000\000\b\181\000\000\r\226\023\226\b\181\022*\000\000\r\214\002&\000\000\b\181\000\000\000\000\000\000\000\000\021Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021^\b\181\021b\000\000\000\000\000\000\r\218\000\000\000\000\000\000\021f\000\000\r\222\000\000\000\000\000\000\021j\000\000\000\000\021r\000\000\r\226\000\000\021v\000\000\000\000\000\000\002&\b\181\021z\000\000\b\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\181\021~\024\002\000\000\000\000\b\181\b\181\b\181\000\000\b\181\b\181\000\000\b\181\000\000\000\000\000\000\000\000\000\000\000\000\b\181\000\000\000\000\b\181\b\029\000\000\000\000\000\000\000\000\021\130\000\000\000\000\021\134\000\000\000\000\000\000\b\029\000\000\b\181\000\000\000\000\000\000\000\000\b\181\b\181\021\138\b\029\000\000\b\029\000\000\021\142\000\n\021\146\000\000\021\150\021\154\b\029\021\158\000\000\000\000\000\000\000\000\b\029\000\000\021\162\b\029\000\000\021\166\000\000\b\029\000\000\022\178\000\000\000\000\000\000\b\029\000\000\000\000\000\000\000\000\000\000\000\000\021\170\021Z\000\000\000\000\000\000\021\174\021\178\000\000\000\000\b\029\024\002\021^\000\000\021b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021f\000\000\000\000\000\000\000\000\000\000\021j\000\000\000\000\021r\000\000\000\000\000\000\021v\000\000\b\029\000\000\000\000\b\029\021z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\029\000\000\000\000\000\000\021~\b\029\b\029\b\029\000\000\b\029\b\029\000\000\b\029\000\000\000\000\000\000\000\000\000\000\000\000\b\029\000\000\000\000\b\029\000\000\000\000\000\000\022\202\000\000\000\000\000\000\000\000\021\130\000\000\000\000\021\134\000\000\000\000\b\029\021Z\000\000\000\000\000\000\b\029\b\029\000\000\000\000\000\000\021\138\021^\000\000\021b\000\000\021\142\000\n\021\146\000\000\021\150\021\154\021f\021\158\000\000\000\000\000\000\000\000\021j\000\000\021\162\021r\000\000\021\166\021V\021v\000\161\000\000\000\000\000\000\000\000\021z\000\000\000\000\000\000\000\000\021Z\000\000\021\170\000\000\000\000\000\000\000\000\021\174\021\178\000\000\021^\021~\021b\000\161\000\161\000\000\000\000\000\000\000\000\000\000\021f\000\000\000\000\000\000\000\000\000\000\021j\000\000\012\n\021r\000\000\000\000\000\000\021v\000\161\000\161\000\000\000\000\021\130\021z\000\000\021\134\000\000\000\000\000\161\000\000\000\000\012\018\000\000\012\"\000\000\000\000\000\000\000\000\021\138\023v\000\000\000\000\000\000\021\142\000\n\021\146\000\000\021\150\021\154\000\000\021\158\000\000\000\000\000\000\000\000\000\000\000\161\021\162\000\000\000\000\021\166\021V\000\000\000\000\000\000\000\000\021\130\000\000\000\000\021\134\000\000\000\000\000\000\021Z\000\000\021\170\000\000\000\000\000\000\000\000\021\174\021\178\021\138\021^\000\000\021b\000\000\021\142\000\n\021\146\000\000\021\150\021\154\021f\021\158\000\000\000\161\000\000\000\000\021j\000\000\021\162\021r\012\026\021\166\000\000\021v\000\000\000\000\000\000\000\000\000\000\021z\000\000\000\000\000\000\000\000\000\161\000\000\021\170\000\000\000\000\000\000\000\000\021\174\021\178\000\000\000\000\024\206\000\000\000\000\000\000\000\161\000\161\000\000\004i\004i\004i\004i\000\000\004i\000\000\004i\004i\000\000\004i\000\000\004i\000\000\004i\000\000\004i\004i\004i\004i\021\130\000\000\000\000\021\134\000\000\000\000\000\000\000\000\000\000\001v\000\000\000\000\000\000\000\000\004i\000\000\021\138\000\000\000\000\000\000\000\000\021\142\000\n\021\146\000\000\021\150\021\154\000\000\021\158\004i\000\000\000\000\000\000\000\000\000\000\021\162\000\000\000\000\021\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\000\000\000\000\021\170\000\000\004i\000\000\000\000\021\174\021\178\000\000\000\000\000\000\004i\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\004i\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000R\000V\000f\000\170\000\000\000\174\004i\000\178\000\246\000\000\000\254\000\000\001\014\001N\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001^\001F\000\000\000\000\000\000\000\000\001j\000\000\021V\000\000\000\000\000\000\000\000\000\000\001b\000\000\001N\000\000\004i\000\000\021Z\000\000\000\000\000\000\000\000\000\000\000\000\001n\000\000\000\000\021^\000\000\021b\000\000\000\000\000\000\001^\000\000\000\000\000\000\021f\000\000\001j\000\000\000\000\000\000\000\000\000\000\000\000\021r\001b\000\000\000\000\021v\000\000\000\000\000\000\000\000\000\n\021z\000\000\000\000\000\000\001n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021~\000\000\000\000\001r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\130\012\181\000\000\021\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\000\000\000\000\000\000\021\138\000\000\000\000\000\000\000\000\021\142\024\250\021\146\000\000\021\150\021\154\000\000\021\158\000\000\000\000\000\000\000\000\000\000\000\000\021\162\000\000\002I\021\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\170\000\000\000\000\000\000\000\000\021\174\021\178\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\177\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\001F\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\012\002\012*\000\000\000\000\000\000\000\000\001N\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\012\n\000\000\000\000\000\000\014I\000\000\000\177\000\177\000\000\000\000\000\000\001^\001N\000\000\000\000\000\000\000\177\001j\000\000\012\018\000\000\012\"\000\000\000\000\000\000\001b\000\000\014I\014I\004^\004b\000\000\001^\000\000\000\000\0116\000\217\000\000\001n\000\217\000\000\000\000\014I\000\000\012:\000\000\001b\000\000\014I\014I\026~\004b\011>\000\000\000\000\011J\000\000\000\000\014I\000\217\000\217\014I\000\000\014I\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\000\000\217\000\000\000\217\000\217\000\000\000\000\000\177\000\000\014I\000\000\000\000\004f\000\217\012\026\000\000\006v\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\177\011V\000\000\000\000\000\000\026\130\003m\000\000\000\000\002A\000\000\000\000\000\000\000\217\000\000\000\177\000\177\000\000\000\000\000\000\000\000\014I\000\000\000\000\000\000\000\000\011Z\003e\014I\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\011b\000\178\000\246\000\000\000\254\014I\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000\217\000\000\000\000\000\217\014I\014I\000\000\006~\000\000\000\000\000\221\000\000\001F\000\221\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\237\000\000\000\000\000\000\000\000\000\217\001N\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\000\000\217\000\217\000\000\000\000\000\000\006f\006\142\000\000\000\000\000\000\000\000\001^\006n\000\000\000\000\000\000\000\221\000\000\000\221\000\221\006n\000\000\000\000\000\000\000\237\001b\000\237\000\237\000\221\026~\004b\006v\000\000\006\134\000\229\000\000\000\237\000\229\000\000\006v\000\000\006\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\006f\006\142\000\000\000\000\000\000\000\000\000\000\006\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006n\000\000\000\000\000\000\000\229\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\229\026\138\000\000\006v\000\000\006\134\000\000\000\000\000\221\000\000\000\000\000\221\000\000\000\000\000\000\006~\000\237\000\000\000\000\000\237\000\000\000\000\000\000\006~\000\000\000\000\000\000\000\000\000\229\000\000\000\000\000\000\000\233\000\000\000\221\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\221\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\237\000\000\006f\006\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\241\000\000\000\000\000\241\000\229\000\000\006n\000\229\000\000\000\000\000\233\006~\000\233\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233\006f\006\142\006v\000\000\006\134\000\000\000\000\000\229\000\000\006^\000\000\000\000\001\001\000\000\000\000\006n\000\000\000\229\000\229\000\241\000\000\000\241\000\241\000\000\000\000\000\000\000\000\006\158\000\000\000\000\000\000\006\150\006f\006\142\006v\000\000\006\134\000\000\000\000\000\000\000\000\006^\000\000\000\000\000\245\000\000\000\000\006n\000\000\000\000\000\000\001\001\000\000\001\001\006\206\000\000\000\000\000\000\000\000\006\158\000\000\000\000\000\000\006\150\006f\006\142\006v\000\233\006\134\000\000\000\233\000\000\000\000\006^\006~\000\000\000\253\000\000\000\000\006n\000\000\000\000\000\000\000\245\000\000\000\245\000\245\000\000\000\000\000\000\000\000\006\158\000\000\000\233\000\000\006\150\006f\006\142\006v\006\166\006\134\000\000\000\241\000\233\000\233\000\000\006~\000\000\000\000\000\000\000\000\006n\000\000\000\000\000\000\000\253\000\000\000\253\006\206\000\000\000\000\000\000\000\000\006\158\000\000\000\241\000\000\006\150\000\000\000\000\006v\006\166\006\134\000\000\001\001\000\241\000\241\000\169\006~\nf\000\000\000\000\nj\000\000\000\000\000\000\025\214\000\000\nn\000\000\000\000\000\000\000\000\nr\025\218\006\158\000\000\001\001\000\000\000\000\012\002\012*\000\000\006\166\000\000\000\000\000\245\006\214\006\174\000\000\006~\000\000\000\000\000\000\000\000\012\n\000\000\000\000\000\000\000\000\000\000\000\169\000\169\000\000\000\000\000\000\000\000\016\202\000\000\000\245\000\000\000\169\000\173\000\000\012\018\006\166\012\"\000\000\000\253\000\245\006\174\000\000\006~\016\206\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\000\012\002\012*\000\000\011\250\000\169\000\000\000\253\000\000\001\234\000\000\000\000\000\000\r\026\001\246\000\000\012\n\000\253\006\174\012\002\012*\000\000\000\173\000\173\000\000\000\000\000\000\012\002\012*\000\000\000\000\000\000\000\173\000\000\012\n\012\018\000\000\012\"\000\000\000\000\000\181\000\181\012\n\000\000\000\000\000\169\000\n\000\000\000\197\012Z\0122\004\189\012\026\012\018\000\000\012\"\000\000\000\000\0122\000\000\012:\012\018\000\000\012\"\000\000\000\000\000\169\000\000\000\000\000\000\011\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012:\000\000\000\000\000\169\000\169\000\000\000\000\000\000\012:\000\000\000\000\000\000\000\000\000\000\000\000\012\002\012*\000\000\t)\t)\000\000\000\000\000\173\t)\000\000\000\000\000\000\000\000\000\000\012\026\012\n\000\000\000\000\000\000\000\000\000\000\000\185\000\185\000\000\000\000\012B\000\000\011\250\000\173\000\000\000\000\0122\012\026\012B\012\018\000\000\012\"\000\000\000\000\000\000\012\026\000\000\000\000\000\173\000\173\000\000\000\181\000\000\000\000\000\000\012\002\012*\000\000\000\000\000\197\000\000\000\000\000\000\000\000\012:\000\000\000\181\000\181\000\000\000\000\012\n\000\000\000\000\000\000\012b\012J\000\193\012Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0122\000\000\000\000\012\018\000\000\012\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012B\000\000\000\000\000\000\000\000\000\000\000\000\012\026\000\000\000\000\012:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\012J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012B\000\000\000\000\000\000\000\000\000\000\000\000\012\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\012J")) let lhs = - (16, "\000\012\000\011\000\n\000\t\000\008\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\006\001\006\001\006\001\005\001\005\001\005\001\005\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\001\000\001\000\000\255\000\254\000\254\000\254\000\253\000\253\000\253\000\252\000\252\000\252\000\251\000\251\000\251\000\250\000\249\000\248\000\247\000\247\000\246\000\246\000\245\000\245\000\244\000\244\000\243\000\243\000\242\000\241\000\241\000\240\000\240\000\239\000\239\000\239\000\238\000\238\000\237\000\236\000\235\000\234\000\233\000\232\000\231\000\230\000\229\000\228\000\227\000\226\000\225\000\225\000\224\000\224\000\223\000\223\000\222\000\222\000\221\000\221\000\221\000\220\000\220\000\220\000\220\000\220\000\219\000\219\000\219\000\219\000\219\000\218\000\217\000\217\000\217\000\217\000\216\000\216\000\215\000\215\000\214\000\214\000\213\000\213\000\213\000\212\000\212\000\212\000\211\000\211\000\211\000\211\000\210\000\210\000\210\000\210\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\208\000\207\000\207\000\206\000\206\000\206\000\205\000\205\000\204\000\204\000\204\000\203\000\203\000\202\000\202\000\202\000\201\000\200\000\199\000\199\000\198\000\198\000\197\000\197\000\196\000\196\000\195\000\195\000\194\000\193\000\192\000\192\000\191\000\191\000\190\000\189\000\189\000\189\000\189\000\188\000\187\000\186\000\186\000\185\000\184\000\184\000\183\000\183\000\183\000\183\000\183\000\182\000\182\000\182\000\182\000\181\000\181\000\181\000\181\000\180\000\180\000\180\000\180\000\179\000\178\000\178\000\177\000\177\000\177\000\176\000\175\000\175\000\175\000\175\000\174\000\173\000\173\000\173\000\173\000\172\000\172\000\172\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\166\000\166\000\166\000\166\000\165\000\165\000\165\000\165\000\164\000\164\000\164\000\164\000\164\000\163\000\162\000\162\000\162\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\154\000\154\000\154\000\154\000\154\000\154\000\153\000\152\000\151\000\151\000\150\000\150\000\149\000\149\000\148\000\148\000\147\000\147\000\146\000\146\000\145\000\145\000\144\000\144\000\143\000\143\000\142\000\142\000\141\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\134\000\133\000\133\000\132\000\132\000\131\000\131\000\130\000\130\000\129\000\129\000\128\000\128\000\127\000\127\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000y\000y\000x\000x\000w\000w\000v\000u\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000s\000r\000q\000p\000o\000n\000m\000l\000k\000j\000j\000j\000i\000i\000i\000h\000h\000h\000h\000g\000f\000e\000d\000c\000b\000a\000a\000a\000`\000`\000`\000_\000_\000^\000^\000^\000]\000]\000\\\000[\000[\000[\000Z\000Y\000Y\000X\000X\000W\000W\000V\000V\000U\000U\000T\000T\000S\000S\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000Q\000Q\000P\000P\000O\000O\000N\000N\000N\000N\000N\000M\000M\000L\000L\000L\000L\000K\000J\000I\000I\000I\000H\000H\000H\000G\000G\000G\000G\000G\000G\000F\000F\000F\000F\000F\000E\000E\000E\000E\000E\000E\000E\000D\000D\000D\000D\000D\000D\000D\000C\000C\000C\000C\000C\000C\000C\000B\000B\000B\000B\000B\000B\000B\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000@\000@\000@\000@\000@\000@\000@\000@\000@\000@\000@\000@\000@\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000=\000=\000=\000=\000=\000<\000;\000;\000;\000;\000;\000;\000:\0009\0008\0007\0006\0005\0005\0005\0005\0005\0005\0005\0004\0004\0004\0004\0003\0002\0002\0001\0001\0000\0000\000/\000/\000.\000.\000-\000-\000,\000,\000+\000+\000*\000*\000)\000)\000(\000(\000'\000'\000&\000&\000%\000%\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000#\000#\000#\000\"\000\"\000\"\000\"\000!\000!\000!\000!\000!\000 \000\031\000\031\000\031\000\030\000\030\000\029\000\028\000\027\000\027\000\027\000\027\000\026\000\026\000\026\000\025\000\025\000\024\000\024\000\024\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\015\000\015\000\014\000\013\000\013\000\013\000\013\000\013") + (16, "\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\018\001\018\001\018\001\017\001\017\001\017\001\017\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\015\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\012\001\012\001\012\001\012\001\011\001\n\001\n\001\n\001\t\001\t\001\t\001\b\001\b\001\b\001\007\001\007\001\007\001\006\001\005\001\004\001\003\001\003\001\002\001\002\001\001\001\001\001\000\001\000\000\255\000\255\000\254\000\253\000\253\000\252\000\252\000\251\000\251\000\251\000\251\000\250\000\250\000\250\000\249\000\248\000\247\000\246\000\245\000\244\000\243\000\242\000\241\000\240\000\239\000\238\000\237\000\236\000\235\000\235\000\234\000\234\000\233\000\233\000\232\000\232\000\231\000\231\000\231\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\229\000\228\000\228\000\228\000\228\000\227\000\227\000\226\000\226\000\225\000\225\000\224\000\224\000\224\000\223\000\223\000\223\000\222\000\222\000\222\000\222\000\221\000\221\000\221\000\221\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\219\000\218\000\218\000\217\000\217\000\217\000\216\000\216\000\215\000\215\000\215\000\214\000\214\000\213\000\213\000\213\000\212\000\211\000\210\000\210\000\209\000\209\000\208\000\208\000\207\000\207\000\206\000\206\000\205\000\204\000\203\000\203\000\202\000\202\000\201\000\201\000\201\000\200\000\199\000\198\000\198\000\197\000\196\000\196\000\196\000\196\000\196\000\195\000\195\000\195\000\195\000\194\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\192\000\191\000\191\000\190\000\190\000\190\000\189\000\188\000\188\000\188\000\188\000\187\000\186\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\183\000\183\000\182\000\182\000\181\000\181\000\181\000\181\000\181\000\180\000\180\000\180\000\180\000\179\000\179\000\179\000\179\000\179\000\178\000\177\000\177\000\177\000\177\000\176\000\175\000\175\000\174\000\174\000\173\000\173\000\172\000\172\000\171\000\171\000\170\000\170\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\168\000\167\000\166\000\166\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\151\000\150\000\150\000\149\000\149\000\148\000\148\000\147\000\147\000\146\000\146\000\145\000\145\000\144\000\144\000\143\000\143\000\142\000\142\000\141\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\132\000\131\000\130\000\129\000\128\000\127\000~\000}\000|\000{\000{\000{\000z\000z\000z\000y\000y\000y\000y\000x\000w\000v\000u\000t\000s\000r\000r\000q\000q\000q\000p\000p\000o\000o\000o\000n\000n\000m\000l\000l\000l\000k\000j\000j\000i\000i\000h\000h\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000b\000a\000a\000`\000`\000_\000_\000^\000^\000]\000]\000\\\000\\\000[\000[\000[\000[\000[\000Z\000Z\000Y\000Y\000Y\000Y\000X\000W\000V\000V\000V\000U\000U\000U\000T\000T\000T\000T\000T\000T\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000P\000O\000O\000O\000O\000O\000O\000O\000N\000N\000N\000N\000N\000N\000N\000N\000N\000N\000N\000N\000N\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000J\000J\000J\000J\000J\000I\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000H\000G\000G\000G\000F\000E\000D\000C\000C\000B\000B\000A\000@\000@\000@\000?\000?\000>\000>\000=\000<\000<\000<\000<\000<\000<\000<\000;\000;\000;\000;\000;\000;\000;\000:\000:\000:\000:\000:\0009\0009\0008\0008\0008\0007\0007\0006\0006\0005\0005\0004\0004\0003\0003\0002\0002\0001\0001\0000\0000\000/\000/\000.\000.\000-\000-\000,\000,\000+\000+\000*\000*\000)\000)\000(\000(\000'\000'\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000%\000%\000%\000$\000$\000$\000$\000#\000#\000#\000#\000#\000#\000\"\000!\000!\000!\000 \000 \000\031\000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\027\000\027\000\027\000\026\000\026\000\025\000\025\000\025\000\024\000\024\000\024\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\015\000\015\000\014\000\r\000\r\000\r\000\r\000\r") let goto = - ((16, "\001\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\223\012\200\000\000\000\167\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003`\000\000\006\204\000\167\000_\000\000\000\000\000\000\000\000\000\000\017l\000$\008t\000\000\000\000\000\000\005\014\000\000\001\138\000\233\023\246\000\000\000\000\000\027\000\000\nH\000\000\007\178\019V\004\254\027\196\004\254\017\030)N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013^\027\196\000\000\000\000\013\128\000\000\014p\000\000\016\020\000\000\000\000\000\000\000\000\000\246\000\000$\198\000\000\000\000\008T\000\000\t\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000v\000\000\000\000\031.\000\000\031\194\000\000\"6\000\000%N\000\000'\192\000\000*X\000\000,f\000\000,\210\000\0002R\000\000 R\000\000\007\012\000\000\000\000\000\000\000\000\000\0008B\000\0009\246\000\000:\026\000\000\016\018\000\000\000\000\017r\000\000\000\000\000\211\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009\000\164\000\000\000\136\000\000\000\000\002\236\000\00050\000\000\000\000\000\000\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\140\000\000\000\000\000\000\000\000\000\000\000\000\012\234)N\000\000\021\156\000\000\026d\026\154\000\000\000\000\000\000\0010\000\000&\002\000\000\000\0005\132\000\000\000\000\000\000\002\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\224\000\000#\146\000\000\000\000\000\000\000\000\000\012\000\000\000\0005\166\000\000\000\000\000\000 \146\002\182\000\000\000\000\000\000\000\000\000\000\000\000\004\162\000\000\n\002\000\000\018\232\000\000\022\174\000\000\023\216\000\000\024\238\000\000%\188\000\000%\246\000\000(H\000\000+\184\000\000)\170\000\000\000\n\000\000-\028\000\000/t\000\0003\012\000\000\000\000\000\000\000\000\000\000\000D6\028\000\000\002*\000\000\000\000\000-\016\238\000\000\002\158\000\000\000\000\000\000\005\180\000\000\000\000\000\000)f\000\000\000\000\000\000\000\000\000\000*\006\000\000\000\000\000\000\000\000\000\000\000\000\000\140\000\000\000\000\000\000\000\150\000\000\000\000\000\000\0026\000\000\000\000\011.\000\167\000\000\000\000\001\005\013F\000\000\000\000\000\000\000\000\000\000\004(\000\000\011r\000\000%n\000\000\000\000\005\192\000\000\000\000\000\000\000\000\000\000\000\000\012z\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\000\003B\015\204\000\000\002\138\000\000\000\000\001|\002\226\000\000\000\000\000\000\000\000\t\026\000\000\000\000\000\000\000\000\000\000\000\000\000'\019\214\000\000\0218\000\000\000\000\000\000\001\006\000\000\013\244\001~\000\000\016$\000\000\000\000\000\000\000\232\001\168\000\000\000\000\000\000\007(\000\000\000\000\001\206\000\000\000\242\000\000\000\000\000\000\000\000\001@\002\182\000\000\002v\000\000\000\000\000\000\000\000\000\000\000\00066\000\000\001(\000\0006\184\000\000\000\000\0024\000\000\008N\000\000\005\158\004V*\030\000\000\000\000\000\000\002\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t@*\030\000\000\n\\\000\000\015f\015\240\000\000\000\000\000\000\006\166\000\000&X\000\000\000\0006\214\000\000\000\000\000\000\007\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\174\000\000&\196\000\000\000\000\000\000\003*\000\000\000\000\000\000\000\000\000\000\000\000\007j\000\000\014\030\000\000\0178\000\000\023\250\000\000\030D\000\000#\240\000\000'\172\000\000(\028\000\000)\238\000\000.x\000\000/\002\000\000\012\242\000\0005\008\000\0005&\000\0005\224\000\000*\190\000\000\000\000\000\0007|\000\000\000\000\000\000\000\011\000\0007\184\000\000\000\000\000\0007\210\000\000\000\000\0000\000\000\026\176\000!\000\196\000\000\002\156\000\000\014\254\002l\tX\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008.\000\000*l\000x\007\006\000\000\000\000\000\000/\008\000\000/\168\000\000/\190\000\000+\136,\012\000z\001\003\007$\000\000\000\000\000\000\000\183\000\000\000\000\001\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008j\000\000\000\000\000\000\000\000\000\000&\240\000\000,\134\000\000\000\000\000\000\000\000\000\000\000\000\015|\000\000\005&\000\000\000\000\000\000\000\000\t\252\001\250\000\000\016\162\000\000\000\000\000\000\000W\000\000\000\000 \230\006\152\000\000\003`/\136\000\000\000\000,b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0052,b\000\000\013|\000\000\018j\019\150\000\000\000\000\000\000\007\194\000\000'\168\000\000\000\0008n\000\000\000\000\000\000\007\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\212\000\000\002t\000\000\000\0008\142\000\0009^\000\000\000\000\000\000\022\028\000\000\000\00000\000\000\000\000\000\000\000\000\007\254\000\000\000\000\000\000\005\226\000\000\000\000\007\174\000\000\002v\000\000\000\000\000\000\000R\000\000\007\216\000\000\020\134\000\000\027\"\000\0001\018\000\0003P\000\0004\244\000\0006(\000\0007\140\000\0008\000\000\0008\226\000\0009\\\000\000:.\000\000\000\000\000\000\000\000\000\000\000\228\000\000\013\012\000\000\027\182\002\222\000\000\028\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\000\000\000\000\000\000\000\000\000\000\003\232\000\000\000\000\022\138\000\000\000\000\000\0000\166\000\000\000\000\015<\000\000\000\000\000\000\025T\000\000\000\000\000\000\000\0000\188\000\000\000\000\000\000\000\000\002\n\006\002\000\0001>\000\000\000\000\000\000\000\000\027D\004X\000\000\028\140\000\000\000\000\006j\000\0001\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\234\000\000\000\000\028\030\000\000\000\000\000\0001\198\000\000\000\000\004z\000\000\000\000\014\192\000\000\029 \000\000\000\000'\254\000\000\000\000\000\000\004$\000\000\000\000\028\234\000\000\000\000\000\000\000\0002\028\000\000\000\000\000\000\000\000\003<\018D\000\00022\000\000\000\000\000\000\000\000\000\000\000\000\016\200\000\000\000\000\0058\000\000\017F\000\000\004$\000\000\000\000\004@.~\000\000\005&\000\000\000\000\000\000\000\000\003*\000\000-f\000\000\029\212\001\182\030h\000\000\003*\000\000\017\236\000\000\018\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\158\031\140\005\014 \000\000\000\000\000\000\007\014\000\000\019\016\000\000\005\222\000\000\000\000\004$\001\222!D\000\000\005(\000\000\019\220!\234\000\000\000\000\020Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\190\t\214\000\000\007\200\000\000\000\000\000\000\000\000\007\214\000\000\021&\000\000\000\000\000\000\030\2169~\000\000\000\000\000\000$\160\000\000\000\000\000\000\000\000\n*\004\158\000\000\000\0002\146\000\000\000\000\000\000\000\000\004\240\000\000\000\000 F\000\000\000\000\000\0002\222\000\000\000\000\002.\000\000\000\0003v\000\000\000\000\003\216\004\252\000\000\000\0003z\000\000\000\000\007\252%P\000\000\005J\000\000\000\0003\214\000\000\000\000\000\000\000\000\000\000\000\000\005h\000\000\000\000\"\254\000\000\000\000\000\0003\236\000\000\000\000\000\000\000\000\000\000(\150\000\000\000\000\000\000\000-\000\000\000\000\000\0004\002\000\000\000\000\003\220\005\230\000\000\000\0004v\000\000\000\000\008\020\000\000\000\000\000\000\000\000\003*\000-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\204\000\000\021d\000\000\000\000\000\0009\130\000\000\n\162\000\000\000\000\000\000\002\238\000\000\000\000\003\148\021\226\000\000\023.\000\000\000\000\000\000\004\232\000\000\"\170\007L-V\000\0000\004\000\000\000\000\000\000\007\192\000\000.*\007\236.\192\000\000.\248\000\000\000\000\000\000\0082\000\0000\156\0084\000\000\000\000\001f\006j\008J\014\026\000\000\015\164\000\000\000\000\000\000\008\192\000\0005\252\008\212\000\000\000\000\000\000\002l\000\000\000\000\000\000\000\000\000\000\003*\000\000\000\000\003\008\000\000\000\022\000\000\000\000\000\000\003\134\000\000\000\000\000\000\000\000\000\000\000C\000\000\008>\003\234\001B\000\000\000\000\007\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\246\000?\000\000\000\000\000\003\000\000\000\000\000\000\004v\000\000\000\000\006~\008H\000\000\000\000\000\000\000\000\017p\019\176\006<\000\000\020\140\000\000\000\000\000\000\000\000\000\000\000\000\003.\000\000\000\000\004\180\000\000\000\000\004\026\000\000\000\000\003|\000\000\000\000\004\022\000\000\t*\0056\002z\000\000\000\000\t\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\252\022\016\000\000\000\000\000\000\000\000\022\140\000\000\000\000\011:\000\000\000\000\015\026\000\000\000\000\000\000\023\024\000\000\000\000\0009\023@\007\204\000\000\023`\000\000\000\000\000\000\000\000\000\000\000\000\005\154\000\000\t0\003\140\000\142\000\000\000\000\000\000\000\000\002`\000\000\000\000\000\000\000\000\000\000\000\000\012\134\000\000\000\000\006*\000\000\t:\005v\003\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\200\000\000\000\000\019(\023\240\000\000\000\000\000\000\000\000\002T\000\000\003\134\000\000\0208\000\000\000\000\000\000\000\000\000\000\000\000\000\011\020\164\000\000\000\000\021\128\000\000\000\000\000\000\000\000\000B\000\000\021\254\000\000\000\000\000\000\000\000\005\254\000\000\000\000\000\000\000\155\000\000\000\000\000Y\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\190\005\008\000\000\000\000\000\000\001\006\000\000\000\000\026\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000-\000\000\000\000\000\000\000\000\000\000\000\144\n\180\000\167\013\028\019\030\005b\000\000\000\000\006\164\006\188\007\250\008j\000\000\000\000\000\000\000\000\000\000\000\000\006\180\023\172\000\000\"(\t\024\000\000\000\000\t>\000\000\024x\000\000\025n\000\000\000\000\007.\024\182\000\000\"\216\000\000\007\136#\188\000\000\000\000\000\000\018\020\006\164\000\000\006\004\000\000\000\000\000\000\008\220\000\000\011\000\000\000\004:\006\170\000\000\000\000\000\000\000\000\004(\000\000\005\192\000\000\008\148\000\000\000\000\020\130\000\000\000\000\000\000\000\000\011 \000\000\000\000\006\164\tP\000\000\026\\\000\000\004$\005\220\000\000\000\000\000\000\000\000\000\000\0058\000\000\000\000\000\000\000\000\000\0004\132\t\026\000\000\tr\000\000\000\000\000\000\000\000\000\000\001\216\000\000\011\238\t\190\012l\000\000\003\180\013v\000\000\t\222\000\000\0048\000\000\005\128\000\000\006\004\000\000\000\000\000\000\000\000\000\000\t,\000\000\007L\000\000\t\246\000\000\007\208\000\000\004$\006*\000\000\004\\\000\000\006L\005\210\000\000\008h\000\000\008\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tB\000\000\t\202\000\000\000\000\000\000\000\000\000\000\006$\000\000\000\000\006\018\002r\007\208\000\000\008x\000\000\000\000\t^\t\242\000\000\007\158\000\000\000\000\000\000\000\000\007\224\000\000\000\000\000\000\000\000\000\000\000\000\008\022\008\156\008|\td\008\188\t\"\000\000\000\000\008\248\008\168\t\148\t\024\t\\\000\000\000\000\n2\000\000\000\000\000\000\000\000\n.\000\000\000\000"), (16, "\001\200\001\223\000>\000h\002u\004g\000\017\001<\002!\002\"\000\n\004|\000\005\004\206\000>\002E\001g\000*\002m\003n\003V\000\210\004e\000\231\001i\000>\004h\004t\004}\004t\004\207\004\210\004t\001?\004\225\000\t\000\008\000\t\003\007\005\026\005\027\004\127\000\016\004P\003!\000\167\001\202\000j\000*\004d\001\203\004\226\000k\002G\004\229\004t\000l\002\143\004}\004t\002\168\004\224\005\031\005 \0008\000j\004e\0009\000\212\002F\004h\004t\000\213\004\013\004\206\000h\001\200\001\223\000*\000}\000u\001+\005$\0055\005\006\004u\0056\004u\001\200\001\223\004u\004\207\004\210\004t\005b\003\157\003b\001\228\000\226\001 \005c\000j\000>\0008\005:\002\145\005d\002F\003 \002\146\001h\002!\002\"\004u\005\t\001-\004\214\004u\001h\000j\002[\000*\001\202\001\133\000k\004\019\001\203\000F\000l\004u\002\143\004\215\003!\002\168\001\202\002\\\001%\000\247\001\203\001@\001\135\0053\001\156\000\164\000\177\001\216\000>\000\210\000F\000\233\002a\004u\000u\003C\002b\000\164\001D\003(\000+\001\217\003\159\003|\000v\0053\001\200\001\223\000\164\000\165\003)\003h\001'\000\176\003j\001\228\002[\002v\005f\005*\002\145\004W\000\227\001\158\002\146\000*\002T\004\031\000w\000*\001x\002f\000>\000j\002\247\003W\000\212\003v\003\247\005g\000\213\004\128\003<\004\239\002\159\000\248\003\141\004k\003N\001\232\002[\000>\001\202\002\\\000*\002m\001\203\005\001\002\160\000\174\000\178\001A\000>\001\216\005\012\002\\\000\226\001E\002a\001\233\002$\001\023\002b\002H\001\234\001\216\000v\001\217\001\235\004v\002a\004B\004\216\001\236\002b\000\164\001D\003(\005i\001\217\003j\000\252\001t\000j\001\200\001\223\003p\005j\005\132\000*\000w\002\187\005\133\004\014\005\019\000\255\005\160\002f\000>\002K\002L\002N\005d\005\161\003 \001\136\003\143\002\159\002\228\002f\002\226\004l\000\017\0037\005\135\001\232\002\190\004\016\002\195\001\152\003<\002\160\001\135\000>\005\137\000n\003N\001\232\003!\000\187\001\202\002\\\002\198\001\146\001\203\001\233\004\219\000y\000\227\005\179\001\234\001\216\002\229\000*\001\235\000j\002a\001\233\002\193\001\236\002b\000~\001\234\003\020\000\215\001\217\001\235\001@\001\200\001\223\000>\001\236\002\143\001\162\005+\002\168\003\153\001\154\002d\004\225\001\159\003\007\000>\0009\000\017\000*\002m\003n\003V\002!\002\"\004\218\000\164\001D\003(\002f\004\226\000\251\005\180\004\229\004t\002\195\004\167\000\164\000\177\003)\004\215\005.\001\139\000F\001\200\001\221\003!\001\232\001\202\002\196\000j\000\252\001\203\004\168\002\145\001%\000\253\001\153\002\146\002\143\000\254\000*\002\168\002\\\004C\000\255\000h\001\233\000*\004o\000q\003<\001\234\001\216\003x\003A\001\235\003N\002a\0009\000>\001\236\002b\000\164\001D\003(\005\182\001\217\000j\001&\001\202\001B\004u\004\254\001\203\005j\005\132\002H\003}\001\228\005\184\001 \004U\002[\002o\000*\004\027\002\145\000\164\000\177\000j\002\146\001\161\000>\001+\000k\003p\002f\005\225\000l\000>\0037\005\186\000>\002\143\000F\001n\002\164\003<\000F\003\008\004\151\005\188\002J\003N\001\232\002\194\002\\\000>\004V\002#\001\163\004z\000u\004\\\000\164\000\165\001\216\001,\004\216\003O\002\159\002a\000E\000\250\001\233\002b\000\164\001D\003(\001\234\001\217\004\160\003\127\001\235\002\160\001\200\001\223\000j\001\236\003)\000F\002\145\003\203\003j\004\167\002\146\001I\000\224\004\161\000>\004\164\004t\001%\005d\005\166\003V\004a\002\187\001\216\004\215\002f\004\168\002\193\005\001\003W\000\174\003v\000>\004\030\000>\005\002\003<\001\217\002\159\004\029\003\141\002\233\003N\001\232\003!\004\018\001\202\002\190\002\245\000F\001\203\001\231\002\160\001q\000\248\000\164\000\165\001 \004\171\000v\005\176\000*\003\209\001\233\003\253\005\238\001\200\001\223\001\234\002\169\000*\000*\001\235\004\163\004u\000\181\004W\001\236\000\172\002\193\000>\001\200\001\223\000w\005d\005\166\003V\002u\000\164\000\165\004\161\003\029\004\164\004t\003s\000\164\000\177\001u\000\164\001D\003\007\003\030\000*\002\159\000\173\001\222\000\174\004%\0036\000\150\003!\001F\001\202\000\164\000\165\002\236\001\203\002\160\003\030\000\210\005\239\000\231\002\195\004|\004'\000j\005\171\001\202\005\240\004q\000y\001\203\004\029\004\221\000\151\002\\\002\196\004\152\000\152\000\174\004}\004t\000>\001+\000{\001\216\000\179\001p\001w\001s\002a\004u\003e\004\155\002b\000\164\001D\003(\005\172\001\217\004\154\000*\001(\000j\000\174\000h\000\212\005j\005\132\000q\000\213\000F\002d\000\164\000\177\000\164\000\177\001-\001\228\000>\000F\000F\002!\002\"\004\176\004\157\003g\000>\000D\002f\000C\002\143\003\130\003W\002\163\005\174\000\226\004\232\005x\004u\003<\002\\\000*\003\\\003A\003\143\003N\001\232\000*\000j\000F\001\216\001b\003\030\000k\003C\002a\000E\000l\002\246\002b\000\164\001D\003(\005\172\001\217\001\216\001\233\002\252\003,\001\200\001\223\001\234\005j\005\132\000j\001\235\004\173\002d\002\145\001\217\001\236\000u\002\146\000>\001\200\002\014\000*\005d\005\166\003V\005\145\005\146\001\230\005\248\002f\000h\004\016\003H\003W\000}\005\174\000*\001\030\001 \003\146\003<\003e\004\209\004\234\003A\000F\003N\001\232\003!\003L\001\202\004(\000\227\002\143\001\203\0050\002\168\000\164\000\165\004\207\004\210\004t\001\232\000j\005\173\001\202\005y\001\233\004'\001\203\001\200\001\223\001\234\002i\000j\003f\001\235\000>\005\150\000k\000*\001\236\001\233\000l\000>\004\131\000F\001\234\005d\005\166\003V\001\235\000F\003\185\000\164\000\165\001\236\002[\000v\000*\002u\002\145\000\164\001D\003\138\002\146\004\152\000u\000\174\003\132\002\159\005\022\004\228\000*\003!\001F\001\202\001\"\0051\004u\001\203\000\252\000w\005@\002\160\005\143\001m\005\190\005\004\004\226\005\175\000F\004\229\004t\003\193\001\001\003\138\0053\003\140\002\\\003\210\004\142\004t\001(\002\143\000\174\000F\002\168\000\150\001\216\005\194\001p\002u\001s\002a\002!\002\"\004|\002b\000\164\001D\003(\005\172\001\217\001\216\000*\005\014\000>\005E\000y\003\139\005j\005\132\000\151\004}\004t\002d\000\152\001\217\003\219\005E\005h\002\187\000{\000>\000@\001~\000C\002[\000v\001^\004u\002\145\002f\003\229\000*\002\146\003W\002\159\005\174\004u\002\189\000h\005\024\003<\002\\\000}\002\190\003A\000F\003N\001\232\002\160\000w\000E\001\216\002!\002\"\000\164\000\165\002a\005r\003\130\000F\002b\000\164\001D\003(\005\172\001\217\000>\001\233\005\213\004u\001\200\001\223\001\234\005j\005\132\002\193\001\235\000*\002d\000*\0051\001\236\000j\003\162\000>\001\200\001\221\000k\005d\005\166\003V\000l\005\218\003\254\000*\002f\0010\002!\002\"\003W\005\219\005\174\000\210\005\001\000\231\000\174\003<\003\021\005M\002\187\003A\000F\003N\001\232\003!\000u\001\202\003\164\002\195\002\143\001\203\000\210\002\168\0016\003\025\002\159\002\223\002\240\002\226\000j\005\183\001\202\002\196\001\233\002\190\001\203\001\200\001\223\001\234\002\160\002\143\001\205\001\235\002\168\000\164\001D\000j\001\236\003\168\000\212\000>\001\150\005I\000\213\005d\005\166\003V\005s\003\030\003\"\002\229\000\164\001D\002[\005H\000j\002\193\002\145\000\212\005[\005\224\002\146\000\213\000*\001F\005E\003&\004\200\004t\000\226\003!\004\137\001\202\004n\000j\001m\001\203\001\214\002\145\0025\005v\000*\002\146\005w\004/\000\174\005\187\000v\000\226\001\200\001\223\003\135\000h\000*\002D\002\\\000s\000\164\000\165\002\195\001p\0041\001s\000>\005`\001\216\003\162\002m\003n\003V\002a\000w\004|\002\196\002b\000\164\001D\003(\005\172\001\217\001\216\005E\000>\000@\000A\000C\004u\005j\005\132\004}\004t\004\003\002d\003!\001\217\001\202\000j\000\148\002\187\001\203\003\163\000k\0042\004\003\005\223\000l\001(\004l\000\174\002f\004r\000\227\000E\003W\002\159\005\174\005\205\002\192\000y\0041\003<\002\\\0049\002\190\003A\004\005\003N\001\232\002\160\000u\000\227\001\216\000{\002\148\005\233\002\159\002a\004\004\005\235\004;\002b\000\164\001D\003(\005\172\001\217\004s\001\233\004u\002\160\005\205\002\157\001\234\005j\005\132\002\193\001\235\004<\002d\005Q\004?\001\236\001\233\002\185\000j\000>\000@\001z\000C\003\030\001\200\001\220\004H\005G\004;\002f\001\238\0041\005T\003W\000\232\005\174\001\200\001\223\002\\\005\243\003<\005\134\003\030\004J\003A\005\241\003N\001\232\001\216\000E\000>\003\030\002\195\002a\002m\003n\003V\002b\000\164\001D\003(\005\250\001\217\004\022\003|\000v\002\196\001\233\000j\005z\001\202\003)\001\234\002\195\001\203\002d\001\235\000\164\001D\005\205\003!\001\236\001\202\005F\004\174\004K\001\203\002\200\004\222\000w\001F\004\235\002f\000h\004N\004\170\003W\000s\003v\001\200\001\223\001m\004J\003<\005\212\005\154\005\163\003A\005\155\003N\001\232\0041\004\168\000>\004\135\000x\005\152\002m\003n\003V\004\175\000\210\005\163\000\231\004\223\005\181\001p\004\236\001s\005\242\001\233\005\245\000>\005l\005\163\001\234\000y\000j\005\206\001\235\005\227\000\161\000k\003!\001\236\001\202\000l\005\205\005\177\001\203\000{\005\228\005\238\005\246\005\244\000>\000\210\004\168\000\233\005\159\000\164\001D\002t\005y\005\169\000j\001\200\001\219\000\212\001\216\000u\002\\\000\213\001F\005\238\005\249\005\185\005\252\005\251\0051\006\000\001\216\005\253\001\217\001m\003\184\002a\006\005\0051\006\001\002b\000\164\001D\003(\000\000\001\217\003z\003|\000\226\000\000\000j\001\200\001\223\000\212\003)\000\000\000\000\000\213\002d\001p\000j\001s\001\202\005\208\000\000\000>\001\203\000\000\0053\002m\003n\003V\000\000\005\237\000>\002f\005\237\000\000\005>\003W\000\238\003v\000\000\000\226\002\\\000\000\003<\000\000\000\000\000\000\003A\000\000\003N\001\232\001\216\003!\000\000\001\202\000\000\002a\005\237\001\203\000v\002b\000\164\001D\003(\000\000\001\217\003\161\003|\000\000\000>\001\233\001\200\001\223\000\000\003)\001\234\000\000\004\160\002d\001\235\000\164\001D\000\000\000w\001\236\000>\000\000\000\227\005\210\002m\003n\003V\000>\002\249\004\161\002f\004\164\004t\000\000\003W\000\000\003v\000\000\000\164\001D\000\000\003<\000\000\004\160\000x\003A\000\000\003N\001\232\000\000\003!\003\190\001\202\001\216\000\000\000\000\001\203\000\227\005{\000\000\004\161\000>\004\164\004t\003\005\000y\003\019\001\217\001\233\0017\000z\000\000\000\000\001\234\000\000\000\000\000\000\001\235\002\\\000{\001Y\000\000\001\236\000\241\000\000\000\000\000\000\003\202\001\216\003\208\004u\000\252\000\000\002a\001S\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\004\026\003|\001\003\000\251\000\164\005?\001\200\001\223\003)\000\000\000\000\001Y\002d\000\000\000\000\000\000\005K\005B\004u\000\000\000>\000\000\000\000\000\252\005d\001S\003 \000\000\000\253\002f\000\000\000\000\000\254\003W\000\000\003v\000\000\000\255\002\\\000\000\003<\000\000\000\164\001D\003A\000\000\003N\001\232\001\216\000\000\003!\000\000\001\202\002a\000\000\005s\001\203\002b\000\164\001D\003(\000\000\001\217\005\130\003|\000\164\001D\001\233\005\178\001\200\001\223\003)\001\234\000\000\000\000\002d\001\235\000\000\001T\000\000\000\000\001\236\000\000\000>\005~\000\000\005\127\005d\005v\003 \000>\005w\002f\000\174\000\000\000\000\003W\004\182\003v\000\164\001D\000\000\000\000\003<\000\000\004\225\001_\003A\001j\003N\001\232\001\\\001T\003!\001]\001\202\000\174\000\000\000\000\001\203\000\000\000\000\004\226\000\000\000\000\004\229\004t\000\000\004\188\000>\001\233\005\164\000\210\000\000\000\230\001\234\001\200\001\221\004\225\001\235\001_\002\\\001`\001Y\001\236\001\\\000\000\000\000\001]\002\143\000\174\001\216\002\168\000\000\000\000\004\226\002a\001S\004\229\004t\002b\000\164\001D\003(\005\165\001\217\000\000\000\000\000\000\000\000\000\000\000>\000\000\005j\005\132\005>\000j\000\000\005\168\000\212\000j\000\000\001\202\000\213\004u\000\000\001\203\000\000\000\000\000\000\000h\000\000\000>\002[\000\193\002f\000\000\002\145\000\000\0037\005\170\002\146\001\200\001\223\002\\\002\143\003<\000h\002\162\000\226\003A\000\190\003N\001\232\001\216\000\000\000>\004u\000\000\002a\005d\000\000\003 \002b\000\164\001D\003(\005\165\001\217\000\000\000\000\000\164\001D\001\233\000j\000\000\005j\005\132\001\234\000k\000\000\005\168\001\235\000l\001T\001R\003!\001\236\001\202\000j\000\000\000j\001\203\002\145\000\000\000\000\000k\002\146\002f\001S\000l\000\000\0037\005\170\005\167\001\200\001\223\000u\000\000\003<\000\164\000\165\001_\003A\001e\003N\001\232\001\\\002\187\000>\001]\001\216\000\174\002m\000u\003 \001\200\001\221\000\000\000\000\000\000\000\227\000\000\004\237\002\159\001\217\001\233\002\230\000>\000\000\000\000\001\234\002m\002\190\000\000\001\235\000\000\000\000\002\160\003!\001\236\001\202\000\164\005?\000\000\001\203\000\000\000\000\000\000\001\128\000\000\000\174\000\000\000\000\005J\005B\004\242\000h\004B\002\232\000j\000\189\001\202\000\164\001D\002\193\001\203\002\\\000\000\000\000\000\000\004 \000\000\002\004\000\000\003\156\001T\001\216\000\000\000v\002\159\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\005\165\001\217\000\000\001\233\002\160\000\000\000v\001\200\001\223\005j\005\132\000j\002\238\000w\005\168\0039\000k\001\236\002\195\001\\\000l\000>\001]\000\000\000\174\002m\003:\003V\000\000\000\000\000w\002f\002\196\000\000\000\000\0037\005\170\000\000\001\200\001\223\002\\\000\000\003<\000\000\000u\000\000\003A\000\000\003N\001\232\001\216\003!\000>\001\202\000\000\002a\002m\001\203\003 \002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\000\000\001\233\000\000\001\216\000\000\003)\001\234\000\000\004\160\003\145\001\235\000\164\001D\003(\003!\001\236\001\202\001\217\000\000\000\000\001\203\000\000\001\200\001\218\003)\004\161\002f\004\164\004t\000\000\0037\003\147\002u\001\200\001\223\000\000\000\000\003<\000\000\000\000\002k\003A\000\000\003N\001\232\003\007\003\154\000>\000\000\004E\003\156\002m\003\027\003 \000\000\000\000\003<\000\000\000v\000\000\003A\000\000\003N\000\000\001\233\000\000\000j\000>\001\202\001\234\000\000\002m\001\203\001\235\002\\\000\000\000\000\003!\001\236\001\202\000\000\000\000\000w\001\203\001\216\001\233\004u\000>\001o\002a\000C\001\200\001\201\002b\000\164\001D\003(\004B\001\217\001\240\000\000\000\000\000\000\000\000\000\000\002\\\000\000\003)\000h\000h\000\000\002d\000s\000i\000\000\001\216\000\000\000E\000\000\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\002f\001\217\000\000\000>\003W\000\000\003X\000j\000\000\001\202\003)\003<\000\000\001\203\003\145\003A\000\000\003N\001\232\000\000\000\000\000\000\000\000\000\000\000j\000j\000\000\000F\000\000\000k\000k\002f\003\008\000l\000l\0037\003\147\000\000\001\233\001\216\002\\\000\000\003<\001\234\000\000\000\000\003A\001\235\003N\001\232\001\216\000\000\001\236\001\217\000\000\002a\001Y\000u\000u\002b\000\164\001D\003(\000\000\001\217\000\000\000>\000\000\004\191\001\233\001S\001\200\001\223\003)\001\234\003\013\000\000\003[\001\235\003Y\000\164\001D\003(\001\236\000\000\000>\000\000\000\000\000\000\002m\003:\003V\003\017\003)\002f\000\000\000\000\000\000\0037\003]\000\164\001D\000\000\000\000\000>\003<\000\000\000\000\001\216\003_\000\000\003N\001\232\001F\000\210\003!\000\233\001\202\004G\001Y\000\000\001\203\001\217\000\000\001m\003<\000\000\001\200\001\221\003A\000\000\003N\001\233\001S\001\200\001\223\000\000\001\234\000\000\000v\000v\001\235\003^\000\000\000\164\001D\001\236\000\000\000>\001p\000\000\001s\002m\003:\003V\000\000\000h\001T\000j\000\000\000s\000\212\000\000\000w\000w\000\213\000\000\000>\000\000\000\000\001|\000j\000\000\001\202\000\000\000\000\000\000\001\203\003!\000\000\001\202\004|\000\000\000\000\001\203\001_\000\000\001\141\000\238\000x\001\\\000\226\000\000\001]\000\000\000\174\000\000\000E\004}\004t\000j\000\000\000\000\000\000\000\000\000k\002\\\000\164\001D\000l\000y\000\000\000\000\000\000\000\000\000\160\001\216\001\200\001\223\000\000\001T\002a\000\000\000\000\000{\002b\000\164\001D\003(\000\000\001\217\000>\000\000\000u\000\000\002m\003n\003V\000\000\003)\000\000\000\000\000\000\002d\000\000\000\164\000\165\000\000\001_\000\000\002q\000>\000\000\001\\\000\000\005>\001]\004u\000\174\000\000\002f\003!\000\000\001\202\003W\000\000\003X\001\203\000\000\002\\\000\000\003<\001\216\000\227\000\000\003A\000\000\003N\001\232\001\216\002\143\002t\000\000\002\161\002a\000\239\001\217\000\000\002b\000\164\001D\003(\002u\001\217\001*\000\000\000\174\000\000\001\233\000\241\001\200\001\223\003)\001\234\000\000\000*\002d\001\235\000\164\001D\000\000\000\000\001\236\000\000\000>\000v\000\000\000\000\002m\003n\003V\001F\000\251\002f\000j\000\000\000\000\003W\002\145\003X\000\000\000\000\002\146\000\000\003<\000\000\000\000\000\000\003A\000w\003N\001\232\000\252\000\210\003!\000\231\001\202\000\253\000\000\000\000\001\203\000\254\002\\\000\000\001\233\000\000\000\255\001p\000\000\001s\000\000\001\233\001\216\001\200\001\223\000x\001\234\002a\001\242\004\148\001\235\002b\000\164\001D\003(\001\236\001\217\000>\003u\000\000\000\000\002m\003n\003V\000>\003)\000y\000j\005>\002d\000\212\000\163\000\164\001D\000\213\000\000\000\000\000\000\000h\004\160\000{\000\000\000q\000\000\005A\005e\002f\003!\000\000\001\202\003W\000\000\003v\001\203\000\000\000F\004\161\003<\004\164\004t\000\226\003A\000\000\003N\001\232\002\159\000\000\000\000\000\000\000\000\002\143\000\000\000\000\002\144\000\000\002\\\000\000\000\000\000\000\002\160\000\000\003\005\000j\003\019\001\233\001\216\000\000\000k\000\000\001\234\002a\000l\000\000\001\235\002b\000\164\001D\003(\001\236\001\217\000\000\003w\000\000\003P\000\000\001\200\001\223\000\000\003)\004|\000\000\000\000\002d\000\000\000j\000u\000>\004u\002\145\000>\003T\000\000\002\146\002m\003\148\003V\004}\004t\000\000\002f\000\000\000\000\000\000\003W\000\000\003v\0011\000\000\002\\\000\000\003<\000\000\000\227\000\000\003A\000\000\003N\001\232\001\216\003!\000\000\001\202\000\000\002a\000\000\001\203\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\003\137\000\164\005?\001\233\001\200\001\223\000\000\003)\001\234\000\000\004\225\002d\001\235\005A\005B\000\000\000\000\001\236\000>\003\150\000\000\004u\002m\003\148\003V\000\000\002\143\004\226\002f\002\168\004\229\004t\003W\000v\003v\000\000\000\000\000\000\000>\003<\000\000\000\000\000\000\003A\000\000\003N\001\232\000\252\003!\000\000\001\202\002\159\001\"\000\000\001\203\004|\000\000\000w\000\000\000\000\000\000\001\005\000\000\004\248\004\225\002\160\001\233\000\000\000\000\000\000\000j\001\234\004}\004t\002\145\001\235\002\\\000\000\002\146\000\000\001\236\004\226\003\152\000\150\004\229\004t\001\216\000\000\000\000\004u\000\000\002a\005{\000\164\000\165\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\000y\000\000\001\200\001\223\000\151\003)\000\000\000\000\000\152\002d\003\170\000\000\000\000\000\000\000{\000\000\000>\000\000\000\000\000\000\002m\003:\003V\000\000\000\000\000>\002f\004u\000\000\004\146\003W\000\000\003\151\001\200\001\223\002\\\000\000\003<\001\130\004u\000\174\003A\000\000\003N\001\232\001\216\003!\000>\001\202\000\000\002a\002m\001\203\003 \002b\000\164\001D\003(\000\000\001\217\000\000\000\210\000\000\000\229\001\233\000\000\000\000\002\159\003)\001\234\004\225\000\000\002d\001\235\000\000\000\164\001D\003!\001\236\001\202\000\000\002\160\000\000\001\203\000\000\000\000\000\000\004\226\005s\002f\004\229\004t\000\000\003W\004\255\003\151\001\200\001\223\000\000\000\000\003<\000\000\000\000\000\000\003A\000j\003N\001\232\000\212\004\020\000>\000\000\000\213\003\156\002m\000\000\003 \005}\000\000\000\000\000\000\005v\000\000\000\000\005w\002\143\000\174\001\233\002\168\000\000\000\000\000\000\001\234\004\225\000\000\000\000\001\235\002\\\000\226\004\144\003!\001\236\001\202\000\000\000\000\004|\001\203\001\216\005\007\004u\004\226\002\195\002a\004\229\004t\000\000\002b\000\164\001D\003(\000\000\001\217\004}\004t\000\000\002\202\000\164\000\165\002\\\002[\003)\000\000\004\"\002\145\002d\000\000\003\156\002\146\001\216\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\002f\001\217\000\000\000>\003W\000\000\003X\000\210\000\000\000\231\003)\003<\000\000\000\000\003\145\003A\004|\003N\001\232\000\000\000\000\004u\000\000\000\000\001\132\000\000\000\174\000\000\000\000\000\227\004u\002f\000\000\004}\004t\0037\003\147\000\000\001\233\000\000\002\\\000\000\003<\001\234\000\000\000\000\003A\001\235\003N\001\232\001\216\000j\001\236\000\000\000\212\002a\001Y\000\000\000\213\002b\000\164\001D\003(\002\187\001\217\000\000\000\000\005\n\000\000\001\233\001S\001\200\001\223\003)\001\234\000\000\000\000\003\145\001\235\002\159\002\223\002\224\002\226\001\236\000\226\000>\004|\000\000\002\190\002m\000\000\003 \004u\002\160\002f\000\000\000\000\000\000\0037\003\147\000\000\000\000\000\000\004}\004t\003<\004|\000\000\000\000\003A\000\000\003N\001\232\000\000\002\229\003!\000\000\001\202\000\000\000\000\002\193\001\203\004|\004}\004t\000\000\000\000\000\000\000\000\000\000\005\017\000\000\001\233\000\000\001\200\001\223\000\000\001\234\000\000\004}\004t\001\235\004\180\000\000\000\164\001D\001\236\004$\000>\000\000\000\000\003\156\002m\000\000\003 \000\000\000\210\001T\000\231\000\000\000\000\000\000\004u\002\195\000\000\000\000\000\227\000\000\000\000\000\000\000\000\000h\000\000\001\200\001\221\000q\000\000\002\196\003!\000\000\001\202\000\000\004u\000\000\001\203\001_\000\000\002\255\000\000\000\000\001\\\000\000\000\000\001]\004|\000\174\000\000\000\000\004u\000\000\000j\000\000\000\000\000\212\004\185\000\000\002\\\000\213\000\000\000\000\005N\004}\004t\000\000\003\156\000j\001\216\000j\000\000\001\202\000k\002a\000\000\001\203\000l\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\226\001=\000\252\001\200\001\223\000\000\003)\000\000\000\000\000\000\003\145\005V\000\000\000\000\000\000\000u\001\007\000>\000\000\000\000\000\000\002m\003:\003V\000\000\000\000\000\000\002f\000\000\000\000\000\000\0037\003\147\000\000\001\200\001\223\002\\\004u\003<\000\000\000\000\004\195\003A\000\000\003N\001\232\001\216\003!\000>\001\202\000\000\002a\002m\001\203\003 \002b\000\164\001D\003(\000\000\001\217\004\204\000\210\000\000\000\231\001\233\000\000\000\000\000\000\003)\001\234\000\000\000\000\003\145\001\235\000\000\000\000\004\202\003!\001\236\001\202\000\000\000\227\000\000\001\203\001\216\000\000\000\000\000\000\000\000\002f\000\000\000\000\000\000\0037\003\147\000\000\000v\000\000\001\217\000\000\003<\000\000\000\000\000\000\003A\000j\003N\001\232\000\212\005\\\000\000\000\000\000\213\003\156\000\000\000\149\000\000\000\000\000\000\000\000\000w\000\000\000\000\000\000\000\000\002\143\000>\001\233\002\168\000\000\000\000\000\000\001\234\000\000\000\000\000\000\001\235\002\\\000\226\000\000\000\000\001\236\000\000\000\000\000\000\000\000\000\150\001\216\004\246\000\000\000\252\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\001\t\000\000\001\233\000y\002\\\002[\003)\000\151\000\000\002\145\002d\000\152\000\000\002\146\001\216\001Y\001\244\000{\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\002f\001\217\001S\000\000\003W\000\000\003X\000\000\000\000\000\000\003)\003<\000\000\000\000\003\145\003A\000\000\003N\001\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\227\000\000\002f\000\000\000\000\000\000\0037\003\147\000\000\001\233\000\000\000\000\000\000\003<\001\234\000\000\000\000\003A\001\235\003N\001\232\000\000\000\000\001\236\001\200\001\223\000\000\000\000\000\210\000\000\000\228\000\000\005\136\000\000\002\187\000\000\000\000\000\000\000>\000\000\001\233\000\000\002m\003:\003V\001\234\000\000\000\164\001D\001\235\002\159\002\223\005X\002\226\001\236\000\210\000\000\000\211\000\000\002\190\001T\000\000\000\000\000\000\002\160\003\165\001\200\001\223\003!\000\252\001\202\000\000\000j\000\000\001\203\000\212\000\000\000\000\000\000\000\213\000>\000\000\000\000\001\011\002m\002\229\003V\000\000\001_\000\000\003\n\002\193\000\000\001\\\000\000\000\210\001]\000\233\000\174\000j\000\000\000\000\000\212\000\000\000\000\000\226\000\213\000\000\000\000\000\000\003!\000\000\001\202\000\000\000\000\000\000\001\203\000\000\000\000\000\000\000\000\000\000\000\000\002\143\000\000\005-\002\168\000\000\000\000\000\000\000\000\000\000\000\226\000\000\002\195\000\000\000\000\000\000\000\000\000j\001\200\001\223\000\212\000\000\000\000\000\000\000\213\000\000\002\196\000\000\000\000\003Z\000\000\000\000\000>\000\000\000\000\000\000\002m\002\\\003 \000\000\000\000\000\000\000\000\000\000\000\000\000j\000\000\001\216\000\000\002\145\000\226\000\000\002a\002\146\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\003!\000\000\001\202\000\227\000\000\000\000\001\203\000\000\003)\000\000\000\000\000\000\002d\002\143\000\000\000\000\002\168\002\\\000\000\000\000\000h\000\000\000\000\000\000\000q\000\000\000\000\001\216\000\000\002f\000\227\000\000\002a\003W\000>\003X\002b\000\164\001D\003(\003<\001\217\000\000\000\000\003A\000\000\003N\001\232\000\000\000\000\003)\000\000\000\000\000\000\003\167\000\000\000\000\002[\000\000\000\000\000\000\002\145\000\000\000\000\000j\002\146\000\000\001\233\000\000\000k\000\227\002f\001\234\000l\000\000\003W\001\235\003\169\000\000\000>\000\000\001\236\003<\000\000\002\159\000\000\003A\000\000\003N\001\232\000\000\002\\\000\000\000\000\000\000\000\000\005+\000u\002\160\000\000\000\000\001\216\000\000\000\000\000\000\000\000\002a\000\000\000\000\001\233\002b\000\164\001D\003(\001\234\001\217\000\000\000\000\001\235\000\251\001\200\001\223\000\000\001\236\003)\000\000\000\000\000\000\0035\000\000\000\000\003\031\001Y\000\000\000>\000\000\000\000\000\000\002m\000\252\003 \000\000\002\187\000\000\000\253\002f\001S\000\000\000\254\0037\0038\000\000\002\143\000\255\000\000\002\168\003<\000\000\002\159\000\000\003A\002\230\003N\001\232\003!\000\000\001\202\002\190\002\195\000\000\001\203\000\000\002\160\000\000\000\000\000\164\000\165\000\000\000\000\000v\000\000\000>\002\204\001\233\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\001\235\002\232\001\200\001\223\002[\001\236\000\191\002\193\002\145\000\000\000\000\000w\002\146\003;\000\000\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \000\000\000\000\000\000\000\000\000\000\000\164\001D\000\000\000\000\001.\000\000\000\174\000\000\000\000\000\150\000\000\000\000\000\000\001T\001Y\000\000\002\237\000\000\003!\000\000\001\202\000\000\002\195\000\000\001\203\000\000\000\000\000\000\001S\000\000\000y\000\000\000\000\000\000\000\151\002\\\002\196\000\000\000\152\000\000\000\000\001_\000\000\003/\000{\001\216\001\\\000\000\000\000\001]\002a\000\174\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\002\187\000\000\000\000\001\200\001\223\000\000\000\000\003)\000\000\000\000\000\000\0035\000\000\000\000\000\000\000\000\002\159\000>\000\000\002\230\000\000\002m\000\000\003 \000\000\002\190\000\000\000\000\002f\000\000\002\160\000\000\0037\0038\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\164\001D\003A\000\000\003N\001\232\003!\002\\\001\202\000\000\002\232\000\000\001\203\001T\000\000\000\000\002\193\001\216\001\200\001\221\000\000\000\000\002a\000\000\000\000\001\233\002b\000\164\001D\003(\001\234\001\217\000\000\000\000\001\235\000\000\001\200\001\223\000\000\001\236\003)\001_\000\000\003E\0035\000\000\001\\\000\000\000\000\001]\000>\000\174\000\000\002\235\002m\000\000\003 \000\000\000\000\002\195\000\000\002f\000j\000\000\001\202\0037\0038\000\000\001\203\000\000\000\000\000\000\003<\002\196\000\000\000\000\003A\000\000\003N\001\232\003!\000\000\001\202\000\000\000\000\000\000\001\203\000\000\000\000\000\000\000\000\000\000\001\200\001\223\000\000\000\000\000h\002\\\000\000\001\233\000s\000\000\000\000\000\000\001\234\000\000\000>\001\216\001\235\000\000\003\183\000\000\002a\001\236\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\000\000\000\000\003y\000\000\004\n\003)\000\000\000\000\000\000\003r\000h\003\218\000\000\001\202\000}\000j\000\000\001\203\000\000\000\000\000k\000\000\000\000\000\000\000l\000\000\002f\000\000\000\000\000\000\0037\003t\000\000\003\224\000\000\000\000\000\000\003<\001\216\000\000\000\000\003A\000\000\003N\001\232\000\000\002\\\000\000\000u\000\000\000\000\000\000\001\217\000\000\000j\000\000\001\216\001\200\001\223\000k\000\000\002a\000\000\000l\001\233\002b\000\164\001D\003(\001\234\001\217\000>\000\000\001\235\000\000\002m\003q\003 \001\236\003)\000\000\000\000\000\000\003r\000h\000\000\000\000\000u\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002f\003!\000\000\001\202\0037\003t\000\000\001\203\000\000\000\000\000\000\003<\001\216\000\000\000\000\003A\000\000\003N\001\232\000\000\001\233\000\000\000\164\001D\003\225\000\000\001\217\000\000\000j\000\000\000v\001\200\001\223\000k\001\246\003\226\000\000\000l\001\233\003\238\000\000\000\000\000\000\001\234\000\000\000>\000\000\001\235\000\000\002m\000\000\003 \001\236\000\000\000w\000\000\000h\000\000\000\000\000\000\000q\000u\000\000\000\000\000>\000\000\000\000\003\240\000\000\000v\000\000\003\245\000\000\003\252\001\232\003!\000\000\001\202\000\000\000\000\000x\001\203\000\000\000\000\000\000\000\000\000\000\000\000\000\210\000\000\000\233\000\000\002\\\000w\001\233\000\000\000\000\000\000\000\000\001\234\000j\000y\001\216\001\235\000\000\000k\000\235\002a\001\236\000l\000\000\002b\000\164\001D\003(\000{\001\217\001Y\000\000\000\146\000\000\003\133\000\000\000\000\000\000\003)\000\000\000\000\000\000\003\134\000h\001S\000j\000u\000q\000\212\000\000\000\000\000\000\000\213\000y\000\000\000\000\000v\000\000\000\000\002f\000\000\000\000\000\000\0037\003\136\000\000\000\000\000\128\000\000\000\000\003<\000\000\000\000\000\000\003A\000\000\003N\001\232\000\226\002\\\000w\000\000\000\000\000\000\000\000\000\000\000\000\000j\000\000\001\216\001\200\001\223\000k\000\000\002a\000\000\000l\001\233\002b\000\164\001D\003(\001\234\001\217\000>\000\000\001\235\000\000\002m\003\131\003 \001\236\003)\000\000\000\000\000\000\003r\000\000\000\164\001D\000u\000\000\000\000\000\000\000\000\000\000\000\000\000y\000v\000\000\000\000\001T\000\000\002f\003!\000\000\001\202\0037\003t\000\000\001\203\000\130\000\000\000\000\003<\000\000\000\000\000\149\003A\000\000\003N\001\232\000w\000\000\000\000\000\000\000\000\000\000\000\000\001_\000\227\003\196\000\000\000\000\001\\\000\000\000\000\001]\000\000\000\174\003\144\001\233\000\000\001\200\001\223\000\000\001\234\000\000\000\150\000\000\001\235\000\000\000\000\000\000\000\000\001\236\000\249\000>\000\000\000\000\000\000\002m\002\242\003 \000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000v\000\151\001\200\001\223\000\000\000\152\000\000\000\251\000\000\000h\000\000\000{\005R\000}\000\000\003!\000>\001\202\000\000\002\183\002m\001\203\003 \002\\\000w\000\000\000\000\000\252\000\000\000\000\000\000\000\000\000\253\001\216\000\000\000\000\000\254\000\000\002a\000\000\000\000\000\255\002b\000\164\001D\003(\003!\001\217\001\202\000\000\000\150\003\149\001\203\000j\000\000\000\000\003)\000\000\000k\000\000\003\145\000\000\000l\000\000\000\000\000\000\000\000\000\210\000\000\000\233\000\000\000y\000\000\000\000\000\000\000\151\000\000\002f\000\000\000\152\000\000\0037\003\147\000\000\000\000\000{\000u\000\000\003<\000\000\001\200\001\223\003A\000\000\003N\001\232\000\000\000\000\000\000\000\000\005^\000\000\000\000\000\000\000>\000\000\002\\\000\000\002m\000\000\003 \000j\000\000\000\000\000\212\001\233\001\216\000\000\000\213\000\000\001\234\002a\000\000\000>\001\235\002b\000\164\001D\003(\001\236\001\217\000\000\000\000\000\000\003!\000\000\001\202\002\\\000\000\003)\001\203\000\000\000\000\003\145\000\226\000\000\000\000\001\216\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\002f\001\217\000\000\000\000\0037\003\147\000\000\000\000\000v\000\000\003)\003<\000\000\000\000\005S\003A\001Y\003N\001\232\000\000\000\000\000\000\000\000\000h\000\000\000\000\000\000\000s\000\000\000\000\001S\002f\000w\000\000\000\000\0037\005U\000\000\001\233\000\000\000\000\000\000\003<\001\234\001\200\001\223\003A\001\235\003N\001\232\000\000\000\000\001\236\000\000\005a\000\000\000\000\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \002\\\000\227\000j\000\000\001\233\001\200\001\221\000k\000\000\001\234\001\216\000l\000\000\001\235\000y\002a\000\000\000\000\001\236\002b\000\164\001D\003(\003!\001\217\001\202\000\000\004*\000\132\001\203\000\000\000\000\000\000\003)\000\000\000u\000\000\005S\000\000\000\164\001D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000j\000\251\001\202\001T\000\000\002f\001\203\000\000\000\000\0037\005U\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\000\000\000\003A\000\252\003N\001\232\000\000\000\000\000\253\000\000\000\000\000\000\000\254\001_\000\000\003\232\000\000\000\255\001\\\000\000\000\000\001]\000\000\000\174\000\000\001\233\001\200\001\223\000\000\000\000\001\234\000\000\000\000\000h\001\235\000\000\000\000\000s\000\000\001\236\000>\000\000\000\000\000\000\003\183\000h\000\000\002\\\000\000\000q\000v\000\000\000\000\000\000\000\000\000\000\000\000\001\216\000\000\000>\000\000\000\000\002a\003\215\000\000\000\000\002b\000\164\001D\003(\003\218\001\217\001\202\000\000\000w\000\000\001\203\000j\000\000\000\000\003)\000\000\000k\001\216\005S\000\000\000l\000\000\000\000\000j\000\000\000\000\003\224\000\000\000k\000\000\000\000\001\217\000l\000\000\000x\002f\000\000\000\000\000\000\0037\005U\000\000\000\000\000\000\000u\000\000\003<\000h\001\200\001\223\003A\000}\003N\001\232\004\006\000y\000u\001\228\000\000\001 \000\237\000\000\000>\000\000\000\000\000\000\003\183\000\000\000\000\000{\000\000\000\000\000\000\001\233\000\000\000\000\000\000\000>\001\234\000\000\000\000\000\000\001\235\000\000\000\000\003\217\000\000\001\236\000\000\000\000\000\000\000j\003\218\000\000\001\202\000\000\000k\000\000\001\203\001\233\000l\000\000\000\210\000\000\000\231\001\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\248\003\224\000\164\001D\003\225\000\000\001\217\000\000\000\000\000\000\000\000\000u\000\000\000v\000\000\003\226\000\000\001Y\000\210\004\008\000\231\000\164\000\165\000\000\000h\000v\000\000\000\000\000q\000\000\000\000\001S\000\000\000j\000\000\000\000\000\212\000w\000>\000\000\000\213\000\168\000\169\000\171\000\172\000\000\000\000\003\240\000\000\000w\000\000\004\t\000\000\003\252\001\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000j\000x\000\000\000\212\000\226\000h\000j\000\213\000\173\000q\000\174\000k\001\233\000\150\000\000\000l\000\000\001\234\001\216\000>\000\000\001\235\000y\000\000\000\000\000\000\001\236\001\225\000\164\001D\003\225\000v\001\217\000\226\000y\000\000\000{\000\000\000\151\000u\000\000\003\226\000\152\000\164\001D\003\238\000\000\000\000\000{\000j\000\179\000\000\000\000\000\000\000k\000w\001T\000\000\000l\000h\000\000\000\000\000\000\000s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\240\000\000\000\000\000\000\003\245\000\000\003\252\001\232\000h\000u\000\000\001[\000q\000\227\000\000\000\000\001\\\000\000\000\000\001]\000\000\000\174\000>\000\000\000\000\000\000\000\000\001\233\000\000\000y\000j\000\000\001\234\000\000\000\000\000k\001\235\000\000\000\000\000l\000\000\001\236\000\227\000\134\000\164\000\165\000\000\000\000\000v\000\000\000\000\000\000\000j\000\000\000\000\000\000\000\000\000k\000\000\000\000\000\000\000l\000\000\000u\000\168\000\217\000\171\000\172\000\000\000\000\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\252\000\000\000\000\000u\000\000\000\164\000\165\000\000\000\000\000v\000\000\000\173\000\000\000\174\001\013\000\000\000\150\000\000\000h\000\000\001\200\001\221\000q\000\000\000\000\000\168\001\207\000\171\000\172\000\252\000h\000\000\000>\000w\000}\000\000\000\000\000y\000\000\000\000\000\000\000\151\000\000\001\015\000\000\000\152\000\000\000\000\000\000\000\000\000\000\000{\000\000\000\179\000\173\000\000\000\174\000\000\000\000\000\150\000\000\000h\000j\000v\000j\000q\001\202\000k\000\000\000\000\001\203\000l\000\000\000\000\000j\000>\001\200\001\221\000\000\000k\000y\000\164\000\165\000l\000\151\000v\000\000\000w\000\152\000\000\000\000\000\000\000\000\000\000\000{\000u\000\179\000\000\000\210\000\000\000\231\000\168\002^\000\171\000\172\000j\000\000\000u\000\000\000w\000k\000\000\000\000\000x\000l\000\000\000\000\000\000\000\000\000\000\000j\000\000\001\202\000\000\000\000\000\000\001\203\000\000\000\000\000\000\000\173\000\000\000\174\000\000\000y\000\150\000\000\000h\000u\001\227\000\000\000q\000j\000\000\000\000\000\212\000\000\000\000\000{\000\213\000\000\000>\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\151\000\000\000\000\000\000\000\152\001\216\000\000\000\000\000\000\000\000\000{\000\000\000\179\000\164\000\165\000\226\000\000\000v\000\000\001\217\000\000\000j\000\000\000\000\000\000\000\000\000k\000\000\000\000\000v\000l\000\000\000\000\000\168\002\150\000\171\000\172\000\000\000\000\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\000u\000\000\000\164\000\165\000\000\000\000\000v\001\216\000\173\000\000\000\174\000\000\000\000\000\150\000\000\000h\000\000\000\000\000\000\000q\000\000\001\217\000\168\003>\000\171\000\172\000\000\000h\000\000\000>\000w\000q\000\000\001\233\000y\000\000\000\000\000\000\000\151\000\000\000\000\000>\000\152\000\227\000\000\000\000\000y\001\250\000{\000\000\000\179\000\173\000\000\000\174\000\000\000\000\000\150\000\000\000\000\000j\000\136\000h\000\000\000\000\000k\000q\000\000\000\000\000l\000\000\000\000\000j\000\000\000\000\000\000\000\000\000k\000y\000\164\000\165\000l\000\151\000v\000\000\000\000\000\152\000\000\000\000\000\000\001\233\000\000\000{\000u\000\179\000\000\001\200\001\221\000\000\000\168\003\242\000\171\000\172\000\000\001\252\000u\000j\000w\000h\000\000\000\000\000k\000q\000\252\000\000\000l\000\000\000\000\000\000\000\000\000h\000\000\000>\000\000\000q\001\021\000\000\001\017\000\173\000\000\000\174\000\000\000\000\000\150\000>\000\000\000\000\000\000\000\000\000u\000j\000\000\001\202\000\000\000\000\000\000\001\203\000\000\000\000\000h\000\000\000\000\000j\000}\000y\000\000\000\000\000k\000\151\001\200\001\223\000l\000\152\000\000\000j\000\000\000\000\000\000\000{\000k\000\179\000\164\000\165\000l\000\000\000v\000\000\000\000\000\000\002T\003k\000\000\000\000\000\164\000\165\000u\000\000\000v\000\000\000\000\000\000\000\000\000\000\000j\000\194\000\000\000\000\000u\000k\000w\000h\000\000\000l\002[\000q\001\202\000\194\000\000\000\000\001\203\000\000\000w\000\000\000\000\000>\000\000\000\000\000\000\000\000\000\000\000\196\000v\000\174\000\000\000\000\000\150\000u\000\000\000\000\000\000\000\000\000\000\0014\000\000\000\174\000\000\000\000\000\150\000\000\000\000\000\149\001\216\000\000\000\000\000j\000w\000y\000\000\000\000\000k\000\151\000\000\000\000\000l\000\152\001\217\000\000\000\000\000y\000\000\000{\000\000\000\151\000\164\000\165\000\000\000\152\000v\000\000\000\000\000\000\000\150\000{\000\000\000\000\000\164\000\165\000u\000\000\000v\000\000\000\000\000\000\000\000\000\000\000\000\000\191\000\000\000\000\000\000\000\000\000w\000y\000\000\002\\\000\000\000\151\000\000\001\183\000\000\000\152\001\200\001\223\000w\001\216\000\000\000{\000\000\000v\002a\000\000\000\000\001:\002b\000\174\000\000\000\000\000\150\001\217\000\000\000\000\002T\003a\001\233\001\185\000\210\000\174\000\231\000\000\000\150\000\000\002d\000w\000\000\000\000\000\000\000\000\001\254\000y\000\000\000\000\000\000\000\151\000\000\000\000\002[\000\152\001\202\002f\000\000\000y\001\203\000{\000\000\000\151\000\164\000\165\000\000\000\152\000v\000\000\000\000\000\000\000\000\000{\000\000\001\232\001\200\001\223\000j\000\000\000\000\000\212\000\000\000\000\000\000\000\213\000\000\001\183\000y\000\000\000\000\000\000\000w\000\000\000\000\001\233\002T\002U\000\000\000\000\001\234\000\000\000\138\000\000\001\235\000\000\000\000\000\000\000\000\001\236\000\000\000\226\000\000\002\012\000\000\000\174\000\000\000\000\000\150\000h\002[\000h\001\202\000q\000\000\000}\001\203\000\000\000\000\000\000\000\000\000\000\000\000\000>\000\000\000\000\000\000\001\200\001\223\000y\000\000\000\000\000\000\000\151\000\000\002\\\000\000\000\152\000\000\000\000\000\000\000\000\000\000\000{\000\000\001\216\000\000\002T\002`\000\000\002a\000\000\000\000\000j\002b\000j\000\000\000\000\000k\001\217\000k\000\000\000l\000\000\000l\000h\000h\000\000\000\000\000}\000q\002[\002d\001\202\000\000\000\000\000\000\001\203\000\000\000\000\000>\000\000\000\000\000\227\000\000\000\000\000u\000\000\000u\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\\\000\210\000\000\000\231\000\000\000\000\001\232\000\000\000j\000j\001\216\000\000\000\000\000k\000k\002a\000\000\000l\000l\002b\000\000\000\000\000\000\000\000\001\217\000\000\001\233\000\000\000\000\000\000\000\210\001\234\000\233\000\000\000\000\001\235\000\000\002d\001\200\001\223\001\236\000u\000u\000\000\000\000\000j\000\000\000\000\000\212\000\000\000\000\000\252\000\213\000\000\002f\000\000\000\000\000\000\002T\003m\000\000\002\\\000\000\000\164\000\165\001\019\000\000\000v\000\000\000v\000\000\001\216\001\232\000\000\000j\000\000\002a\000\212\000\226\000\000\002b\000\213\002[\000\000\001\202\001\217\002\127\000\000\001\203\000\000\000\000\000w\001\233\000w\000\000\000\000\000\000\001\234\002d\000\000\000\000\001\235\000\000\000\000\000\000\000\000\001\236\000\226\000\000\000\000\000\000\000\000\002\129\000\000\000\174\002f\000\000\000\150\000\000\000\000\000\164\000\165\000\000\000v\000v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\232\000\000\000\000\001\200\001\223\000y\000\000\000y\000\000\000\151\002\127\000\000\000\000\000\152\000w\000w\000\000\000\000\000\000\000{\001\233\000\140\000\000\002T\0044\001\234\000\000\000\227\000\000\001\235\000\000\000\000\000\000\000\000\001\236\000\000\002\166\000\000\000\174\000\000\002\\\000\150\001\200\001\221\000\000\001\200\001\223\002[\000\000\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\227\000\000\000\000\002b\000\000\000y\000y\000\000\001\217\003d\000\151\000\000\000\000\000\000\000\152\000\000\000\000\000\000\000\000\000\142\000{\002d\001\200\001\223\000\000\000\000\004,\000\000\000\000\000\000\000j\000\000\001\202\002[\000\000\001\202\001\203\000\000\002f\001\203\000\252\000\000\002T\0046\000\000\000\000\000\000\000\000\000\000\000\251\001\200\001\223\000\000\000\000\001\025\000h\001\232\000\000\000h\000q\000\000\000\000\000q\000\000\000\000\000\000\002[\000\000\001\202\000\252\002T\0048\001\203\000\000\000\253\000\000\001\233\000\000\000\254\000\000\000\000\001\234\002\\\000\255\000\000\001\235\000\000\000\000\000\000\000\000\001\236\000\000\001\216\000\000\002[\000\000\001\202\002a\000\000\000j\001\203\002b\000j\000\000\000k\000\000\001\217\000k\000l\000\000\000\000\000l\000\210\000\000\000\231\000\000\000\000\000\000\002\002\002d\000\000\0029\000h\000\000\002\\\000\000\000q\000\000\000\000\000\000\000\000\001\216\000u\000\000\001\216\000u\002f\000\000\000h\002a\000\000\000\000\000q\002b\000\000\001\217\000\000\000\000\001\217\000h\000\000\000\000\000\000\000q\001\232\000\000\000j\002\\\000\000\000\212\000\000\002d\000\000\000\213\000\000\000\000\000j\001\216\000\000\000\000\000\000\000k\002a\000\000\001\233\000l\002b\000\000\002f\001\234\000\000\001\217\000j\001\235\000\210\002\\\000\233\000k\001\236\000\226\000\000\000l\000\000\000j\002d\001\216\001\232\000\000\000k\000u\002a\002;\000l\000\000\002b\000\000\000h\000\000\000\000\001\217\000q\002f\002=\001\233\000v\000u\001\233\000v\000\000\000\000\002|\001\234\002d\000\000\000\000\001\235\000u\002\000\000j\001\232\001\236\000\212\000\000\000\149\000\000\000\213\000\149\000\000\000w\002f\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\233\000j\000\000\000\000\000\000\001\234\000k\000\000\001\232\001\235\000l\000\210\000\226\000\233\001\236\000\150\000h\000\000\000\150\000\000\000q\000\000\000\227\000\000\000\000\000\000\000\000\000h\001\233\000\000\000\000\000q\000v\001\234\000u\000\000\000y\001\235\000\000\000y\000\151\000\000\001\236\000\151\000\152\000\000\000\000\000\152\000v\000\000\000{\001\"\000\000\000{\000\000\000j\000w\000\000\000\212\000v\000j\000\000\000\213\000\000\000\000\000k\000\000\000\149\000\000\000l\002\143\000j\000w\002\168\000\000\000\000\000k\000\000\000\149\000\000\000l\000\000\000\150\000w\000\000\000\000\000\000\000\000\000\226\000\000\000\000\000\252\000h\000u\000\227\000\000\000q\000\000\000\150\000\000\000\000\000\000\000\000\000y\000u\001\027\002\181\000\151\000\000\000\150\000\000\000\152\000\000\000\000\000j\000\000\000v\000{\002\145\000y\004.\000\000\002\146\000\151\000\000\000\000\000\000\000\152\000\000\000\000\000y\000\000\000\000\000{\000\151\002\183\000j\000\000\000\152\000\000\000w\000k\000\000\000\251\000{\000l\000\000\000\000\000\000\000h\000\000\000\000\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000h\000\000\000\000\000\252\000q\003\003\000\150\000\000\000\253\000u\000\227\000\000\000\254\000\000\000\000\000v\003\015\000\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000v\000y\000\000\000\000\000\000\000\151\000\000\000j\002\183\000\152\004>\000\000\000k\000w\000\000\000{\000l\000h\000j\002\183\000\000\000q\000\000\000k\000w\000\000\000\000\000l\000h\002\159\000\000\000\000\000q\000\251\000\000\000\000\000\000\000\000\000\000\000\150\000u\000\000\000\000\002\160\000h\000\000\000\000\000\000\000}\000\000\000\150\000u\000\000\000\252\000\000\003\023\000\000\000\000\000\253\000\000\000y\000j\000\254\000\000\000\151\000v\000k\000\255\000\152\000\000\000l\000y\000j\000\000\000{\000\151\000h\000k\000\000\000\152\000q\000l\000\000\000\000\002\183\000{\000\000\000\000\000j\000w\000\000\000\000\000\000\000k\000u\000\000\000\000\000l\000h\000\000\000\000\000\000\000q\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\005%\003$\002\195\000h\000\150\000\000\000\000\000q\000\000\000j\000u\000v\0033\000\000\000k\000\000\002\206\000\000\000l\000\000\000\000\000\000\000v\000\000\000\000\000y\000\210\000\000\000\231\000\151\002\183\000j\000\000\000\152\000\000\000w\000k\000\000\000\000\000{\000l\002\183\000u\000\000\000\000\000\000\000w\000j\000\000\000\000\000\000\000\000\000k\000\000\000\000\003J\000l\000\000\000\000\000\000\002\143\000\150\000\000\002\168\000u\000v\003R\000\000\000\000\000\000\000j\000\000\000\150\000\212\000\000\000\000\000v\000\213\000\000\000h\000u\000h\000y\000q\002\183\000q\000\151\000\000\000\000\000w\000\152\000\000\000v\000y\000\000\002\183\000{\000\151\000\000\000\000\000w\000\152\000\000\000\226\000j\000\000\000\000\000{\002\145\000\000\000\000\000\000\002\146\000\000\003\188\000\150\000w\000\000\000\000\000\000\000\000\000\000\000\000\000j\000v\000j\000\150\000h\000k\000\000\000k\000q\000l\000\000\000l\000\000\000y\000\000\000h\000\000\000\151\000\000\000q\002\183\000\152\000\000\000v\000y\000w\000h\000{\000\151\003\200\000q\000\000\000\152\000u\000\000\000u\000\000\000\000\000{\000v\000y\000\000\0052\000\000\000\000\000\000\000\000\000w\000j\000\000\000\000\000\150\000\000\000k\000\144\000\000\000\000\000l\002\183\000j\000\000\000\000\000\227\000w\000k\000\000\000\000\000\000\000l\000\000\000j\000\000\000y\000\150\000\000\000k\000\151\000\000\000\000\000l\000\152\000u\002\159\000\000\000h\000\000\000{\000\000\000q\000\150\000\000\000h\000u\000\000\000y\000q\002\160\000\000\000\151\000\000\000\000\000\000\000\152\000u\005\151\003\206\000\000\003\213\000{\000\000\000y\000\000\000\000\000\000\000\151\000v\000\000\000v\000\152\000\000\000\000\000\000\000\000\000\000\000{\000\000\000\000\000\000\000j\000\000\000\000\000\252\000\000\000k\002\183\000j\002\183\000l\000\000\000w\000k\000w\000\000\000\000\000l\001\029\000\000\002\143\000\000\000\000\002\168\000\000\000\000\003\222\000\000\000\000\000\000\001\200\001\221\000\000\000\000\000u\000\000\000v\003\236\000\150\002\195\000\150\000u\000\000\000\000\000\000\001\200\001\221\000v\003\250\000\000\000h\000\000\000\000\002\208\000q\002\183\000\000\000\000\000v\000y\000w\000y\000\000\000\151\000j\000\151\002\183\000\152\002\145\000\152\000\000\000w\002\146\000{\000j\000{\001\202\002\183\000\000\000\000\001\203\000\000\000w\000\000\000\000\000\000\000\150\000\000\000\000\000j\000\000\001\202\000h\000\000\000j\001\203\000q\000\150\000\000\000k\000\000\000\000\000\000\000l\000\000\000\000\004\001\000y\000\150\000h\000\000\000\151\000\000\000q\000\000\000\152\000v\000\000\000y\000\000\000\000\000{\000\151\000v\000\000\000\000\000\152\000u\000\000\000y\000\000\000\000\000{\000\151\000\000\002\183\000j\000\152\001\200\001\221\000w\000k\0052\000{\000\000\000l\000\000\000w\000\000\000\000\000\000\000\000\000\210\000j\000\233\000\000\000\000\000\000\000k\000\000\000\000\000\000\000l\000\000\000\000\002\159\000\150\000\000\000h\000u\000\000\000\000\000q\000\150\002\143\001\216\000\000\002\168\000\000\002\160\000\000\000h\000j\000\000\001\202\000q\000u\000y\001\203\001\217\001\216\000\151\000\000\000\000\000y\000\152\000j\000\000\000\151\000\212\000\000\000{\000\152\000\213\001\217\000\000\000\000\000\000\000{\000v\000\000\000\000\000j\000\000\000\000\000\000\000\000\000k\000j\000\000\000\000\000l\002\145\000\000\000\000\000j\002\146\000\000\000\183\000\226\000k\000\000\000\000\000w\000l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000h\000\000\000\000\002\195\000q\000v\000\000\000\000\000\000\000\000\000\000\001\233\000u\000\150\000\000\000h\000\000\002\210\000\000\000q\000\000\000\000\000v\000\000\000\220\002\006\001\233\000\000\000\000\000w\000\000\000\000\000\000\000\000\000y\000\000\000\000\001\216\000\151\000\000\002\008\000\245\000\152\000\000\000j\000\000\000w\000\000\000{\000k\000\000\001\217\000\000\000l\000\000\000\150\000\000\000\000\000\000\000j\000\000\000\000\000\000\000\000\000k\000\227\000\000\000\000\000l\000\000\000\000\000\000\000\150\002\159\000\000\000\000\000y\000u\000\000\000\000\000\151\000v\000\000\000\000\000\152\000\000\000\000\002\160\000\000\000\000\000{\004M\000u\000y\000v\000\000\000\000\000\151\000h\000\000\001$\000\152\000q\000\000\000\000\000w\002\143\000{\000\000\002\168\000\000\000\000\000\000\001\170\000\251\000\000\000\000\000\000\000w\001\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000h\000\000\000\000\000\150\000q\002\n\000\252\000\000\000\000\000\000\000\000\000\253\000\000\000h\000j\000\254\000\150\000q\000\000\000k\000\255\000\000\000j\000l\000y\000\000\002\145\000\000\000\151\002\195\002\146\000v\000\152\000\000\000\000\000\000\002\143\000y\000{\002\168\000\000\000\151\000\000\002\212\000j\000\152\000v\000u\000\000\000k\001\174\000{\000\000\000l\000\000\000w\000\000\000j\000\000\000h\000\000\000\000\000k\000q\000\000\001\210\000l\000\000\000\000\000h\000w\000\000\000\000\000}\000\000\000\000\000\000\000u\000\000\000\000\000j\000\150\000\000\000\000\002\145\000\000\000\000\000\000\002\146\000h\000u\000h\000\000\000q\000\000\000q\000\150\000\000\000\000\000\000\000\000\000\000\000y\000j\000\000\000\000\000\151\000h\000k\000\000\000\152\000q\000l\000j\000\000\000\000\000{\000y\000k\000\000\000\000\000\151\000l\002\159\000\000\000\152\000\000\000\000\000\000\000v\000\000\000{\000\000\000j\000\000\000j\000u\002\160\000k\000\000\000k\000\000\000l\000\000\000l\000\000\000u\000\000\002\017\002\143\000\000\000j\002\168\000w\000\000\000\000\000k\000\000\000\000\000v\000l\000\000\000\000\000\000\000\000\000\000\000u\000\000\000u\000\000\000\000\000\000\000v\000\000\000\000\000\000\000\000\000\000\002\022\000\150\000\000\002\159\000\000\000w\000u\000\000\000\000\000\000\000\000\000\000\000\000\002\026\000\000\000j\000\000\002\160\000w\002\145\000\000\000\000\000y\002\146\000\000\000\000\000\151\000\000\000\000\002\195\000\152\000\150\002\143\000h\000\000\002\168\000{\000q\000\000\000\000\000v\000\000\000\000\002\214\000\150\000\000\000\000\000\000\000\000\000h\000v\000h\000y\000q\000\000\000q\000\151\000\000\000\000\0021\000\152\000\000\000\000\000\000\000w\000y\000{\000\000\000\000\000\151\000v\000\000\000v\000\152\000w\000\000\000j\000j\000\000\000{\002\145\000\000\000k\000\000\002\146\000\000\000l\002\195\000v\002X\000\150\002\153\000\000\000j\000w\000j\000w\000\000\000k\000\000\000k\002\216\000l\000\000\000l\000\000\000\000\002\171\000\000\000h\000u\000y\000w\000}\000\000\000\151\002\159\000\000\000\000\000\152\000\150\000y\000\150\000\000\000\000\000{\000u\000h\000u\000\000\002\160\000}\000\000\000\000\000\000\000\154\000\000\002\143\000\150\000\000\002\168\000y\000\000\000y\000\000\000\151\000\000\000\151\000\000\000\152\000\000\000\152\000\000\000j\000\000\000{\000\000\000{\000k\000y\000\000\000\000\000l\000\151\000\000\000\000\000\000\000\152\000\000\000\000\000\000\000j\000\000\000{\000\000\000\000\000k\002\159\000\000\000\000\000l\000j\000\000\000\000\000\000\002\145\000u\000\000\000\000\002\146\000\000\002\160\000v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\195\000\000\000\000\000\000\000u\000\000\000\000\000\000\000v\000\000\000v\002\173\000\000\000\000\002\218\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\176\000\000\004\024\000\000\000\000\000w\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\150\000\000\000\150\002\195\000\000\000y\000\000\000\000\000\000\000\151\000v\000\000\000\000\000\152\000\000\000\000\000\000\002\220\000\000\000{\000\000\000y\000\000\000y\002\159\000\151\000\000\000\151\000v\000\152\000\000\000\152\000\000\000\000\000w\000{\000\000\000{\002\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\195\000\000\000\000\000\000\000\000\000\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222")) + ((16, "\000J\000\n\000\000\000\000\000\000\000S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000\000\000\235\001H\000\000\000\151\000\139\000\000\000\000\000\000\000m\000\000\000\030\000\146\000\000\000\000\001\024\000\000\001\160\000\000\000\000\000\000\001\214\000\000\002\210\000\000\000\000\000\000\000\000\002\218\000\000\002\248\004\022\000\000\000\000\004>\000\000\004\150\000\000\000\000\000\000\005\n\000\000\005\024\000\000\005\186\000\000\005\194\006\190\000\000\000\000\006\246\000\000\007\020\000\000\000w\000\000\000\000\0072\000\000\007:\000\000\000\000\007N\000\000\007v\000\000\000\000\000\000\b\218\000\000\000\130\t\018\000\196\000\000\000\000\000\000\000\000\006.\0001\003\204\000\000\000\000\t^\000\000\029\178\000\000\000n\000\134\t\130\000\000\000\000\011\142\000\000\007|\000\000\001\164\n\172\017\154\012\206\017\154\r\244\022\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012x\012\206\000\000\000\000\015.\000\000\023\254\000\000\000T\000\000\000\000\000\000\000\000\001F\000\000!R\000\000\000\000\000\132\000\000\001\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\134\000\000\006^\000\000\006\172\000\000\006\232\000\000\b\182\000\000\015\244\000\000\029$\000\000\"\166\000\000%\156\000\000&2\000\000)\164\000\000*\140\000\000\023F\000\000\000\000\000\000\000\000\000\000/N\000\0007\154\000\0007\176\000\000\001\234\000\000\000\000\020\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\204\tj\000\000\000\000\t\146\000\000\t\218\t\230\000\000\000\000\t\238\000\000\n\b\000\000\000\000\000\000\n\n\000\000\n\020\000\000\000\000\n0\000\000\n:\nB\000\000\000\000\nF\000\000\nP\000\000\000\000\000\000\nT\000\000\nV\000\000\nt\000\000\nv\nz\000\000\000\000\n|\000\000\n~\000\000\001\218\n\130\000\000\n\136\000\000\n\144\000\000\n\164\000\000\000\000\000\000\n\170\000\000\n\178\012,\000\000\n\192\000\000\000\238\030`\000\000\002\190\000\000\003\198\000\000\000\000\001\250\000\000\000\000\001?\005R\000\000\000\000\000\000\000\000\003B\000\000\003\254\000\000\004b\000\000\b\n\000\000\000\000\000\000\000\000\000\000\000\000\t\166\000\000\000\000\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\000\204\005 \014\130\000\000\n\202\000\000\n\204\015\030\000\000\n\208\000\000\000\000\004\b\000\000\000\000\000\000\000\000\000\000\026\156\000\0001\150\000\000\000\000\000\000\005V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\000\000\000\011<\022\144\000\000\016\016\000\000\019\236\000J\000\000\000\000\000\000\005\232\000\000!\184\000\000\000\0001\230\000\000\000\000\000\000\005\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\216\000\000\026\228\000\000\000\000\000\000\000\000\000\128\000\000\000\0002:\000\000\000\000\000\000\015N\000\222\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\003\026\000\000\005B\000\000\007\018\000\000\t\214\000\000\012$\000\000\014\216\000\000\015z\000\000\018\006\000\000\0182\000\000\018\192\000\000*\144\000\000\003R\000\000\019R\000\000\021j\000\000\022p\000\000\000\000\000\000\000\000\000\000\000~2\202\000\000\001(\000\000\000\000\002\026\002n\000\000\002d\000\000\000\000\000\000\n\144\000\000\000\000\000\000'\224\000\000\000\000\000\000\000\000\000\000(\182\000\000\000\000\000\000\000\000\000\000\000\000\001\202\000\000\000\000\000\000\n\220\016\184\000\000\n\226\000\000\000\000\000\000\000\000\000\000\n\228\000\000\000\000\001\t\004\250\000\000\005\206\000\000\000\000\000\000\002R\000\000\012f\002\248\n\238\000\000\000\000\n\246\000\000\011\000\011\004\000\000\000\000\011\020\000\000\011\022\000\000\000\000\000\000\011\024\000\000\011\030\000\000\000\000\011*\000\000\011.\0114\000\000\000\000\011@\000\000\011L\000\000\000\000\000\000\011P\000\000\011T\000\000\011Z\000\000\011^\011b\000\000\000\000\011p\000\000\011~\000\000\006\244\011\134\000\000\011\144\000\000\011\148\000\000\011\152\000\000\000\000\000\000\011\154\000\000\003b\000\000\000\000\011\158\016\196\000\000\011\170\000\000\000\000\000\030\000\000\000\000\0002\000\000\000\000\000\000\000\000\000\000\007\144\018\168\000\000\011\176\000\000\011\180\019\002\000\000\011\190\000\000\000\000\012\204\011\198\000\000\000\000\011\212\000\000\011\226\011\228\000\000\000\000\011\236\000\000\011\248\000\000\000\000\000\000\012\002\000\000\012\006\000\000\000\000\012\b\000\000\012\014\012\016\000\000\000\000\012\018\000\000\012\020\000\000\000\000\000\000\012\030\000\000\012.\000\000\0120\000\000\0122\012:\000\000\000\000\012<\000\000\012>\000\000\007\154\012@\000\000\012D\000\000\012F\000\000\012V\000\000\000\000\000\000\012Z\000\000\012\\\024\130\000\000\012j\000\000\000\000\007\156\024\198\000\000\012n\000\000\012\128\024\222\000\000\012\130\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\232\000\000$\184\000\0003\012\000\000\000\000\006\158\000\000\000\000\000\000\007\164\005^\000\000\000\000*\192\004H\000\000\003\184\020D\000\000\000\000(\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0124(\248\000\000\r\136\000\000\028\236\024\150)f\000\000\028n\000\000\000\000\000\000\b\000\000\000\"^\000\000\000\0003\"\000\000\000\000\000\000\b\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0003p\000\0003\184\000\000\000\000\000\000\"@\b\142\000\000\000\000\000\000*\230\000\000\000\000\000\000\000\000\b\176\000\000\000\000\000\000\021~\000\000\000\000\029\184\000\000\001\220\000\000\000\000\000\000\005\"\000\000\017\018\000\000\020\222\000\000\027\234\000\000\029\006\000\000&\226\000\000(j\000\000(\210\000\000-\224\000\000/\170\000\0000H\000\0001h\000\0003R\000\0005\128\000\000\000\000\000\000\n~\000\000\018\248\030L\000\000+N\r\218+\176\000\000\000\000+\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\000\000\000\000\000\000\000\000\005\242\000\000\005\132\000\000\000\000\011X\000\000\000\000\000\000,,\000\000\000\000\000\000\000\000\000\000\0176\000\000\000\000\000\000\000\000,\162\000\000\000\000\000\000\000\000\003\248\012p\000\000,\186\000\000\000\000\000\000\000\000\r\012\000\000-\006\000\000\000\000\000\000\000\000\003\154\000\000\006\202\000\000\012\208\004\018)\128\000\000\000\000\000\000\005\234\000\000\000\000\000\000\000\000\000\000\000\000\015\182)\128\000\000\017\\\000\000\025\134\n\222\000\000\000\000\000\000\b\204\000\000\"\244\000\000\000\0003\198\000\000\000\000\000\000\b\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\142\000\0007\150\000\000\000\000\000\000\003\142\000\000\000\000\000\000\000\000\000\000\000\000\021\020\000\000\023\226\000\000\027\200\000\000#\138\000\000)H\000\0002\030\000\0007J\000\0007\196\000\0007\206\000\0008(\000\0008H\000\000-R\000\000\002\238\000\0008v\000\0008\140\000\0008\192\000\000)\254\000\000\000\000\000\0004\000\000\000\000\000\000\000\000^\000\0004\210\000\000\000\000\000\0004\214\000\000\000\000\000\030\000\000\025\150\000!\001X\000\000\002N\000\000\r$\001\228\007n\000\000\000\000\000\000\000\000\000\000\000\000\000\0005$\000\000%\160\0006\b\254\000\000\000\000\000\000-X\000\000-\172\000\000-\208\000\000%\186&L\001.\004R\t\002\000\000\000\000\000\000\0056\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005l\000\000\000\000\000\000\000\000#v\000\000&f\000\000\000\000\000\000\000\000\000\000\000\000\r\196\000\000\000\000\002\220\000\000\000\000\000\000\025\202\005\016\000\000\026\130\000\000\000\000\r\012\000\000\006\228\000\000\000\000\014p\000\000\027j\000\000\000\000#\154\000\000\000\000\000\000\n\136\000\000\000\000\005\180\000\000\000\000\025`\000\000\000\000\000\000-\248\000\000\000\000\000\000\029\210\000\000\000\000\000\000\000\000.\232\000\000\000\000\000\000\000\000\004~\014 \000\000.\236\000\000\000\000\000\000\000\000\000\000\000\000\015\016\000\000\000\000\007\152\000\000\016\024\000\000\n\136\000\000\000\000\004:\004\198\000\000\006 \000\000\000\000\000\000\000\000\003\142\000\000&\152\000\000\028\004\004\168\028\176\000\000\004\180\000\000\016R\000\000\016\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\030\029J\005:\029\246\000\000\000\000\000\000\006x\000\000\017\240\000\000\b\142\000\000\000\000\026X\007\160\030\144\000\000\007\220\000\000\018\144\031<\000\000\000\000\019<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\224\b,\000\000\b\230\000\000\000\000\000\000\000\000\bl\000\000\019\220\000\000\000\000\000\000\00745\180\000\000\000\000\000\000 \188\000\000\000\000\000\000\000\000\000\000\007\224\006P\000\000\000\000/\016\000\000\000\000\000\127\000\000\006\138\000\000\000\000\030l\000\000\000\000\000\000/\018\000\000\000\000\000\000\000\000/v\000\000\000\000\bj\006\166\000\000\000\000/\154\000\000\000\000\b\250$\004\000\000\007,\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$P\000\000\000\000\000\000\001\144\000\000\000\000\007b\000\000\000\000\030\170\000\000\000\000\000\0000\170\000\000\000\000\000\000\000\0001\014\000\000\000\000\t\196\007\246\000\000\000\00014\000\000\000\000\t\002\000\000\000\000\000\000\000\000\003\142\005\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\228\000\000\020\154\000\000\000\000\000\0005\194\000\000\b\208\000\000\000\000\000\000\006\136\000\000\019\254\000\000\000\000\004\134\021:\000\000\021\230\000\000\000\000\000\000\006P\000\0005\246\007\1325\252\000\0006\134\000\000\000\000\000\000\007\224\000\0006\172\b\018\000\000\000\000'<\b\226'V\000\000(,\000\000\000\000\000\000\t:\000\0006\224\t^\000\000\000\000\rZ\tb\019N\000\000\020\208\000\000\000\000\000\000\td\000\0007\130\tz\000\000\000\000\000\000\000\026\000\000\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\b\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023,\000\000\000\000\005f\000\000\000\000\r@\000\000\000\000\000\000\000\000\n\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r@\000\000\000\000\r\028\000\000\r.\000\000\000\000\004r\000\000\007\158\012\218\001V\000\000\000\000\003\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\001\138\000\000\000\000\000@\000\000\000\000\000\000\017\238\000\000\000\000\021\224\023\002\000\000\000\000\000\000\000\000\027t\028\142\000\135\000\000\000\000\000\000 \146\000\000\000\000\000\000\000\000\000\000\000\000\002\132\000\000\000\000\000\206\000\000\000\000\012\160\000\000\000\000\022\252\000\000\000\000\t\244\000\000\000g\000\000\000\000\000\000\000\000\b\020 \206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023L!\148\000\000\000\000\000\000\000\000!\228\000\000\000\000\025\222\000\000\r\\\000\000\000\000\000\000\027\210\000\000\003\026\000\000\000\000\000\000\031\134\000\000\000\000\"~\000\000\000\000\016\226#\134\019\134\000\000#\170\000\000\000\000\000\000\000\000\r\030\000\000\000\000\000\000\000Y\000\000\000\028\012\244\004\030\000\000\000\000\000\000\007\166\004\012\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t$\000\000\000\000\002\218\000\000\000\029\rv\007\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\198\000\000\000\000 0$N\000\000\000\000\000\000\000\000$\228\000\000\000\000\005>\000\000\b\186\011\154\000\000\028\028\000\000\000\000\000\000\000\000\000\000\000\002\030\000\000\000\000\000\030\170\000\000\000\000\000\000\000\000 T\000\000 \140\000\000\000\000\000\000\000\000\tF\000\000\000\000\000\000\003\210\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\0001B\000\000\000\000\000\000\003\132\000\000\000\000\000\000\000\000\000\000\000\004\001\172\003:\004\220\000\000\005\242\tv\t\134\t\152\000\000\000\000\000\000\000\000\000\000\000\000\005\138\022\134\000\000 \004\t\184\000\000\000\000\n\028\000\000\023\130\000\000*T\000\000\000\000\005\224\024\"\000\000 8\000\000\006\148 \240\000\000\000\000\000\000\tB\005\242\000\000\000\000\000\000\000\000\006b\000\000\007\148\000\000\006\204\t\022\000\000\000\000\000\000\003B\000\000\003\254\000\000\b\198\000\000\000\000\012\130\000\000\000\000\000\000\000\000\tz\000\000\000\000\n\250\000\000\024\206\000\000\025h\r2\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\0001\\\000\000\006\168\000\000\000\000\000\000\000\000\000\000\000\252\000\000\n2\005\188\011\026\000\000\002\144\011\198\000\000\n`\000\000\002\180\000\000\003\132\000\000\004\140\000\000\025h\000\000\000\000\000\000\000\000\000\000\005,\000\000\n\204\000\000\006 \000\000\025h\r\152\000\000\003\b\000\000\r\148\003\012\000\000\t\188\000\000\n\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\000\000\nb\000\000\000\000\000\000\012|\000\000\000\000\000\000\000\000\000\000\r\156\012\136\000\000\000\000\012\178\000\000\000\000\012\152\t\220\r\222\000\000\r\226\000\000\000\000\005\192\002@\000\000\012\194\000\000\000\000\012\250\000\000\000\000\000\000\000\000\000\000\000\000\r\202\012\180\000\000\000\000\000\000\012\218\012\190\n&\t\000\012\230\r\028\000\000\000\000\012\214\n:\n\014\012\248\rB\000\000\000\000\000H\014\020\000\000\014\022\000\000\0148\000\000\000\000\014\026\000\000\000\000\014\028\000\000\000\000\000\000\000\000\014$\000\000\014L\000\000\000\000\000\000\014N\000\000\000\000\000\000\014Z\000\000\000\000\000\000"), (16, "\003z\003\145\0011\006\006\005\182\005\127\005\128\001j\000\007\001k\003H\005\215\005\216\000\018\000J\000J\000`\006'\003z\003\145\002\170\004j\004R\006@\001\239\006\149\006\004\006\007\005\127\005\128\0013\006\150\000\005\002B\000`\001j\002;\001k\006\151\000\017\004#\005\217\001\241\003z\003\145\006\024\002;\006\029\006(\000J\006)\005\218\005P\001j\000\004\001k\002?\004$\000\139\003|\003\213\003\214\000\140\003}\000\141\004^\002=\001l\005\129\005\b\006\030\001m\006!\005\127\005\128\004$\005\183\003|\000\005\006*\005\166\003}\000\139\000\139\006\193\006\194\000\150\000\140\002>\006+\000\025\005\129\000\141\0012\007R\001l\000\024\000`\002>\001m\002\244\001z\003|\005\164\005\127\005\128\003}\006H\006\025\007S\000\141\000\028\004\153\001l\003\150\000\141\001\186\001m\006\026\006\027\000\142\0012\000i\006\153\000\143\003I\000K\003\250\000J\001z\000`\000b\001\230\000f\001:\000`\005\129\006K\006\198\000\141\000\141\006\154\003z\003\145\000\142\000\142\005\133\001z\000\143\000\143\004\r\000`\000\152\004d\001\016\006\207\005\195\003\150\000`\003\252\003\138\001\222\006\151\006\208\004#\004\018\004\199\005\129\004\r\004\019\004%\000h\003\139\004\155\004x\001E\000\152\000\152\003\138\001{\000 \005\134\001\191\004\018\004f\003\213\003\214\004\019\004%\006\155\003\139\005\014\000h\004\r\000\r\006i\000`\001\186\006\156\004$\004\023\003|\006\181\003\138\004S\003}\004r\001{\004\018\001\143\006\227\004-\004\019\001\193\004\137\003\139\004J\003\154\004\023\000\016\000\017\005\148\004(\006\183\000J\001{\001j\004f\001\208\004-\000\153\001\217\006\185\002M\004J\003\154\000J\000\139\000\031\003\155\000i\000\150\006N\004\023\003\156\005\163\000`\001\128\003\157\000\b\006s\002@\000\154\003\158\000\153\000\153\001\146\003\155\003z\003\145\003\154\000\139\003\156\006\228\005\t\000\150\003\157\001\191\005\164\005\127\005\128\003\158\001\144\003H\000`\001\148\000\154\000\154\002\170\004j\004R\005\135\003\155\000\141\001\220\000`\001l\003\156\005\011\001\153\001m\003\157\004\r\001|\000\141\001\194\003\158\000\206\001\192\000\142\001T\000\155\003\138\000\143\001\015\000\"\005\149\004\018\003\213\003\214\000J\004\019\004%\006\229\003\139\004$\003\216\003|\000\141\001\144\001z\003}\006\156\000\142\000\156\000\156\006\231\000\143\001\018\000\197\0019\000\152\005\129\005\193\001\218\000\206\003\250\007\026\000\158\000\160\006a\006b\004\023\000`\003z\003\145\004(\006\233\000\145\001\018\001H\0019\001%\004-\000`\000\152\006\235\006f\004J\003\154\000`\000\005\003z\003\145\006\151\006\213\004R\001\030\003\253\003\254\004\000\004y\003\150\000$\001\186\005\192\005p\006@\000`\003\213\003\214\003\155\006\151\006\213\004R\000i\003\156\002B\004?\001\197\003\157\003z\003{\001\219\001\234\003\158\000\206\002\252\001{\005q\000(\004$\0029\003|\005t\005\127\005\128\003}\004\r\000\153\006~\006 \002B\001j\006i\001k\005\152\006\224\003\138\004$\001\199\003|\000\254\004\018\000J\003}\001\197\004\019\004%\004\242\003\139\000\154\004{\000\153\006\030\006\218\006!\005\127\005\128\003\215\005\167\001j\004f\001k\006u\000`\000\206\007)\000\141\006s\003|\002\251\006F\001\242\003}\000\154\000\155\001\198\004\023\005\215\005\216\007*\004S\007\004\004r\000`\003z\003\145\005\129\004-\000\141\001\241\004\137\001l\004J\003\154\001(\001m\0014\000\156\000\155\001\031\000`\001 \000\157\000\206\006\151\006\213\004R\005\239\000J\006P\002\199\000\158\004\r\002\225\001\218\003\155\000\141\005\218\005\129\001l\003\156\000\156\003\138\001m\003\157\001z\000\196\004\018\004\027\003\158\004\r\004\019\004%\006\219\003\139\000\158\000`\000b\000c\000f\003\138\004$\006\156\003|\000*\004\018\004\021\003}\000/\004\019\004%\006\219\003\139\001z\000i\003z\003\145\006\220\001:\001\196\006\156\000\206\004\023\0003\004\021\005\151\004S\000\141\006\221\003\138\005\193\002\204\000\206\004-\000J\002\205\006\223\000h\004J\003\154\004\023\003\139\002\199\0021\004S\002\203\006\221\006\016\005\196\005\130\006k\004-\001\191\006l\006\223\005\148\004J\003\154\0017\003U\0037\003\155\000J\001{\0072\002M\003\156\000J\006p\006\017\003\157\000`\000\141\006\020\003|\003\158\003z\003\145\003}\003\155\0010\000J\007\007\003\153\003\156\001:\003\184\006}\003\157\005\144\002M\001{\000`\003\158\004\r\006\017\006\151\006\213\004R\002\244\006\\\006]\005\022\002\204\003\138\003z\003\145\002\205\003\155\004\018\005\149\004l\005\142\004\019\004%\006\219\003\139\004l\005\145\005\127\005\128\006u\003\158\000\206\006\156\006i\004K\004`\004\021\003\150\002\218\001\148\000`\004$\004a\003|\006s\001\177\001%\003}\005\149\001\194\002\219\000\206\004\023\001\155\000i\000`\004S\006\222\006\221\002\199\004 \001\030\002\203\004-\003z\003\145\006\223\001\148\004J\003\154\002\244\004!\003|\004c\0002\001j\003}\001k\001\015\006@\000`\001\151\001+\003\138\006\151\006\213\004R\000i\006\018\002B\005\129\003\155\004~\002\245\0005\003\139\003\156\003\247\001\021\000`\003\157\000i\001\018\006\029\0019\003\158\005\024\003\152\003\213\003\214\002\218\003.\0032\003\028\006\018\000J\000\141\005{\005\"\002\248\002\204\004$\002\219\003|\002\205\002\172\006\030\003}\006!\005\127\005\128\001F\000\141\005|\004\r\001l\005$\006\230\0007\001m\003\154\003\031\000J\005\135\003\138\0038\000J\002\251\003\248\004\018\006\021\003\213\003\214\004\019\004%\006\219\003\139\006\210\006\n\003z\003{\000`\003\155\004\r\006\156\000J\001\029\003\156\004\021\001z\001(\003\157\001)\003\138\004t\001\031\003\158\001 \004\018\000\206\004o\001\030\004\019\006x\004\023\003\139\003z\003\145\004S\000J\006\221\002\253\005\129\006A\005\r\004-\000;\004\021\006\223\002\172\004J\003\154\000`\000=\006t\002\254\006\151\006\213\004R\000`\006\225\003\249\001\228\004\023\004\r\000J\000\141\000\139\003|\002\218\003H\000\140\003}\003\155\003\138\000J\003H\001?\003\156\004\018\003\154\002\219\003\157\004\019\004%\006\219\003\139\003\158\006u\006\128\000\206\003\213\003\214\004$\006\156\003|\004\128\001{\004\021\003}\000h\004~\003\155\001\236\001R\000\206\000\139\003\156\000i\006\234\000\140\003\157\003\248\007\027\004\023\000`\003\158\000J\004S\002\170\006\221\003z\003\145\001\197\000\141\004-\000\141\000i\006\223\000\142\004J\003\154\006\142\000\143\000?\004a\000\139\000`\000C\002M\000\140\002\170\004j\004R\004'\001\031\000J\001 \006D\000\206\002\253\000i\002\173\003\155\001\199\004!\003\\\001j\003\156\001k\000J\000\152\003\157\000\141\003\000\001\148\004b\003\158\000\142\003\138\0039\003>\000\143\006\201\003z\003\145\006\202\001o\004$\001\157\003|\003\139\000i\007\"\003}\003I\004\r\001x\000i\000\004\000`\004?\006|\000\141\004\180\0046\003\138\005%\000\142\000J\000\152\004\018\000\143\003z\003\145\004\019\004%\006\219\003\139\001\238\001j\000\206\001\129\000\005\000\141\005$\006\156\001l\005\005\000`\004\021\001m\006\147\002\170\004j\004R\003N\000J\006\206\000i\000\152\004\214\004\242\003|\004X\005\025\004\023\003}\000`\000\153\004S\006\158\006\221\003c\003R\004!\000`\004-\003\144\004\139\006\223\001z\004J\003\154\000J\004\131\004\220\001\018\000i\0019\004$\000\154\003|\005\011\000B\004\134\003}\000\141\006\169\004%\001l\004\r\000i\004\182\001m\003\155\000`\000J\000\153\004\139\003\156\003\138\000J\000J\003\157\006i\004\018\002\171\006\017\003\158\004\019\004%\000E\003\139\005\017\004x\004\136\000`\003z\003\145\000\154\001\134\004\190\005\026\001z\004\021\006\172\000G\000\153\000\156\004-\002$\005\155\0042\000`\004J\004\206\004\181\002\170\004j\004R\004\023\000L\000\162\004\149\004S\000N\004r\000J\001{\000\154\005\024\004-\000J\003\138\0042\000Q\004J\003\154\000i\004\164\005\214\005\127\005\128\004\221\001:\003\139\002\199\000\156\005\156\002\203\004!\005,\004\r\004\142\004$\000S\003|\004\222\006\170\003\155\003}\000\164\003\138\001%\003\156\000i\000\139\004\018\003\157\005.\000\140\004\019\004%\003\158\003\139\004v\004x\000\156\001\030\003z\003\145\001{\004\215\006$\004\224\004\205\004\021\004\229\002G\004\247\003\154\000\166\001\209\002}\002\148\000`\001\148\005/\006\023\002\170\004j\004R\004\023\002\244\005\129\001\137\004S\002\204\004r\004\233\001\159\002\205\003\155\004-\000J\005.\0042\003\156\004J\003\154\000J\003\157\0052\000\141\005n\005o\003\158\001\147\000\142\006\175\000`\006\176\000\143\006\165\000J\006\166\004$\000\206\003|\000i\005.\003\155\003}\003;\002\207\003T\003\156\004\r\004\134\001\148\003\157\006\029\000`\000J\001\149\003\158\006s\003\138\001\150\000J\000\152\000J\004\018\001\151\003z\003\145\004\019\004%\000\139\003\139\004\157\004x\000\148\004\187\006\030\004\204\006!\005\127\005\128\004\135\000`\004\021\006x\004\249\002\170\004j\004R\001'\004\158\002\245\006x\004\158\001\031\002\171\001 \006X\000\206\004\023\006\164\006x\004\254\004S\000`\004r\004\254\006\132\002\218\003\027\004-\003\028\001j\0042\001k\004J\003\154\002\248\004!\001:\002\219\004\160\006\171\004$\004\159\003|\005:\000\141\002\216\003}\007.\004\r\000\142\005\000\002\243\000W\000\143\004\255\003\155\003\031\000\153\003\138\005\129\003\156\005<\002\251\004\018\003\157\003\127\001\215\004\019\004%\003\158\003\139\005\021\004x\005\204\006\135\003z\003\145\004\248\005~\000\154\001\233\000\152\004\021\006\252\003\136\004!\000\141\005=\001%\001l\003\231\000`\003\246\001m\005|\006\151\005\202\004#\004\023\005\205\005\127\005\128\004S\001\030\004r\005<\002\253\005@\006Z\004-\005H\005K\0042\002\199\004J\003\154\002\203\007\"\000e\006\210\002\254\005N\000\139\001z\000\208\005.\000\140\000\156\005J\005J\006\170\006\252\004$\004\r\003|\006t\000\139\003\155\003}\005.\000\148\000\168\003\156\003\138\000\211\006\165\003\157\006\166\004\018\000\206\006\226\003\158\004\019\004%\002\172\003\139\006\179\004x\007\024\000\153\006{\003z\003{\005\129\006\252\006,\006\252\004\021\006z\006\152\002\244\003T\006\216\006\210\002\204\003H\000\185\006y\002\205\000\141\000\215\000\154\0075\004\023\000\142\006\182\000\214\004S\000\143\004r\000\217\003z\003\145\000\141\004-\007-\004!\0042\000\142\004J\003\154\001{\000\143\000\219\000\223\0074\000\186\000`\001j\000\225\001\127\006\151\001(\004#\001.\007\003\000\152\001\031\000\141\001 \003|\000\206\003\155\000\228\003}\004\r\006\232\003\156\000\232\000\156\000\152\003\157\000\231\000\187\000\234\003\138\003\158\000\188\000`\000\236\004\018\000\240\000\242\000\158\004\019\004%\006\212\003\139\004$\000\139\003|\001\203\007\"\001\214\003}\006\156\002\245\000\244\000\248\006\215\000\247\000\250\000\252\006\253\000\255\000\141\006\211\001\001\001l\001\148\007#\001\003\001m\002\218\003\030\004\023\003\028\003z\003\145\004(\006\217\001\005\002\248\001\161\001\t\002\219\004-\000i\001I\006\223\004?\004J\003\154\000`\000\153\001\014\006\255\006\151\007\001\004#\001>\001D\001z\001C\003\031\001%\000\141\007#\000\153\001\227\002\251\000\142\001\226\001\232\003\155\000\143\000\154\007#\001\246\003\156\001\030\003\138\001\249\003\157\001j\001\188\001k\001\253\003\158\001\252\000\154\004D\002\199\003\139\004$\002\224\003|\001\255\002\001\002\005\003}\004\r\002\007\000\152\000`\000b\001\012\000f\002\n\004H\002\014\003\138\006\214\002\r\002\253\000\186\004\018\003z\003\145\002\016\004\019\004%\006\212\003\139\001\202\002\018\000\139\002\022\002\254\002\024\001Y\006\156\002\026\000`\002\030\006\215\002\029\002\170\000\156\004#\001{\000\141\000\187\002 \001l\000h\000\188\000`\001m\000\141\002\"\004\023\000\158\002\204\002%\004(\006\217\002\205\002\172\002'\003\140\002)\004-\002+\002/\006\223\0028\004J\003\154\000\139\003z\003\194\0027\000\148\004$\002F\003|\002L\001z\000J\003}\000\153\002K\000\141\002\143\000`\002O\004\r\000\142\001(\003\155\003A\000\143\002R\001\031\003\156\001 \003\138\000\206\003\157\002V\002U\004\018\000\154\003\158\002X\004\019\004%\006\212\003\139\005\029\002Z\003z\003\145\004\152\006\172\002^\006\156\002`\002c\000\152\006\215\002g\002f\002i\002k\000\141\000\141\000`\003|\002o\000\142\002\170\003}\004#\000\143\002\172\004\023\002q\002s\002w\004(\006\217\005\141\002v\002y\002{\002~\004-\002\128\002\130\006\223\002\218\004J\003\154\000`\001{\000J\002\132\002\170\002\136\002\142\002\199\000\152\002\219\002\223\005\142\004\r\002\141\004$\002\147\003|\005\145\005\127\005\128\003}\003\155\003\138\001\015\002\153\002\152\003\156\004\018\005y\005\161\003\157\004\019\004%\005\140\003\139\003\158\000i\003z\003\145\005\154\005\198\003\\\005\233\000\153\006\002\004\028\004\141\001\018\002\199\0019\004\150\002\203\006\012\000`\004\152\006&\006\191\002\170\004\030\004#\006\237\001j\004\023\001\129\000\141\000\154\004(\004\143\002\204\001\148\006\241\007\005\002\205\004-\007\011\003\138\0042\007\012\004J\003\154\003V\005\129\007\017\001\163\006\174\007\018\000\153\003\139\006\165\007\023\006\166\007\022\000\206\007\030\004$\007 \003|\007&\003Z\007'\003}\003\155\007+\001W\007,\002\244\003\156\004\r\000\154\002\204\003\157\007/\0070\002\205\000i\003\158\0073\003\138\000\141\002\172\0076\001l\004\018\003z\003\145\001m\004\019\004%\001\200\003\139\000\206\0077\004*\000\186\007H\007=\007F\007B\007E\000`\000J\004\141\007N\002\170\004+\004R\007L\007P\000`\000b\001<\000f\001\134\007U\004%\001z\000\156\004\023\003]\000\000\000\187\004(\004\143\000\000\000\188\000\000\000\000\002\218\004-\000\000\000\158\0042\000\000\004J\003\154\001j\003a\001k\000\000\002\219\004$\000\000\003|\005\157\000\000\000\000\003}\004\r\005C\000h\000\000\002\245\000\000\000\000\000\000\004-\003\155\003\138\0042\000\000\004J\003\156\004\018\003z\003\145\003\157\004\019\004%\002\218\003\139\003\158\003&\004U\000\000\000\000\000\000\000\000\002\248\000\139\000`\002\219\004W\001V\002\170\004+\004R\000`\000b\001A\000f\000\000\000\000\000\141\001{\001j\001l\001\129\004\023\000\000\001m\000\000\004(\004Y\000\000\001\135\002\251\000\000\000\000\004-\000\000\000\000\004[\000i\004J\003\154\000\000\001j\001\137\001k\000\000\004$\000\000\003|\000\000\000\000\000\000\003}\000h\000\000\001z\000\000\000\000\000\000\004\r\000\000\000\141\003\155\000\000\000\000\001\147\000\142\003\156\003)\003\138\000\143\003\157\003z\003\143\004\018\002\253\003\158\000\141\004\019\004%\001l\003\139\004L\000\000\001m\000\000\000\000\001\148\000\000\002\254\000\000\000\000\001\149\004\021\000\000\000\000\001\150\000\000\000\152\000\141\004P\001\151\001l\000\139\000\000\000\000\001m\000\140\001\015\004\023\000\000\000\000\000\000\004S\001z\004T\000\000\001j\000\000\001~\004-\003z\003\145\0042\000\000\004J\003\154\000\000\000\000\000\141\004Z\003|\001\018\001{\0019\003}\001z\000`\000\000\004\r\000\000\002\170\004+\004R\000\000\000\000\000\000\000\000\003\155\003\138\003z\003\145\000\000\003\156\004\018\000\000\000\000\003\157\004\019\004%\000\141\003\139\003\158\000\000\000\000\000\142\000`\000\000\000\000\000\143\002\170\004j\004R\004\021\000\141\000\000\000\153\001l\004$\000\000\003|\001m\000\000\000\000\003}\000\000\001\015\000\000\000\000\004\023\000\000\000\000\001{\004S\000\000\004T\000\000\000\152\000\154\000\000\004-\001\148\000\000\0042\000\000\004J\003\154\004$\000\000\003|\001\018\001z\0019\003}\001{\001\165\001\145\000`\000b\001\224\000f\000\000\000\000\000`\000b\0025\000f\000\000\003\155\000\000\000\000\000\000\003\138\003\156\000\000\003z\003\145\003\157\001\147\000\000\000\000\000\000\003\158\000\000\003\139\000\000\002\199\000\000\000\000\002\203\000\000\000`\000\000\006\003\000\000\002\170\004j\004R\000h\000\000\001\148\000\000\000\000\000\000\000h\001\149\000\000\000\000\000\000\001\150\000\000\004\r\000\000\000\000\001\151\000\153\006\004\006\007\005\127\005\128\000`\003\138\001\148\003z\003\142\000\000\004\018\000\000\000\000\001{\004\019\004%\004$\003\139\003|\000\000\001\167\000\154\003}\000\000\004\r\000\000\000\000\000\141\000\000\004\021\000\000\002\204\000\000\000\000\003\138\002\205\006\028\000\000\000\139\004\018\000\000\000\000\000\148\004\019\004%\004\023\003\139\000\000\004q\004S\000\000\004T\000\000\000\000\000`\000\000\004-\000\000\004\021\0042\000\000\004J\003\154\000\000\000\141\005\129\003|\000\000\000\000\000\156\003}\001%\000\000\000\000\004\023\000\000\000\000\000\000\004S\000\000\004r\003z\003\145\000\170\003\155\004-\001\030\000\000\0042\003\156\004J\003\154\001j\003\157\001k\000\141\000\000\000`\003\158\000\000\000\142\002\170\004j\004R\000\143\000\000\000\000\000\000\000\000\004\r\000\000\000\000\005\163\003\155\001j\001\015\001k\000\000\003\156\003\138\000\000\001\015\003\157\000\000\004\018\000\000\000\000\003\158\004\019\004%\002\218\003\139\000\152\004s\000\000\005\164\005\127\005\128\004$\001\018\003|\0019\002\219\004\021\003}\001\018\000\000\0019\000\000\000\141\000\000\000\000\001l\001\184\001\186\000\000\001m\000\000\000\000\004\023\000\000\003z\003\145\004S\000\000\004r\000\000\003\138\000\000\000\000\004-\000\141\006.\0042\001l\004J\003\154\000`\001m\003\139\000\000\002\170\004\144\004R\000\000\001j\001z\001k\000\000\000`\000b\002D\000f\000\000\000\000\001(\000\000\003K\003\155\005\129\001\031\000\000\001 \003\156\000\206\000\000\000\000\003\157\001z\000\000\000\153\002\253\003\158\002\199\000\000\000\000\002\203\000\000\004$\000\000\003|\000\000\000\000\000\000\003}\003\002\000\000\001\188\000\000\000\000\000h\004\r\000\154\000\000\000`\000b\002I\000f\000\000\000\000\000\000\003\138\000\141\000\000\000\000\001l\004\018\003z\003\145\001m\004\019\004%\001\194\003\139\000\206\004\133\004\146\000\186\001j\000\000\001k\000\000\000\000\000`\001{\004\021\000\000\002\170\004\144\004R\002\244\000\000\000`\000\000\002\204\000h\002\170\000\000\002\205\001z\000\156\004\023\000\000\000\000\000\187\004S\001{\004r\000\188\000\000\000\000\000\000\004-\000\000\000\158\0042\000\000\004J\003\154\000\000\000\000\000\000\000\000\000\000\004$\000\000\003|\005\170\000\000\000\000\003}\004\r\000\000\003\\\000\000\000\141\000\000\000\000\001l\000\000\003\155\003\138\001m\000\000\000\000\003\156\004\018\003z\003\145\003\157\004\019\004%\001\148\003\139\003\158\001j\004\166\001}\000\000\005\182\005\127\005\128\004\148\000`\000\000\004\021\001\169\002\170\004+\004R\000\000\000\000\001z\000\000\001\148\000\000\002\245\001{\000\139\000\000\000`\004\023\000\150\001\015\002\170\004S\000\000\004\147\001\171\000\000\000\000\000\000\004-\002\218\000\000\0042\003!\004J\003\154\000\139\000\000\000\000\002\248\000\148\004$\002\219\003|\001\018\000\000\0019\003}\000\000\000\141\000\000\000\000\001l\000\000\004\r\000\000\001m\003\155\003\\\000\000\005\129\003#\003\156\000\000\003\138\001\015\003\157\002\251\005\251\004\018\000\000\003\158\000\141\004\019\004%\000\000\003\139\000\142\000\000\003z\003\145\000\143\001\148\004%\000\000\000\000\001z\001{\004\021\001\018\000\000\0019\000\000\000\141\000\000\000`\001\173\000\000\000\142\002\170\000\000\004#\000\143\000\000\004\023\003,\000\000\000\000\004S\000\152\004\147\002\253\000\000\002\199\000\000\004-\002\203\005E\0042\000\000\004J\003\154\000`\000\000\004-\002\254\002\170\0042\000\000\004J\000\152\000\000\000\000\000\000\004\r\000\000\004$\000\000\003|\000\000\003z\003{\003}\003\155\003\138\005\027\000\000\000\000\003\156\004\018\000\000\002\179\003\157\004\019\004%\001\148\003\139\003\158\000\000\003z\003\145\000\000\000\000\003\\\001{\000\000\000\000\000\000\004\021\001\179\000\141\004%\005\015\000\000\002\204\000`\004\152\000\000\002\205\002\170\000\000\004#\000\000\001j\004\023\001k\000\000\000\153\004S\000\000\004T\000\000\000\000\002\199\000\000\004-\002\203\000\141\0042\003|\004J\003\154\000\000\003}\000\000\005\026\000\000\000\000\000\153\000\154\000\000\000\000\004-\000\000\000\000\0042\004$\004J\003|\000\000\000\000\000\000\003}\003\155\000\000\001\188\000\000\000\000\003\156\004\r\000\154\000\000\003\157\000\000\000\155\000\000\000\000\003\158\000\000\003\138\000\141\000\000\000\000\001l\004\018\003z\003\145\001m\004\019\004%\002\244\003\139\005\031\000\000\002\204\000\186\004\152\000\156\002\205\000\000\000\000\000`\000\199\004\141\000\000\002\170\000\000\004#\000\000\000\000\000\000\000\158\000\000\002\218\005\163\000\000\004%\001z\000\156\004\023\000\000\000\000\000\187\004(\004\143\002\219\000\188\000\000\000\000\000\000\004-\000\000\000\158\0042\000\000\004J\003\154\005\164\005\127\005\128\003\138\000\000\004$\000\000\003|\000\000\000\000\000\000\003}\004\r\005G\000\000\003\139\000\000\001j\000\000\001k\004-\003\155\003\138\0042\000\000\004J\003\156\004\018\003z\003\145\003\157\004\019\004%\000\139\003\139\003\158\000\000\000\148\000\000\002\245\000\000\005!\000\000\000\000\000`\004\152\004\141\000\000\002\170\000`\004#\000\000\000\000\000\000\000\000\000\000\002\218\002\253\001{\002\247\000\000\000\000\004\023\000\000\005\129\002\248\004(\004\143\002\219\000\000\000\000\003\004\000\000\004-\000\141\000\000\0042\001l\004J\003\154\000\000\001m\003\155\000\000\000\000\004$\000\000\003|\000\000\000\000\000\141\003}\000\000\002\251\000\000\000\142\003\160\000\000\004\r\000\143\000\000\003\155\000\000\000\000\000\000\000\000\003\156\000\000\003\138\000\000\003\157\001z\000\000\004\018\000\000\003\158\005\201\004\019\004%\000\000\003\139\006\129\005\163\000\000\000\139\004\152\001\148\000\152\000\140\000\000\000\000\000\000\004\141\000\000\000\000\000\000\000\000\002\253\005s\005\202\001\181\000\000\005\205\005\127\005\128\005\164\005\127\005\128\004\023\000\000\000\000\002\254\004(\004\143\003z\003\145\005\201\000\000\000\000\004-\000\000\005q\0042\006\137\004J\003\154\005t\005\127\005\128\000\000\000`\000\000\005\176\000\000\002\170\004+\004R\000\000\004\r\005\202\000\000\000\141\005\205\005\127\005\128\000\000\000\142\003\155\003\138\001{\000\143\000\000\003\156\004\018\000\000\000\000\003\157\004\019\004%\000\000\003\139\003\158\003z\003{\000\000\000\153\005\129\000\000\000\000\005\129\000\000\004$\004\141\003|\000\000\000\000\000\139\003}\000\152\000\000\001U\000\000\001Z\000\000\000\000\000\000\000\000\000\154\004\023\000\000\005\129\000\000\004(\004\143\003z\003\145\000\000\000\000\000\000\004-\000\000\000\000\0042\000\000\004J\003\154\005\129\001\\\000\000\000\206\000`\000\000\000\186\000\000\002\170\000\000\004#\001\148\000\000\000\141\000\000\003|\000\000\000\000\000\000\003}\000\000\003\155\000\000\000\000\000\000\001\183\003\156\000\141\000\000\000\156\003\157\000\000\000\142\000\187\000\000\003\158\000\143\000\188\000\000\000\000\000\000\000\000\000\000\000\158\000\000\004$\002\199\003|\000\000\002\203\000\153\003}\000`\000b\002\139\000f\000\000\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\152\005\219\000\000\000\000\003\138\000\000\000\000\005\174\000\154\004\018\003z\003\145\000\000\004\019\004%\000\000\003\139\006\143\000\000\006\184\000\000\004\152\000`\000b\002\145\000f\000`\000\000\004\021\000h\002\170\004+\004R\000\184\000`\000b\002\150\000f\000\000\000\141\000\000\005\225\000\000\002\204\004\023\000\000\000\000\002\205\004S\000\000\004T\000\000\003\138\000\000\000\000\004-\000\156\000\000\0042\000\000\004J\003\154\000\000\000h\003\139\000\000\000\000\004$\000\000\003|\000\158\000\000\000\000\003}\004\r\000h\000\000\000\000\000\153\000\000\000\000\000\000\000\000\003\155\003\138\000\000\000\000\000\000\003\156\004\018\000\000\000\000\003\157\004\019\004%\000\000\003\139\003\158\000\000\000`\000\154\000\000\003z\003\141\000\000\000\000\000\000\006x\004\141\004\161\003z\003\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\172\004\023\000\000\000`\000\000\004(\004\143\002\170\003\155\004R\000\000\000\000\004-\003z\003\145\0042\000\000\004J\003\154\002\218\000\139\003H\003\162\000\000\000\150\004V\000\000\000\000\000\000\000`\000\000\002\219\000\000\002\170\000\000\004#\000\141\004\r\003|\001\015\003\155\006\029\003}\001%\004$\003\156\003|\003\138\000\000\003\157\003}\005\234\004\018\000\000\003\158\000\000\004\019\004%\001\030\003\139\000\000\000\000\000\000\001\018\006\030\0019\006!\005\127\005\128\000\000\004$\004\021\003|\001\015\005\235\000\000\003}\000\141\005\238\005\127\005\128\000\000\000\142\000\000\000\000\001\015\000\143\004\023\000\000\000\000\000\000\004S\000\000\004T\000\000\000\000\000\000\001\018\004-\0019\002\221\0042\000\000\004J\003\154\003z\003\145\000\000\000\000\001\018\000\000\0019\000\000\000\000\000\152\000\000\000\000\004\"\000\139\000\000\002\172\000`\000\148\000\000\000\000\002\170\003\155\004#\000\000\000\000\005\129\003\156\000\000\000i\000`\003\157\004?\004\r\000\000\003\138\003\158\003H\005\129\006|\000\000\000\000\000\000\003\138\000\000\000\000\000\000\003\139\004\018\000\000\000\139\000\000\004\019\004%\000\150\003\139\000\000\000\000\004$\004\r\003|\000\000\000\000\001(\003}\0049\000\000\004\163\001\031\003\138\001 \000\141\000\206\004D\004\018\000\000\000\142\000\000\004\019\004%\000\143\003\139\000\000\004\023\001\197\000\000\000\000\004S\000\153\004\165\000\000\004H\000\000\004&\004-\000\000\000\000\0042\000\000\004J\003\154\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000\152\004\023\000\154\000\000\000\142\004(\004)\001\199\000\143\003z\003\145\000\000\004-\000\000\003\155\0042\000\000\004J\003\154\003\156\000\000\004,\000\000\003\157\0061\000`\000\000\000\155\003\158\002\170\000\000\004#\000\000\000\000\005\240\000\000\000\152\000\000\000\000\000\000\003\155\000i\000\000\004\r\004?\003\156\005\163\000\000\000\000\003\157\000\156\000\000\000\000\003\138\003\158\001\131\003z\003{\004\018\000\000\000\000\000\000\004\019\004%\000\158\003\139\004$\000\000\003|\005\164\005\127\005\128\003}\002\199\000\000\000\000\002\203\004&\000\153\000\000\000\000\000\000\000\000\000\000\000\000\004D\003z\003\145\000\000\005\237\000\000\000\000\001L\004\023\000\000\000\204\000\000\004(\004)\000\000\000\154\000\000\000`\004H\004-\000\000\002\170\0042\004#\004J\003\154\000\000\005\235\000\141\000\153\003|\005\238\005\127\005\128\003}\000\205\000\000\000\206\000\000\000\000\000\186\000\000\000\000\006\029\000\000\000\141\000\000\003\155\005\129\002\204\000\000\000\154\003\156\002\205\002\199\000\000\003\157\002\203\004$\000\000\003|\003\158\000\000\000\156\003}\000\000\006\030\000\187\006!\005\127\005\128\000\188\000\000\000\000\004\r\000\000\000\155\000\158\000\000\001J\000\000\000\000\000\000\000\000\003\138\000\000\000\000\003z\003\145\004\018\000\000\000\000\000\000\004\019\004%\005\129\003\139\000\000\000\000\000\156\000\000\000\000\005\163\000`\001\133\000\000\000\000\002\170\004&\004#\000\000\000\141\000\000\000\158\000\000\002\204\000\000\002\199\000\000\002\205\002\222\000\000\000\000\000\000\004\023\005\164\005\127\005\128\004(\004)\002\199\003\138\005\129\002\203\000\000\004-\000\000\000\000\0042\000\000\004J\003\154\000\000\003\139\004$\000\139\003|\000\000\002\218\000\140\003}\004\r\000\000\000\000\000\000\000\000\005\189\000\000\000\000\000\000\002\219\003\138\000\000\003\155\003z\003\145\004\018\000\000\003\156\000\000\004\019\004%\003\157\003\139\000\141\000\000\000\000\003\158\002\204\004u\000`\000\000\002\205\000\000\002\170\004n\004#\000\141\000\000\005\129\000\000\002\204\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\000\000\004\023\000\141\000\000\000\000\004(\004p\000\142\000\000\000\000\003\155\000\143\004-\000\000\002\218\0042\000\000\004J\003\154\002\199\000\000\004$\002\203\003|\003\164\000\000\002\219\003}\000\000\002\253\000\000\000\000\000`\000g\000\000\000f\000\000\004\r\006B\000\152\003\155\000\000\000\000\003\006\000\000\003\156\000\000\003\138\000`\003\157\003z\003\145\004\018\000\000\003\158\000\000\004\019\004%\000\000\003\139\000\000\000\000\000\000\000\000\000\000\004m\000`\000\000\000\000\000\000\002\170\004n\004#\000h\000\000\000\000\002\244\002\218\000\000\000\000\002\204\000\000\000\000\000\000\002\205\006\029\000\000\004\023\000\000\002\219\002\218\004(\004p\002\199\000\000\002\220\002\203\005\187\004-\000\000\000\000\0042\002\219\004J\003\154\000\000\000\000\004$\006\030\003|\006!\005\127\005\128\003}\004\r\001%\000\000\000\153\000\000\000`\001\017\000\000\000f\000\000\003\138\000`\003\155\003z\003\145\004\018\001\030\003\156\000\000\004\019\004%\003\157\003\139\000\000\000\000\000\154\003\158\004\129\000\000\000`\000\000\000\000\000\000\002\170\004\130\004#\002\244\000\000\000\000\000\000\002\204\000\000\000`\000\000\002\205\000\000\000h\000\000\002\245\000\000\004\023\000\000\000\000\000\000\004(\004\132\006\029\002\253\000\000\000\000\005\129\004-\000\000\000\000\0042\002\218\004J\003\154\002\250\000\000\004$\003\b\003|\000\156\002\248\000\000\003}\002\219\001%\006\030\000\000\006!\005\127\005\128\000\000\000\000\004\r\000\172\000\000\003\155\000\000\000\000\001\015\001\030\003\156\000\000\003\138\000\000\003\157\003z\003\145\004\018\002\251\003\158\000\000\004\019\004%\000\000\003\139\001%\004\140\000\000\000\000\000\000\004\127\000`\001\018\000\000\0019\002\170\004n\004#\002\245\000\000\001\030\001(\000\000\004A\000\000\000\000\001\031\000\000\001 \000\000\000\206\000\000\004\023\000\000\000\000\002\218\004(\004p\003!\000\000\000\000\005\129\002\253\004-\002\248\000\000\0042\002\219\004J\003\154\000\000\000\000\004$\000\000\003|\000\000\002\254\000\000\003}\004\r\000\000\005\201\006I\000\000\000\000\000\000\003#\000\000\000\000\003\138\000\000\003\155\002\251\000\000\004\018\001\015\003\156\000\000\004\019\004%\003\157\003\139\000\000\000\000\005\202\003\158\000\000\005\205\005\127\005\128\000\000\000\000\004\145\004\141\000\000\003z\003\145\000\000\001(\001\018\004\193\0019\000\000\001\031\000\000\001 \006\133\000\206\000\000\004\023\003+\000`\000\000\004(\004\143\002\170\002\253\004#\000\000\000\000\004-\003z\003\145\0042\000\000\004J\003\154\000\000\000\000\001(\002\254\004\236\006\145\000\000\001\031\000\000\001 \000`\000\206\000\000\000\000\002\170\000\000\004#\000\000\004\r\005\201\006L\003\155\000\000\000\000\005\129\004$\003\156\003|\003\138\000\000\003\157\003}\000\000\004\018\000\000\003\158\000\000\004\019\004%\006\003\003\139\000\000\005\202\000\000\000\000\005\205\005\127\005\128\000\000\000\000\000\000\004$\004\141\003|\000\000\000\000\000\000\003}\000\000\000\000\003z\003\145\006\004\006\007\005\127\005\128\006\029\000\000\004\023\000\000\000\000\005\163\004(\004\143\000\000\000\000\000`\000\000\000\000\004-\004\180\000\000\0042\000\000\004J\003\154\003z\003\145\000\000\006\030\000\000\006!\005\127\005\128\005\164\005\127\005\128\006\148\000\000\000\000\000\000\005\163\000`\000\000\004\211\000\000\002\170\003\155\004#\005\129\000\000\000\000\003\156\000\000\000\000\000\000\003\157\004\214\004\r\003|\000\000\003\158\000\000\003}\005\164\005\127\005\128\005\129\003\138\005\243\000\000\000\000\000\000\004\018\000\000\000\139\000\000\004\019\004%\000\148\003\139\000\000\004\220\004$\004\r\003|\000\000\000\000\000\000\003}\000\000\000`\006\134\000\000\003\138\005\129\000\000\000\000\005\129\004\018\000\000\000\000\000\000\004\019\004%\000\139\003\139\000\000\004\023\000\150\000\000\005\001\004(\006\136\003\150\000\000\001\186\000\000\006\134\004-\000\000\000\000\0042\000\000\004J\003\154\000\139\000\000\005\129\000\000\000\148\000\000\000\141\000\000\004\023\000\000\000\000\000\142\004(\006\136\005\163\000\143\000`\000\000\000\000\004-\000\000\003\155\0042\000\000\004J\003\154\003\156\000\000\0067\000\000\003\157\000\000\000\000\000\000\003\138\003\158\000\141\005\164\005\127\005\128\000\000\000\142\000\000\000\152\004\221\000\143\003\139\003\155\006U\000\000\004\r\000\000\003\156\000\000\005\163\000\000\003\157\000\141\005\003\000\000\003\138\003\158\000\142\000\000\000\000\004\018\000\143\000\000\002\199\004\019\004%\002\203\003\139\000\152\000\000\006S\000\000\005\164\005\127\005\128\005\185\000\000\000\000\000\139\006\134\004\224\000\000\000\148\005\004\000\000\004\247\003\154\000\000\000\000\000\152\000\000\000\000\000\000\000\000\000`\004\023\005\129\000\000\000\000\004(\006\136\000\000\000\000\000\000\000\000\005\212\004-\000\000\003\155\0042\000\000\004J\003\154\003\156\000\139\000\000\000\153\003\157\000\140\000\000\002\244\000\000\003\158\000\000\002\204\000\000\005\163\000\000\002\205\000\000\000\200\000\201\000\203\000\204\003\155\000\141\005\129\000\000\000\154\003\156\000\142\000\000\000\000\003\157\000\143\000\000\000\153\000\000\003\158\005\164\005\127\005\128\000\000\000\139\000\000\000\000\000\000\000\148\000\205\000\000\000\206\000\000\000\000\000\186\000\000\000\000\000\000\000\153\000\154\000`\000\000\000\141\000\152\000\000\000\000\000\000\000\142\000\000\000\000\000\000\000\143\000\200\001q\000\203\000\204\000\000\000\156\000\000\000\000\000\154\000\187\000\000\000\000\000\155\000\188\000\000\000\000\000\000\000\000\000\000\000\158\000\000\001J\000\000\005\223\000\000\002\245\000\000\000\152\000\205\000\141\000\206\000\000\005\129\000\186\000\142\000\156\000\000\000\139\000\143\000\000\003\147\000\148\002\218\003.\003/\003\028\000\000\003z\003{\000\158\000\000\002\248\000\000\000`\002\219\000\139\000\156\000\000\000\000\000\148\000\187\000\000\000\000\005\228\000\188\000\000\000\152\000\000\000\000\000\153\000\158\000`\001J\003\031\000\000\000\000\000\000\005\163\000\000\002\251\000\000\000\000\000\000\000\200\002\209\000\203\000\204\000\000\000\000\000\000\000\000\000\154\000\000\000\000\000\141\005\163\000\000\000\000\000\000\000\142\005\164\005\127\005\128\000\143\000\141\000\153\003|\000\000\003z\003\145\003}\000\205\000\141\000\206\000\000\000\000\000\186\000\142\005\164\005\127\005\128\000\143\000\000\002\253\000`\000\000\000\000\000\154\004\180\000\000\000\000\000\152\000\000\000\000\000\000\000\000\000\000\002\254\000\000\000\156\005\246\000\000\000\000\000\187\000\153\000\000\000\139\000\188\000\000\000\152\000\148\000\000\004\213\000\158\000\000\001J\000\000\000\000\000\200\003\129\000\203\000\204\000`\000\000\005\129\004\214\000\154\003|\000\000\000\000\000\000\003}\000\000\000\000\000\000\000\156\000\000\005\163\000\000\000\000\000\000\000\000\005\129\000\000\000\000\000\000\000\205\000\000\000\206\000\174\004\220\000\186\000\000\000\000\000\000\000\000\000\000\000\000\003z\003\145\005\164\005\127\005\128\000\141\000\000\000\000\000\000\003\138\000\142\000\153\000\000\000\000\000\143\000\000\000\156\000\000\000\000\000\000\000\187\003\139\004\006\005\028\000\188\000\200\004\015\000\203\000\204\000\153\000\158\000\000\001J\000\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\200\004/\000\203\000\204\000\000\000\000\000\000\000\000\000\154\000\000\000\205\005\163\000\206\000\000\002\244\000\186\003|\000\000\000\000\000\000\003}\000\000\000\000\005\129\000\000\000\000\000\000\003\138\000\205\000\000\000\206\005\255\000\000\000\186\005\164\005\127\005\128\004\221\000\156\003\139\000\000\000\000\000\187\000\000\000\000\003\155\000\188\000\000\000\000\005\253\000\000\004\222\000\158\000\000\001J\000\000\000\156\000\000\000\000\003\166\000\187\000\000\000\000\000\000\000\188\000\000\000\000\000\000\000\000\000\000\000\158\000\139\001J\003z\003\145\000\140\000\000\000\153\004\224\000\000\000\000\004\229\000\000\004\247\003\154\000\000\003z\003\145\000\000\000\000\000\000\000\200\004\226\000\203\000\204\004\006\004g\000\000\005\129\000\154\000\000\000\000\000\000\000\000\000\000\000\000\003\155\004\r\004\006\004]\000\000\003\156\000\000\000\000\000\000\003\157\000\000\003\138\000\000\000\205\003\158\000\206\004\018\000\000\000\186\000\000\004\019\000\000\000\141\003\139\002\244\0065\003|\000\142\000\000\000\000\003}\000\143\000\000\000\000\000\000\004\021\000\000\002\244\000\000\003|\000\139\000\156\000\000\003}\000\140\000\187\000\000\000\000\000\000\000\188\000\000\004\023\000\000\003z\003\145\000\158\000\000\001J\000\000\000\152\000\000\000\000\000\000\000\000\000\000\000\000\003z\003\145\003\154\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\017\003\155\003z\003\145\000\000\000\000\003\156\000\000\000\141\000\000\003\157\006:\000\000\000\142\000\000\003\158\000\000\000\143\000\000\000\000\000\000\002\244\000\000\003|\004\006\004i\000\000\003}\004\r\000\000\000\000\000\000\000\000\000\000\002\244\000\000\003|\000\000\003\138\002\199\003}\004\r\002\203\004\018\000\000\000\152\000\000\004\019\000\153\000\000\003\139\003\138\000\000\000\000\000\000\000\000\004\018\000\000\000\000\002\244\004\019\003|\004\021\003\139\000\000\003}\000\000\000\000\000\000\000\000\000\154\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\023\000\000\000\000\000\000\000\000\000\000\003z\003\145\000\000\000\000\000\000\000\000\000\000\004\023\000\000\000\000\000\000\003\154\000\141\003z\003\145\000\000\002\204\000\000\000\000\000\000\002\205\000\000\004\006\0055\003\154\000\000\000\000\000\000\000\000\000\000\004\r\000\000\000\000\003\155\000\156\004\006\0057\000\000\003\156\000\153\003\138\000\000\003\157\004\r\000\000\004\018\003\155\003\158\000\176\004\019\000\000\003\156\003\139\003\138\000\000\003\157\000\000\002\244\004\018\003|\003\158\000\154\004\019\003}\004\021\003\139\000\000\000\000\004\r\000\000\002\244\000\000\003|\000\000\000\000\000\000\003}\004\021\003\138\000\000\004\023\000\000\000\139\004\018\000\000\000\000\000\148\004\019\000\000\000\000\003\139\000\000\000\000\004\023\000\000\000\000\000\000\003\154\000`\000\000\000\000\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\000\156\003\154\000\000\000\000\000\000\000\000\002\218\000\000\000\000\004\023\003\155\003z\003\145\000\000\000\178\003\156\000\000\000\000\002\219\003\157\000\000\000\000\000\000\003\155\003\158\000\000\003\154\000\000\003\156\000\000\000\141\000\000\003\157\004\006\0059\000\142\000\000\003\158\000\000\000\143\000\000\004\r\002\199\000\000\000\000\002\203\000\000\000\000\003\155\000\000\000\000\003\138\000\000\003\156\004\r\000\000\004\018\003\157\000\000\000\000\004\019\000\000\003\158\003\139\003\138\000\000\000\000\000\152\002\244\004\018\003|\000\000\000\000\004\019\003}\004\021\003\139\000\000\000\000\000\000\000\139\000\000\000\000\000\000\000\148\000\000\000\000\002\253\004\021\000\000\000\000\004\023\000\000\000\000\002\199\000\000\000`\002\203\000\000\000\141\000\000\003\n\000\000\002\204\004\023\000\000\000\000\002\205\003\154\000\000\000\000\000\000\000\000\000\139\000\000\000\000\000\000\000\148\000\000\000\000\000\000\003\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\003\155\000\000\000\000\000\000\000\000\003\156\000\000\000\141\000\000\003\157\000\000\000\000\000\142\003\155\003\158\000\153\000\143\000\000\003\156\000\000\000\000\000\141\003\157\003z\003{\002\204\000\000\003\158\000\000\002\205\000\000\004\r\001Z\000\000\000\000\000\000\000\000\000\154\000\139\000\000\000\141\003\138\000\148\000\000\000\152\000\142\004\018\000\000\000\000\000\143\004\019\000\139\000\000\003\139\000`\000\148\000\000\001\206\000\000\000\206\000\000\000\000\000\186\000\000\000\000\004\021\000\000\000`\000\000\000\139\000\000\000\000\002\218\000\140\000\000\000\000\000\000\000\152\000\000\000\000\000\141\004\023\003|\000\000\002\219\000\156\003}\000\000\000\000\000\187\000\000\000\000\000\000\000\188\000\000\000\141\000\000\000\000\003\154\000\158\000\142\000\000\000\000\000\000\000\143\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\000\000\142\000\139\000\000\000\000\000\143\000\148\000\000\003\155\000\000\000\153\000\000\002\218\003\156\000\141\000\000\000\000\003\157\000`\000\142\000\152\000\000\003\158\000\143\002\219\000\000\000\000\001W\000\000\000\000\000\000\000\000\000\154\000\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\253\000\000\000\153\000\000\002\199\000\000\000\000\002\203\000\000\000\000\000\152\001\212\000\000\000\206\003\012\000\000\000\186\000\000\000\141\002\182\000\000\000\000\000\000\000\142\000\154\000\000\000\000\000\143\000\000\000\000\003\138\000\000\000\139\000\000\000\139\000\000\000\148\000\000\000\148\000\156\000\000\000\000\003\139\000\187\002\184\000\000\000\206\000\188\000\000\000\186\000\000\000\000\002\253\000\158\000\000\000\152\000\000\000\153\000\139\000\000\000\000\002\244\000\148\000\000\000\000\002\204\003\014\000\000\000\000\002\205\000\153\000\000\000\156\000\000\002\182\000\000\000\187\000\139\000\000\000\154\000\188\000\148\000\000\000\000\000\000\000\000\000\158\003j\000\153\000\141\000\000\000\141\000\154\000\000\000\142\000\000\000\142\000\000\000\143\002\201\000\143\000\206\000\000\000\000\000\186\000\000\000\000\000\000\000\000\003\155\000\154\000\182\003l\001\175\000\206\000\141\000\000\000\186\000\000\000\000\000\142\000\000\000\000\003\168\000\143\000\000\000\152\000\156\000\152\002\199\000\000\000\187\002\203\000\153\000\141\000\188\000\000\000\000\000\000\000\142\000\156\000\158\000\000\000\143\000\187\000\000\000\000\002\245\000\188\000\000\003j\000\000\000\152\000\000\000\158\000\154\000\000\000\000\000\156\000\000\000\000\000\000\000\000\000\000\002\218\003.\006\139\003\028\000\000\000\000\000\000\000\152\000\180\002\248\000\000\003\192\002\219\000\206\002\199\000\000\000\186\002\203\000\000\000\000\000\000\002\199\002\244\000\000\002\203\000\000\002\204\000\000\000\000\000\000\002\205\003\031\000\000\000\000\000\000\000\000\000\000\002\251\000\000\000\156\000\153\000\000\000\153\000\187\000\000\000\000\000\000\000\188\000\000\000\000\000\000\000\000\000\000\000\158\000\000\000\000\000\000\000\185\0034\000\185\000\000\000\000\000\154\000\000\000\154\000\000\000\153\000\000\000\000\000\000\000\000\002\244\000\000\000\000\000\000\002\204\000\139\002\239\002\244\002\205\000\148\002\253\002\204\002\241\000\000\000\153\002\205\000\186\000\154\000\186\000\000\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\000\000\002\241\000\000\000\000\000\000\000\000\000\154\002\245\000\000\000\156\000\000\000\156\000\186\000\187\000\000\000\187\000\000\000\188\000\000\000\188\000\000\000\000\000\000\000\158\002\218\000\158\000\000\003!\000\000\000\000\000\000\000\186\000\141\002\248\000\139\000\156\002\219\000\142\000\148\000\187\000\000\000\143\000\000\000\188\000\000\000\000\000\139\000\000\000\000\000\158\000\148\000\000\000\000\000\000\000\156\003#\002\245\000\000\000\187\000\000\000\000\002\251\000\188\002\245\000\000\000\000\000\000\000\000\000\158\000\152\000\000\000\000\000\000\002\218\000\000\000\000\003!\000\000\000\000\000\000\002\218\000\000\002\248\003!\000\139\002\219\000\000\000\000\000\148\002\248\000\000\000\141\002\219\000\000\000\000\000\000\000\142\000\000\000\000\003*\000\143\000\000\000\000\000\141\003#\002\253\000\000\000\000\000\142\000\000\002\251\003#\000\143\000\000\000\000\000\000\000\000\002\251\000\000\002\254\000\000\000\000\000\139\000\000\000\000\000\139\000\148\000\000\000\152\000\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\152\000\141\000\000\000\000\000\000\000\000\000\142\000\153\003%\000\000\000\143\000\000\000\000\000\000\002\253\003(\000\000\000\000\000\000\000\000\000\000\002\253\000\000\000\000\002\241\000\000\000\000\000\139\002\254\000\154\000\000\000\148\000\000\000\000\000\000\002\254\000\000\000\000\000\152\000\141\000\000\000\000\000\141\000\000\000\142\000\139\000\000\000\142\000\143\000\148\000\000\000\143\000\000\002\199\000\186\000\000\002\203\000\000\003P\000\000\000\000\003\182\000\000\000\000\003\235\000\139\000\153\000\000\000\000\000\148\003X\000\000\000\000\000\000\000\000\000\000\000\152\000\156\000\153\000\152\000\000\000\187\000\000\002\241\000\141\000\188\000\000\000\000\000\154\000\142\000\000\000\158\000\000\000\143\000\000\002\241\000\000\000\000\000\000\000\000\000\154\000\000\000\141\000\000\000\000\000\000\003\237\000\142\003_\000\000\000\141\000\143\000\000\000\186\002\204\000\000\000\153\000\000\002\205\000\000\000\000\000\152\000\141\000\000\003\239\000\186\000\000\000\142\000\000\000\000\000\000\000\143\000\000\002\241\000\000\000\000\000\156\000\000\000\154\000\152\000\187\000\000\000\000\000\000\000\188\000\000\000\000\000\000\000\156\000\000\000\158\000\000\000\187\000\000\000\153\000\000\000\188\000\153\000\000\000\152\000\000\000\000\000\158\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\185\000\000\000\154\000\000\000\000\000\154\000\000\000\000\000\000\000\000\000\000\000\139\000\156\000\139\000\000\000\148\000\187\000\148\000\000\000\000\000\188\000\000\000\000\000\000\000\000\000\153\000\158\000\186\000\000\000\000\000\186\000\139\000\139\000\000\000\000\000\148\000\148\000\000\000\000\002\218\000\000\000\000\000\185\000\153\000\000\000\000\000\000\000\154\000\000\000\000\000\156\002\219\000\000\000\156\000\187\004=\000\000\000\187\000\188\000\000\000\185\000\188\000\139\000\153\000\158\000\154\000\140\000\158\000\141\000\000\000\141\000\000\000\186\000\142\000\000\000\142\000\000\000\143\000\000\000\143\002\241\000\000\000\139\000\000\000\000\000\154\000\148\000\000\000\141\000\141\000\186\000\000\000\000\000\142\000\142\000\156\000\000\000\143\000\143\000\187\000\139\000\000\000\000\000\188\000\148\000\152\000\000\000\152\002\199\000\158\000\186\002\203\000\000\000\156\000\000\000\000\000\000\000\187\000\000\000\141\002\253\000\188\000\000\000\000\000\142\000\152\000\152\000\158\000\143\000\000\000\000\000\000\000\000\000\156\003\016\000\000\000\000\000\187\000\000\000\141\000\000\000\188\000\000\000\000\000\142\000\000\000\000\000\158\000\143\000\000\000\000\000\139\000\000\000\000\000\000\000\148\000\152\000\141\000\000\000\000\000\000\000\000\000\142\000\000\000\000\000\141\000\143\000\000\000\000\002\204\000\000\000\000\000\000\002\205\000\000\004F\000\152\004N\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\153\000\000\002\199\000\000\000\000\002\203\000\000\000\000\000\000\000\152\004\185\004\197\000\000\000\000\000\000\002\241\000\000\002\241\000\153\000\153\000\154\000\000\000\154\000\141\000\000\000\000\000\000\000\000\000\142\000\000\000\000\000\000\000\143\000\000\000\000\002\241\002\241\000\000\000\000\000\000\000\154\000\154\000\000\000\000\000\000\000\186\000\000\000\186\000\000\000\153\000\000\000\139\000\000\000\000\000\000\000\148\000\000\000\000\000\000\000\141\000\152\004\202\000\000\002\204\000\000\000\186\000\186\002\205\000\156\000\153\000\156\000\154\000\187\000\000\000\187\000\000\000\188\000\000\000\188\004\209\000\000\000\000\000\158\002\218\000\158\000\000\002\241\000\153\000\156\000\156\000\000\000\154\000\187\000\187\000\000\002\219\000\188\000\188\000\000\000\000\000\000\000\139\000\158\000\158\002\241\000\148\000\000\000\000\000\141\000\154\000\000\000\000\000\000\000\142\000\000\000\000\000\186\000\143\000\000\000\156\000\139\000\000\000\000\000\000\000\148\000\000\000\000\000\139\000\000\000\000\004\218\000\148\000\000\000\190\000\186\000\000\000\000\000\000\000\153\000\156\000\139\006g\000\000\000\187\000\148\000\152\002\199\000\188\000\000\002\203\000\000\000\000\000\000\000\158\006\199\002\241\000\000\000\156\000\141\000\000\000\154\000\187\002\218\000\142\002\253\000\188\000\000\000\143\000\000\000\139\000\000\000\158\000\000\000\148\002\219\000\000\000\000\000\141\003\018\000\000\000\000\000\000\000\142\000\000\000\141\000\186\000\143\000\000\000\000\000\142\000\000\000\000\000\000\000\143\000\000\000\152\000\000\000\141\000\000\000\000\000\000\000\000\000\142\000\141\000\000\000\000\000\143\002\204\000\156\000\139\000\000\002\205\000\187\000\148\000\152\004\240\000\188\000\000\000\000\000\000\000\000\000\152\000\158\000\153\000\000\000\000\000\141\000\000\000\000\000\000\000\000\000\142\000\000\000\000\000\152\000\143\000\000\003z\003{\000\000\002\241\000\000\000\000\002\253\000\000\000\154\000\000\000\000\000\000\000\000\000\000\000\139\000\000\000\000\000\000\000\148\000\000\003\020\000\000\000\000\000\000\000\000\000\000\000\152\000\000\004\245\000\141\000\000\000\000\000\000\000\186\000\142\000\000\000\153\000\000\000\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\252\000\000\000\000\000\000\000\000\000\000\002\241\000\000\000\153\000\156\000\141\000\154\003|\000\187\000\000\000\153\003}\000\188\000\000\000\152\000\000\000\000\002\218\000\158\000\141\002\241\000\000\000\000\000\153\000\142\000\154\000\000\006h\000\143\002\219\000\000\000\186\000\154\000\000\000\139\000\000\000\000\000\000\000\148\000\000\006h\000\000\000\000\000\000\000\000\000\154\000\000\000\000\000\000\000\139\000\186\000\000\000\153\000\148\000\156\000\000\000\152\000\186\000\187\000\000\000\000\000\000\000\188\000\000\000\000\000\000\000\000\000\139\000\158\001N\000\186\000\148\000\000\000\156\000\154\000\000\000\000\000\187\000\139\000\000\000\156\000\188\000\148\000\000\000\187\000\000\000\000\000\158\000\188\000\000\000\000\000\141\000\153\000\156\000\158\000\000\000\142\000\187\002\253\000\186\000\143\000\188\002\199\000\000\000\000\002\203\000\141\000\158\003\138\001t\000\000\000\142\003\022\000\000\000\154\000\143\000\000\000\139\000\000\000\000\003\139\000\148\000\156\000\000\000\141\000\000\000\187\000\000\000\152\000\142\000\188\000\000\000\000\000\143\000\153\000\141\000\158\000\000\000\000\000\186\000\142\000\000\000\000\000\152\000\143\000\000\000\000\000\000\000\000\000\000\000\000\001\141\000\000\000\139\000\000\000\000\000\154\000\148\000\000\000\141\000\139\000\152\000\156\002\204\000\148\000\000\000\187\002\205\000\000\000\000\000\188\000\000\000\152\000\000\000\141\000\000\000\158\000\000\000\000\000\142\000\000\000\186\000\000\000\143\000\000\000\000\000\000\003\155\000\000\000\139\000\000\000\000\000\000\000\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\000\156\000\000\000\153\000\000\000\187\000\000\000\141\000\152\000\188\000\000\000\000\000\142\000\000\000\141\000\158\000\143\000\000\000\153\000\142\001\190\000\000\000\000\000\143\000\000\000\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\160\000\153\000\000\000\000\000\000\000\154\000\000\000\000\000\141\000\152\000\000\000\000\000\153\000\142\000\000\000\186\000\152\000\143\002\164\000\000\000\000\000\000\000\000\000\154\002\218\000\000\000\000\000\000\000\000\002\212\000\186\000\000\000\000\000\000\000\154\000\000\002\219\000\000\000\156\000\000\000\000\000\000\000\187\000\000\000\000\000\152\000\188\000\000\000\186\000\000\000\000\000\153\000\158\000\156\000\000\000\000\000\139\000\187\000\139\000\186\000\148\000\188\000\148\000\000\000\000\000\000\000\000\000\158\002\227\000\000\000\000\000\156\000\000\000\154\000\000\000\187\000\000\000\000\000\000\000\188\000\000\000\000\000\156\000\000\000\000\000\158\000\187\000\153\000\000\000\000\000\188\000\000\000\000\000\000\000\153\000\000\000\158\000\139\000\186\000\000\000\000\000\148\000\000\000\000\002\229\002\253\000\000\000\000\000\000\000\154\000\000\003\132\000\000\000\141\000\000\000\141\000\154\000\000\000\142\003\024\000\142\000\156\000\143\000\153\000\143\000\187\000\000\000\000\000\000\000\188\000\000\000\000\000\000\000\139\000\186\000\158\000\000\000\148\000\000\000\000\003\197\000\186\000\000\002\199\000\000\000\154\002\203\000\000\000\000\000\000\000\152\000\000\000\152\000\000\000\141\000\000\000\000\000\156\000\000\000\142\000\000\000\187\000\000\000\143\000\156\000\188\000\000\000\000\000\187\000\139\000\186\000\158\000\188\000\148\000\000\000\000\000\139\000\000\000\158\000\000\000\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000\152\000\000\000\156\000\000\000\142\000\000\000\187\000\000\000\143\000\141\000\188\000\139\000\000\002\204\000\139\000\148\000\158\002\205\000\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000\152\000\153\000\000\000\153\000\142\000\000\000\141\000\000\000\143\000\000\000\000\000\142\000\000\000\000\000\000\000\143\000\000\000\000\003\202\000\000\003\206\000\000\000\000\000\154\000\000\000\154\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000\000\000\000\000\141\000\152\000\142\000\000\000\000\000\142\000\143\000\153\000\152\000\143\000\000\000\000\000\139\000\186\000\000\000\186\000\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\227\000\000\000\000\000\000\000\000\000\154\000\000\000\139\000\000\000\000\000\152\000\148\000\156\000\152\000\156\000\000\000\187\002\218\000\187\000\153\000\188\000\000\000\188\000\000\000\000\000\000\000\158\000\000\000\158\002\219\000\186\000\000\000\000\000\139\000\000\000\000\004\n\000\148\000\000\000\000\000\000\000\154\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\000\000\142\000\000\000\000\000\156\000\143\000\153\000\000\000\187\000\000\000\000\000\000\000\188\000\153\000\000\000\141\000\000\000\186\000\158\000\000\000\142\000\000\000\000\004\172\000\143\000\000\000\000\000\000\000\154\000\000\005\019\000\000\000\000\000\152\000\000\000\154\000\000\003z\003{\000\153\000\156\000\141\000\153\000\000\000\187\000\000\000\142\000\000\000\188\002\253\000\143\000\000\000\152\000\186\000\158\000\000\005'\000\000\000\000\005)\000\186\000\154\000\000\003\026\000\154\000\139\000\000\000\000\000\000\000\148\000\000\000\000\000\000\000\000\000\000\000\139\000\156\000\139\000\152\000\150\000\187\000\140\000\000\000\156\000\188\000\000\000\186\000\187\000\139\000\186\000\158\000\188\000\140\000\000\000\141\000\000\003|\000\158\003z\003{\003}\000\000\000\000\003z\003{\000\000\000\000\000\000\000\000\000\156\000\000\000\153\000\156\000\187\000\000\000\000\000\187\000\188\000\000\000\000\000\188\000\000\000\141\000\158\000\000\000\000\000\158\000\142\005+\000\000\000\153\000\143\000\141\000\154\000\141\000\000\000\000\000\142\000\000\000\142\000\000\000\143\000\000\000\143\000\000\000\141\000\000\0051\003z\003{\000\142\000\000\000\154\000\000\000\143\000\141\000\153\003|\000\186\000\152\000\141\003}\003|\000\000\003z\003{\003}\000\000\000\000\000\152\000\000\000\152\000\000\005?\000\000\000\000\000\000\000\186\000\154\000\000\000\000\000\156\000\152\000\000\000\000\000\187\000\000\003z\003{\000\188\000\000\000\000\000\000\000\000\000\000\000\158\000\000\003\138\003z\003{\000\156\000\000\000\000\000\186\000\187\000\141\000\000\003|\000\188\003\139\000\000\003}\000\000\000\000\000\158\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000\000\003|\003z\003{\000\156\003}\000\000\000\000\000\187\000\000\000\000\000\000\000\188\000\000\000\000\000\153\000\000\000\000\000\158\000\000\000\000\000\000\000\141\000\000\003|\000\153\000\000\000\153\003}\000\000\000\000\000\000\005M\000\141\000\000\003|\003\138\000\154\000\153\003}\000\000\003\138\000\000\000\000\000\000\000\000\000\000\000\154\003\139\000\154\000\000\000\000\000\000\003\139\003\155\000\000\000\000\000\000\000\000\000\141\000\154\003|\000\186\000\000\000\000\003}\000\000\000\000\003\172\000\000\000\000\000\000\000\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156\003\138\000\000\000\000\000\187\000\000\000\000\000\000\000\188\000\000\000\156\000\000\000\156\003\139\000\158\003\149\000\000\003\138\000\000\000\000\000\000\000\000\000\000\000\156\000\158\000\000\000\192\000\000\000\000\003\139\003\155\000\000\000\000\000\000\000\000\003\155\000\000\000\194\000\000\000\000\003\138\000\000\000\000\000\000\003\174\000\000\000\000\000\000\000\000\003\176\000\000\003\138\003\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\003\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\139\000\000\000\000\000\000\000\000\003\178\000\000\003\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\155\000\000\000\000\003\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\190")) let semantic_action = [| @@ -1519,9 +1608,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1752 "parser_cocci_menhir.mly" +# 1932 "parser_cocci_menhir.mly" ( Ast0.set_arg_exp _1 ) -# 1525 "parser_cocci_menhir.ml" +# 1614 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1540,22 +1629,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 66 "parser_cocci_menhir.mly" +# 45 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 1546 "parser_cocci_menhir.ml" +# 1635 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1754 "parser_cocci_menhir.mly" +# 1934 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = match lenname with - Some nm -> Some(P.clt2mcode nm clt) - | None -> None in + Ast.AnyLen -> Ast0.AnyListLen + | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt) + | Ast.CstLen n -> Ast0.CstListLen n in Ast0.wrap(Ast0.MetaExprList(nm,lenname,pure)) ) -# 1559 "parser_cocci_menhir.ml" +# 1649 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1577,9 +1667,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1762 "parser_cocci_menhir.mly" +# 1943 "parser_cocci_menhir.mly" ( Ast0.set_arg_exp(Ast0.wrap(Ast0.TypeExp(_1))) ) -# 1583 "parser_cocci_menhir.ml" +# 1673 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1599,9 +1689,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 1806 "parser_cocci_menhir.mly" +# 1987 "parser_cocci_menhir.mly" ( Ast.WhenAny ) -# 1605 "parser_cocci_menhir.ml" +# 1695 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1621,9 +1711,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 1807 "parser_cocci_menhir.mly" +# 1988 "parser_cocci_menhir.mly" ( Ast.WhenStrict ) -# 1627 "parser_cocci_menhir.ml" +# 1717 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1643,9 +1733,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 1808 "parser_cocci_menhir.mly" +# 1989 "parser_cocci_menhir.mly" ( Ast.WhenForall ) -# 1649 "parser_cocci_menhir.ml" +# 1739 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1665,9 +1755,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 1809 "parser_cocci_menhir.mly" +# 1990 "parser_cocci_menhir.mly" ( Ast.WhenExists ) -# 1671 "parser_cocci_menhir.ml" +# 1761 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1689,9 +1779,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1253 "parser_cocci_menhir.mly" +# 1290 "parser_cocci_menhir.mly" ( _1 ) -# 1695 "parser_cocci_menhir.ml" +# 1785 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1721,17 +1811,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 1727 "parser_cocci_menhir.ml" +# 1817 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1255 "parser_cocci_menhir.mly" +# 1292 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) -# 1735 "parser_cocci_menhir.ml" +# 1825 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1761,17 +1851,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 97 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 1767 "parser_cocci_menhir.ml" +# 1857 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1257 "parser_cocci_menhir.mly" +# 1294 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 1775 "parser_cocci_menhir.ml" +# 1865 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1801,17 +1891,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 1807 "parser_cocci_menhir.ml" +# 1897 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1259 "parser_cocci_menhir.mly" +# 1296 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) -# 1815 "parser_cocci_menhir.ml" +# 1905 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1841,17 +1931,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 1847 "parser_cocci_menhir.ml" +# 1937 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1261 "parser_cocci_menhir.mly" +# 1298 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) -# 1855 "parser_cocci_menhir.ml" +# 1945 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1881,17 +1971,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 96 "parser_cocci_menhir.mly" +# 75 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 1887 "parser_cocci_menhir.ml" +# 1977 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1263 "parser_cocci_menhir.mly" +# 1300 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 1895 "parser_cocci_menhir.ml" +# 1985 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1921,17 +2011,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 95 "parser_cocci_menhir.mly" - (Ast_cocci.logicalOp * Data.clt) -# 1927 "parser_cocci_menhir.ml" +# 75 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 2017 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1265 "parser_cocci_menhir.mly" - ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 1935 "parser_cocci_menhir.ml" +# 1302 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 2025 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -1961,17 +2051,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 94 "parser_cocci_menhir.mly" - (Data.clt) -# 1967 "parser_cocci_menhir.ml" +# 74 "parser_cocci_menhir.mly" + (Ast_cocci.logicalOp * Data.clt) +# 2057 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1267 "parser_cocci_menhir.mly" - ( P.logic_op Ast.Eq _1 _2 _3 ) -# 1975 "parser_cocci_menhir.ml" +# 1304 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) +# 2065 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2001,17 +2091,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 2007 "parser_cocci_menhir.ml" +# 2097 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1269 "parser_cocci_menhir.mly" - ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 2015 "parser_cocci_menhir.ml" +# 1306 "parser_cocci_menhir.mly" + ( P.logic_op Ast.Eq _1 _2 _3 ) +# 2105 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2041,17 +2131,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 93 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 2047 "parser_cocci_menhir.ml" +# 2137 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1271 "parser_cocci_menhir.mly" - ( P.arith_op Ast.And _1 _2 _3 ) -# 2055 "parser_cocci_menhir.ml" +# 1308 "parser_cocci_menhir.mly" + ( P.logic_op Ast.NotEq _1 _2 _3 ) +# 2145 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2081,17 +2171,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 91 "parser_cocci_menhir.mly" +# 72 "parser_cocci_menhir.mly" (Data.clt) -# 2087 "parser_cocci_menhir.ml" +# 2177 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1273 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Or _1 _2 _3 ) -# 2095 "parser_cocci_menhir.ml" +# 1310 "parser_cocci_menhir.mly" + ( P.arith_op Ast.And _1 _2 _3 ) +# 2185 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2121,17 +2211,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 92 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Data.clt) -# 2127 "parser_cocci_menhir.ml" +# 2217 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1275 "parser_cocci_menhir.mly" - ( P.arith_op Ast.Xor _1 _2 _3 ) -# 2135 "parser_cocci_menhir.ml" +# 1312 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Or _1 _2 _3 ) +# 2225 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2161,17 +2251,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 90 "parser_cocci_menhir.mly" +# 71 "parser_cocci_menhir.mly" (Data.clt) -# 2167 "parser_cocci_menhir.ml" +# 2257 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1277 "parser_cocci_menhir.mly" - ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 2175 "parser_cocci_menhir.ml" +# 1314 "parser_cocci_menhir.mly" + ( P.arith_op Ast.Xor _1 _2 _3 ) +# 2265 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2201,17 +2291,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 89 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Data.clt) -# 2207 "parser_cocci_menhir.ml" +# 2297 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1279 "parser_cocci_menhir.mly" - ( P.logic_op Ast.OrLog _1 _2 _3 ) -# 2215 "parser_cocci_menhir.ml" +# 1316 "parser_cocci_menhir.mly" + ( P.logic_op Ast.AndLog _1 _2 _3 ) +# 2305 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2223,8 +2313,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in + let _2 : ( +# 68 "parser_cocci_menhir.mly" + (Data.clt) +# 2337 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_eexpr_dot_expressions_ = +# 1318 "parser_cocci_menhir.mly" + ( P.logic_op Ast.OrLog _1 _2 _3 ) +# 2345 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; @@ -2233,9 +2363,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1253 "parser_cocci_menhir.mly" +# 1290 "parser_cocci_menhir.mly" ( _1 ) -# 2239 "parser_cocci_menhir.ml" +# 2369 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2265,17 +2395,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 2271 "parser_cocci_menhir.ml" +# 2401 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1255 "parser_cocci_menhir.mly" +# 1292 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) -# 2279 "parser_cocci_menhir.ml" +# 2409 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2305,17 +2435,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 97 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2311 "parser_cocci_menhir.ml" +# 2441 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1257 "parser_cocci_menhir.mly" +# 1294 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2319 "parser_cocci_menhir.ml" +# 2449 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2345,17 +2475,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 2351 "parser_cocci_menhir.ml" +# 2481 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1259 "parser_cocci_menhir.mly" +# 1296 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) -# 2359 "parser_cocci_menhir.ml" +# 2489 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2385,17 +2515,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 2391 "parser_cocci_menhir.ml" +# 2521 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1261 "parser_cocci_menhir.mly" +# 1298 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) -# 2399 "parser_cocci_menhir.ml" +# 2529 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in + let _2 : ( +# 75 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 2561 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_eexpr_invalid_ = +# 1300 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 2569 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2425,17 +2595,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 96 "parser_cocci_menhir.mly" +# 75 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2431 "parser_cocci_menhir.ml" +# 2601 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1263 "parser_cocci_menhir.mly" +# 1302 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2439 "parser_cocci_menhir.ml" +# 2609 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2465,17 +2635,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 95 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) -# 2471 "parser_cocci_menhir.ml" +# 2641 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1265 "parser_cocci_menhir.mly" +# 1304 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 2479 "parser_cocci_menhir.ml" +# 2649 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2505,17 +2675,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 2511 "parser_cocci_menhir.ml" +# 2681 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1267 "parser_cocci_menhir.mly" +# 1306 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) -# 2519 "parser_cocci_menhir.ml" +# 2689 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2545,17 +2715,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 2551 "parser_cocci_menhir.ml" +# 2721 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1269 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 2559 "parser_cocci_menhir.ml" +# 2729 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2585,17 +2755,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 93 "parser_cocci_menhir.mly" +# 72 "parser_cocci_menhir.mly" (Data.clt) -# 2591 "parser_cocci_menhir.ml" +# 2761 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1271 "parser_cocci_menhir.mly" +# 1310 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) -# 2599 "parser_cocci_menhir.ml" +# 2769 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2625,17 +2795,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 91 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Data.clt) -# 2631 "parser_cocci_menhir.ml" +# 2801 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1273 "parser_cocci_menhir.mly" +# 1312 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) -# 2639 "parser_cocci_menhir.ml" +# 2809 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2665,17 +2835,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 92 "parser_cocci_menhir.mly" +# 71 "parser_cocci_menhir.mly" (Data.clt) -# 2671 "parser_cocci_menhir.ml" +# 2841 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1275 "parser_cocci_menhir.mly" +# 1314 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) -# 2679 "parser_cocci_menhir.ml" +# 2849 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2705,17 +2875,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 90 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Data.clt) -# 2711 "parser_cocci_menhir.ml" +# 2881 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1277 "parser_cocci_menhir.mly" +# 1316 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 2719 "parser_cocci_menhir.ml" +# 2889 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2745,17 +2915,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 89 "parser_cocci_menhir.mly" +# 68 "parser_cocci_menhir.mly" (Data.clt) -# 2751 "parser_cocci_menhir.ml" +# 2921 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1279 "parser_cocci_menhir.mly" +# 1318 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) -# 2759 "parser_cocci_menhir.ml" +# 2929 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2777,9 +2947,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1253 "parser_cocci_menhir.mly" +# 1290 "parser_cocci_menhir.mly" ( _1 ) -# 2783 "parser_cocci_menhir.ml" +# 2953 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2809,17 +2979,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 2815 "parser_cocci_menhir.ml" +# 2985 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1255 "parser_cocci_menhir.mly" +# 1292 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) -# 2823 "parser_cocci_menhir.ml" +# 2993 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2849,17 +3019,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 97 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2855 "parser_cocci_menhir.ml" +# 3025 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1257 "parser_cocci_menhir.mly" +# 1294 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2863 "parser_cocci_menhir.ml" +# 3033 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2889,17 +3059,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 2895 "parser_cocci_menhir.ml" +# 3065 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1259 "parser_cocci_menhir.mly" +# 1296 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) -# 2903 "parser_cocci_menhir.ml" +# 3073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2929,17 +3099,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 2935 "parser_cocci_menhir.ml" +# 3105 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1261 "parser_cocci_menhir.mly" +# 1298 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) -# 2943 "parser_cocci_menhir.ml" +# 3113 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in + let _2 : ( +# 75 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 3145 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_eexpr_nest_expressions_ = +# 1300 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 3153 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -2969,17 +3179,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 96 "parser_cocci_menhir.mly" +# 75 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 2975 "parser_cocci_menhir.ml" +# 3185 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1263 "parser_cocci_menhir.mly" +# 1302 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 2983 "parser_cocci_menhir.ml" +# 3193 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3009,17 +3219,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 95 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) -# 3015 "parser_cocci_menhir.ml" +# 3225 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1265 "parser_cocci_menhir.mly" +# 1304 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 3023 "parser_cocci_menhir.ml" +# 3233 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3049,17 +3259,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 3055 "parser_cocci_menhir.ml" +# 3265 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1267 "parser_cocci_menhir.mly" +# 1306 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) -# 3063 "parser_cocci_menhir.ml" +# 3273 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3089,17 +3299,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 3095 "parser_cocci_menhir.ml" +# 3305 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1269 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 3103 "parser_cocci_menhir.ml" +# 3313 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3129,17 +3339,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 93 "parser_cocci_menhir.mly" +# 72 "parser_cocci_menhir.mly" (Data.clt) -# 3135 "parser_cocci_menhir.ml" +# 3345 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1271 "parser_cocci_menhir.mly" +# 1310 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) -# 3143 "parser_cocci_menhir.ml" +# 3353 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3169,17 +3379,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 91 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Data.clt) -# 3175 "parser_cocci_menhir.ml" +# 3385 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1273 "parser_cocci_menhir.mly" +# 1312 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) -# 3183 "parser_cocci_menhir.ml" +# 3393 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3209,17 +3419,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 92 "parser_cocci_menhir.mly" +# 71 "parser_cocci_menhir.mly" (Data.clt) -# 3215 "parser_cocci_menhir.ml" +# 3425 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1275 "parser_cocci_menhir.mly" +# 1314 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) -# 3223 "parser_cocci_menhir.ml" +# 3433 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3249,17 +3459,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 90 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Data.clt) -# 3255 "parser_cocci_menhir.ml" +# 3465 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1277 "parser_cocci_menhir.mly" +# 1316 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 3263 "parser_cocci_menhir.ml" +# 3473 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3289,17 +3499,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 89 "parser_cocci_menhir.mly" +# 68 "parser_cocci_menhir.mly" (Data.clt) -# 3295 "parser_cocci_menhir.ml" +# 3505 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1279 "parser_cocci_menhir.mly" +# 1318 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) -# 3303 "parser_cocci_menhir.ml" +# 3513 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3321,9 +3531,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1253 "parser_cocci_menhir.mly" +# 1290 "parser_cocci_menhir.mly" ( _1 ) -# 3327 "parser_cocci_menhir.ml" +# 3537 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3353,17 +3563,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 3359 "parser_cocci_menhir.ml" +# 3569 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1255 "parser_cocci_menhir.mly" +# 1292 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) -# 3367 "parser_cocci_menhir.ml" +# 3577 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3393,17 +3603,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 97 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 3399 "parser_cocci_menhir.ml" +# 3609 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1257 "parser_cocci_menhir.mly" +# 1294 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 3407 "parser_cocci_menhir.ml" +# 3617 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3433,17 +3643,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 3439 "parser_cocci_menhir.ml" +# 3649 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1259 "parser_cocci_menhir.mly" +# 1296 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) -# 3447 "parser_cocci_menhir.ml" +# 3657 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3473,17 +3683,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 3479 "parser_cocci_menhir.ml" +# 3689 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1261 "parser_cocci_menhir.mly" +# 1298 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) -# 3487 "parser_cocci_menhir.ml" +# 3697 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in + let _2 : ( +# 75 "parser_cocci_menhir.mly" + (Ast_cocci.arithOp * Data.clt) +# 3729 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_arith_expr_expr_invalid_ = +# 1300 "parser_cocci_menhir.mly" + ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) +# 3737 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3513,17 +3763,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 96 "parser_cocci_menhir.mly" +# 75 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) -# 3519 "parser_cocci_menhir.ml" +# 3769 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1263 "parser_cocci_menhir.mly" +# 1302 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) -# 3527 "parser_cocci_menhir.ml" +# 3777 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3553,17 +3803,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 95 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) -# 3559 "parser_cocci_menhir.ml" +# 3809 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1265 "parser_cocci_menhir.mly" +# 1304 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) -# 3567 "parser_cocci_menhir.ml" +# 3817 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3593,17 +3843,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 3599 "parser_cocci_menhir.ml" +# 3849 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1267 "parser_cocci_menhir.mly" +# 1306 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) -# 3607 "parser_cocci_menhir.ml" +# 3857 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3633,17 +3883,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 94 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) -# 3639 "parser_cocci_menhir.ml" +# 3889 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1269 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) -# 3647 "parser_cocci_menhir.ml" +# 3897 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3673,17 +3923,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 93 "parser_cocci_menhir.mly" +# 72 "parser_cocci_menhir.mly" (Data.clt) -# 3679 "parser_cocci_menhir.ml" +# 3929 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1271 "parser_cocci_menhir.mly" +# 1310 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) -# 3687 "parser_cocci_menhir.ml" +# 3937 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3713,17 +3963,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 91 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Data.clt) -# 3719 "parser_cocci_menhir.ml" +# 3969 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1273 "parser_cocci_menhir.mly" +# 1312 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) -# 3727 "parser_cocci_menhir.ml" +# 3977 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3753,17 +4003,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 92 "parser_cocci_menhir.mly" +# 71 "parser_cocci_menhir.mly" (Data.clt) -# 3759 "parser_cocci_menhir.ml" +# 4009 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1275 "parser_cocci_menhir.mly" +# 1314 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) -# 3767 "parser_cocci_menhir.ml" +# 4017 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3793,17 +4043,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 90 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Data.clt) -# 3799 "parser_cocci_menhir.ml" +# 4049 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1277 "parser_cocci_menhir.mly" +# 1316 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) -# 3807 "parser_cocci_menhir.ml" +# 4057 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3833,17 +4083,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 89 "parser_cocci_menhir.mly" +# 68 "parser_cocci_menhir.mly" (Data.clt) -# 3839 "parser_cocci_menhir.ml" +# 4089 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1279 "parser_cocci_menhir.mly" +# 1318 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) -# 3847 "parser_cocci_menhir.ml" +# 4097 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3863,9 +4113,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 450 "parser_cocci_menhir.mly" +# 489 "parser_cocci_menhir.mly" ( Ast.UNIQUE ) -# 3869 "parser_cocci_menhir.ml" +# 4119 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3885,9 +4135,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 451 "parser_cocci_menhir.mly" +# 490 "parser_cocci_menhir.mly" ( Ast.OPT ) -# 3891 "parser_cocci_menhir.ml" +# 4141 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3907,9 +4157,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 452 "parser_cocci_menhir.mly" +# 491 "parser_cocci_menhir.mly" ( Ast.MULTI ) -# 3913 "parser_cocci_menhir.ml" +# 4163 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3924,9 +4174,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_arity = -# 453 "parser_cocci_menhir.mly" +# 492 "parser_cocci_menhir.mly" ( Ast.NONE ) -# 3930 "parser_cocci_menhir.ml" +# 4180 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3955,22 +4205,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let r : ( -# 102 "parser_cocci_menhir.mly" +# 81 "parser_cocci_menhir.mly" (Data.clt) -# 3961 "parser_cocci_menhir.ml" +# 4211 "parser_cocci_menhir.ml" ) = Obj.magic r in let i : 'tv_option_eexpr_ = Obj.magic i in let l : ( -# 102 "parser_cocci_menhir.mly" +# 81 "parser_cocci_menhir.mly" (Data.clt) -# 3967 "parser_cocci_menhir.ml" +# 4217 "parser_cocci_menhir.ml" ) = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_array_dec = -# 1060 "parser_cocci_menhir.mly" +# 1093 "parser_cocci_menhir.mly" ( (l,i,r) ) -# 3974 "parser_cocci_menhir.ml" +# 4224 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -3992,9 +4242,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1225 "parser_cocci_menhir.mly" +# 1262 "parser_cocci_menhir.mly" ( _1 ) -# 3998 "parser_cocci_menhir.ml" +# 4248 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4024,19 +4274,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 4030 "parser_cocci_menhir.ml" +# 4280 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1227 "parser_cocci_menhir.mly" +# 1264 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) -# 4040 "parser_cocci_menhir.ml" +# 4290 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4066,19 +4316,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 4072 "parser_cocci_menhir.ml" +# 4322 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1231 "parser_cocci_menhir.mly" +# 1268 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) -# 4082 "parser_cocci_menhir.ml" +# 4332 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4100,9 +4350,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1225 "parser_cocci_menhir.mly" +# 1262 "parser_cocci_menhir.mly" ( _1 ) -# 4106 "parser_cocci_menhir.ml" +# 4356 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4132,19 +4382,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 4138 "parser_cocci_menhir.ml" +# 4388 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1227 "parser_cocci_menhir.mly" +# 1264 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) -# 4148 "parser_cocci_menhir.ml" +# 4398 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4174,19 +4424,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 4180 "parser_cocci_menhir.ml" +# 4430 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1231 "parser_cocci_menhir.mly" +# 1268 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) -# 4190 "parser_cocci_menhir.ml" +# 4440 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4208,9 +4458,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1225 "parser_cocci_menhir.mly" +# 1262 "parser_cocci_menhir.mly" ( _1 ) -# 4214 "parser_cocci_menhir.ml" +# 4464 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4240,19 +4490,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 4246 "parser_cocci_menhir.ml" +# 4496 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1227 "parser_cocci_menhir.mly" +# 1264 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) -# 4256 "parser_cocci_menhir.ml" +# 4506 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4282,19 +4532,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 4288 "parser_cocci_menhir.ml" +# 4538 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1231 "parser_cocci_menhir.mly" +# 1268 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) -# 4298 "parser_cocci_menhir.ml" +# 4548 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4316,9 +4566,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_bis = -# 1236 "parser_cocci_menhir.mly" +# 1273 "parser_cocci_menhir.mly" ( _1 ) -# 4322 "parser_cocci_menhir.ml" +# 4572 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4348,19 +4598,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) -# 4354 "parser_cocci_menhir.ml" +# 4604 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_bis = -# 1238 "parser_cocci_menhir.mly" +# 1275 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) -# 4364 "parser_cocci_menhir.ml" +# 4614 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4390,19 +4640,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 4396 "parser_cocci_menhir.ml" +# 4646 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_bis = -# 1242 "parser_cocci_menhir.mly" +# 1279 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) -# 4406 "parser_cocci_menhir.ml" +# 4656 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4424,9 +4674,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_eexpr_dot_expressions_ = -# 1222 "parser_cocci_menhir.mly" +# 1259 "parser_cocci_menhir.mly" ( _1 ) -# 4430 "parser_cocci_menhir.ml" +# 4680 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4448,9 +4698,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_eexpr_nest_expressions_ = -# 1222 "parser_cocci_menhir.mly" +# 1259 "parser_cocci_menhir.mly" ( _1 ) -# 4454 "parser_cocci_menhir.ml" +# 4704 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4472,9 +4722,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_expr_invalid_ = -# 1222 "parser_cocci_menhir.mly" +# 1259 "parser_cocci_menhir.mly" ( _1 ) -# 4478 "parser_cocci_menhir.ml" +# 4728 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4504,21 +4754,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_fun_start = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 4510 "parser_cocci_menhir.ml" +# 4760 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 4515 "parser_cocci_menhir.ml" +# 4765 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_case_line = -# 932 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) ) -# 4522 "parser_cocci_menhir.ml" +# 955 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) ) +# 4773 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4553,22 +4804,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _4 : 'tv_fun_start = Obj.magic _4 in let _3 : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 4559 "parser_cocci_menhir.ml" +# 4810 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 57 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 4565 "parser_cocci_menhir.ml" +# 4816 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_case_line = -# 934 "parser_cocci_menhir.mly" +# 958 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Case(P.clt2mcode "case" _1,_2,P.clt2mcode ":" _3,_4)) ) -# 4572 "parser_cocci_menhir.ml" +# 4823 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4590,9 +4841,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_dot_expressions_ = -# 1282 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( _1 ) -# 4596 "parser_cocci_menhir.ml" +# 4847 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4627,23 +4878,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic e in let rp : ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 4633 "parser_cocci_menhir.ml" +# 4884 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 4639 "parser_cocci_menhir.ml" +# 4890 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_dot_expressions_ = -# 1284 "parser_cocci_menhir.mly" +# 1323 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) -# 4647 "parser_cocci_menhir.ml" +# 4898 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4665,9 +4916,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_invalid_ = -# 1282 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( _1 ) -# 4671 "parser_cocci_menhir.ml" +# 4922 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4702,23 +4953,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_invalid_ = Obj.magic e in let rp : ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 4708 "parser_cocci_menhir.ml" +# 4959 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 4714 "parser_cocci_menhir.ml" +# 4965 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_invalid_ = -# 1284 "parser_cocci_menhir.mly" +# 1323 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) -# 4722 "parser_cocci_menhir.ml" +# 4973 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4740,9 +4991,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_nest_expressions_ = -# 1282 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( _1 ) -# 4746 "parser_cocci_menhir.ml" +# 4997 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4777,23 +5028,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic e in let rp : ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 4783 "parser_cocci_menhir.ml" +# 5034 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 4789 "parser_cocci_menhir.ml" +# 5040 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_nest_expressions_ = -# 1284 "parser_cocci_menhir.mly" +# 1323 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) -# 4797 "parser_cocci_menhir.ml" +# 5048 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4815,9 +5066,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_expr_invalid_ = -# 1282 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( _1 ) -# 4821 "parser_cocci_menhir.ml" +# 5072 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4852,23 +5103,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_expr_invalid_ = Obj.magic e in let rp : ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 4858 "parser_cocci_menhir.ml" +# 5109 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 4864 "parser_cocci_menhir.ml" +# 5115 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_expr_invalid_ = -# 1284 "parser_cocci_menhir.mly" +# 1323 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) -# 4872 "parser_cocci_menhir.ml" +# 5123 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4894,9 +5145,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_choose_iso = -# 233 "parser_cocci_menhir.mly" +# 218 "parser_cocci_menhir.mly" ( List.map P.id2name _2 ) -# 4900 "parser_cocci_menhir.ml" +# 5151 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4920,23 +5171,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 73 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 4926 "parser_cocci_menhir.ml" +# 5177 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 4931 "parser_cocci_menhir.ml" +# 5182 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_decl_ = -# 1553 "parser_cocci_menhir.mly" +# 1727 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); dot_builder _2] ) -# 4940 "parser_cocci_menhir.ml" +# 5191 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4961,17 +5212,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_one_dec_decl_ = Obj.magic _2 in let _1 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 4967 "parser_cocci_menhir.ml" +# 5218 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_decl_ = -# 1557 "parser_cocci_menhir.mly" +# 1731 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); _2] ) -# 4975 "parser_cocci_menhir.ml" +# 5226 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -4995,23 +5246,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 73 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 5001 "parser_cocci_menhir.ml" +# 5252 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 5006 "parser_cocci_menhir.ml" +# 5257 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_name_opt_decl_ = -# 1553 "parser_cocci_menhir.mly" +# 1727 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); dot_builder _2] ) -# 5015 "parser_cocci_menhir.ml" +# 5266 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5036,17 +5287,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_one_dec_name_opt_decl_ = Obj.magic _2 in let _1 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 5042 "parser_cocci_menhir.ml" +# 5293 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_name_opt_decl_ = -# 1557 "parser_cocci_menhir.mly" +# 1731 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); _2] ) -# 5050 "parser_cocci_menhir.ml" +# 5301 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5061,9 +5312,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1113 "parser_cocci_menhir.mly" +# 1148 "parser_cocci_menhir.mly" ( [] ) -# 5067 "parser_cocci_menhir.ml" +# 5318 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5091,9 +5342,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1115 "parser_cocci_menhir.mly" +# 1150 "parser_cocci_menhir.mly" ( (function dot_builder -> [dot_builder d])::r ) -# 5097 "parser_cocci_menhir.ml" +# 5348 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in + let _startpos = _startpos__1_ in + let _endpos = _endpos_r_ in + let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = +# 1151 "parser_cocci_menhir.mly" + ( r ) +# 5376 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5123,18 +5402,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in let c : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 5129 "parser_cocci_menhir.ml" +# 5408 "parser_cocci_menhir.ml" ) = Obj.magic c in let i : 'tv_initialize2 = Obj.magic i in let _startpos = _startpos_i_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1117 "parser_cocci_menhir.mly" +# 1153 "parser_cocci_menhir.mly" ( (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))]):: r ) -# 5138 "parser_cocci_menhir.ml" +# 5417 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5149,9 +5428,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = -# 1121 "parser_cocci_menhir.mly" +# 1157 "parser_cocci_menhir.mly" ( [] ) -# 5155 "parser_cocci_menhir.ml" +# 5434 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in + let _startpos = _startpos__1_ in + let _endpos = _endpos_r_ in + let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = +# 1158 "parser_cocci_menhir.mly" + ( r ) +# 5462 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5181,18 +5488,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in let c : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 5187 "parser_cocci_menhir.ml" +# 5494 "parser_cocci_menhir.ml" ) = Obj.magic c in let i : 'tv_initialize2 = Obj.magic i in let _startpos = _startpos_i_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = -# 1123 "parser_cocci_menhir.mly" +# 1160 "parser_cocci_menhir.mly" ( (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))]):: r ) -# 5196 "parser_cocci_menhir.ml" +# 5503 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5214,9 +5521,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_any_strict_ = -# 1784 "parser_cocci_menhir.mly" +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5220 "parser_cocci_menhir.ml" +# 5527 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5238,9 +5545,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_ctype_ = -# 1784 "parser_cocci_menhir.mly" +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5244 "parser_cocci_menhir.ml" +# 5551 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5262,9 +5569,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_d_ident_ = -# 1784 "parser_cocci_menhir.mly" +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5268 "parser_cocci_menhir.ml" +# 5575 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5282,13 +5589,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_dexpr_ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_ident_or_const_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_dexpr_ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_ident_or_const_ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5292 "parser_cocci_menhir.ml" +# 5599 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5306,13 +5613,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_ident_or_const_ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_meta_ident_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_ident_or_const_ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_meta_ident_ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5316 "parser_cocci_menhir.ml" +# 5623 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5330,13 +5637,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_meta_ident_ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_meta_ident_ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_pure_ident_ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5340 "parser_cocci_menhir.ml" +# 5647 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5354,13 +5661,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_pure_ident_ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_pure_ident_or_meta_ident_ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5364 "parser_cocci_menhir.ml" +# 5671 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5378,13 +5685,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_pure_ident_or_meta_ident_ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5388 "parser_cocci_menhir.ml" +# 5695 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5402,13 +5709,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5412 "parser_cocci_menhir.ml" +# 5719 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5426,13 +5733,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5436 "parser_cocci_menhir.ml" +# 5743 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5450,13 +5757,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5460 "parser_cocci_menhir.ml" +# 5767 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5474,13 +5781,61 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_pos__ = Obj.magic _1 in + let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_pos__ = -# 1784 "parser_cocci_menhir.mly" + let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_seed_ = +# 1965 "parser_cocci_menhir.mly" + ( _1 ) +# 5791 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_x_eq_not_pos__ = +# 1965 "parser_cocci_menhir.mly" + ( _1 ) +# 5815 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_separated_nonempty_list_TComma_typedef_ident_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_comma_list_typedef_ident_ = +# 1965 "parser_cocci_menhir.mly" ( _1 ) -# 5484 "parser_cocci_menhir.ml" +# 5839 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5502,9 +5857,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_eexpr_dot_expressions_ = -# 1247 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( _1 ) -# 5508 "parser_cocci_menhir.ml" +# 5863 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5544,24 +5899,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_eexpr_dot_expressions_ = Obj.magic r in let dd : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 5550 "parser_cocci_menhir.ml" +# 5905 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 5556 "parser_cocci_menhir.ml" +# 5911 "parser_cocci_menhir.ml" ) = Obj.magic w in let l : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_eexpr_dot_expressions_ = -# 1249 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 5565 "parser_cocci_menhir.ml" +# 5920 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5583,9 +5938,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_eexpr_nest_expressions_ = -# 1247 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( _1 ) -# 5589 "parser_cocci_menhir.ml" +# 5944 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5625,24 +5980,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_eexpr_nest_expressions_ = Obj.magic r in let dd : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 5631 "parser_cocci_menhir.ml" +# 5986 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 5637 "parser_cocci_menhir.ml" +# 5992 "parser_cocci_menhir.ml" ) = Obj.magic w in let l : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_eexpr_nest_expressions_ = -# 1249 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 5646 "parser_cocci_menhir.ml" +# 6001 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5664,9 +6019,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_expr_invalid_ = -# 1247 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( _1 ) -# 5670 "parser_cocci_menhir.ml" +# 6025 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5706,24 +6061,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_expr_invalid_ = Obj.magic r in let dd : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 5712 "parser_cocci_menhir.ml" +# 6067 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 5718 "parser_cocci_menhir.ml" +# 6073 "parser_cocci_menhir.ml" ) = Obj.magic w in let l : 'tv_arith_expr_expr_invalid_ = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_expr_invalid_ = -# 1249 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 5727 "parser_cocci_menhir.ml" +# 6082 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5742,16 +6097,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 32 "parser_cocci_menhir.mly" (Data.clt) -# 5748 "parser_cocci_menhir.ml" +# 6103 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_const_vol = -# 841 "parser_cocci_menhir.mly" +# 864 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Const _1 ) -# 5755 "parser_cocci_menhir.ml" +# 6110 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5770,16 +6125,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 32 "parser_cocci_menhir.mly" (Data.clt) -# 5776 "parser_cocci_menhir.ml" +# 6131 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_const_vol = -# 842 "parser_cocci_menhir.mly" +# 865 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Volatile _1 ) -# 5783 "parser_cocci_menhir.ml" +# 6138 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5794,9 +6149,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_continue_struct_decl_list = -# 540 "parser_cocci_menhir.mly" +# 614 "parser_cocci_menhir.mly" ( [] ) -# 5800 "parser_cocci_menhir.ml" +# 6155 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5824,9 +6179,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_struct_decl_list = -# 541 "parser_cocci_menhir.mly" +# 615 "parser_cocci_menhir.mly" ( _1@_2 ) -# 5830 "parser_cocci_menhir.ml" +# 6185 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5848,9 +6203,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_struct_decl_list = -# 542 "parser_cocci_menhir.mly" +# 616 "parser_cocci_menhir.mly" ( _1 ) -# 5854 "parser_cocci_menhir.ml" +# 6209 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5866,28 +6221,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_m_; MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in - let ty : 'tv_generic_ctype = Obj.magic ty in - let _startpos = _startpos_ty_ in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 6241 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6246 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in - let _v : 'tv_ctype = let cv = + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 6258 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 6264 "parser_cocci_menhir.ml" + + in + let cv = # 39 "standard.mly" ( None ) -# 5885 "parser_cocci_menhir.ml" +# 6271 "parser_cocci_menhir.ml" in -# 546 "parser_cocci_menhir.mly" - ( P.pointerify (P.make_cv cv ty) m ) -# 5891 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6277 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5903,35 +6289,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_m_; MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in - let ty : 'tv_generic_ctype = Obj.magic ty in - let x0 : 'tv_const_vol = Obj.magic x0 in - let _startpos = _startpos_x0_ in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 6309 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6314 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in - let _v : 'tv_ctype = let cv = - let x = x0 in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 6326 "parser_cocci_menhir.ml" + + in -# 41 "standard.mly" - ( Some x ) -# 5929 "parser_cocci_menhir.ml" +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 6332 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 6339 "parser_cocci_menhir.ml" in -# 546 "parser_cocci_menhir.mly" - ( P.pointerify (P.make_cv cv ty) m ) -# 5935 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6345 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5947,34 +6357,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_m_; MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let m : 'tv_nonempty_list_TMul_ = Obj.magic m in - let t : ( -# 50 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 5962 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let _startpos = _startpos_t_ in +# 6377 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6382 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in - let _v : 'tv_ctype = let cv = + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 6394 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 6400 "parser_cocci_menhir.ml" + + in + let cv = # 39 "standard.mly" ( None ) -# 5970 "parser_cocci_menhir.ml" +# 6407 "parser_cocci_menhir.ml" in -# 548 "parser_cocci_menhir.mly" - ( let ty = - Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in - P.pointerify (P.make_cv cv ty) m ) -# 5978 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6413 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5990,41 +6425,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_m_; MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let m : 'tv_nonempty_list_TMul_ = Obj.magic m in - let t : ( -# 50 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 6445 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" (Data.clt) -# 6010 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let x0 : 'tv_const_vol = Obj.magic x0 in - let _startpos = _startpos_x0_ in +# 6450 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in - let _v : 'tv_ctype = let cv = - let x = x0 in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r = r0 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 6463 "parser_cocci_menhir.ml" + + in -# 41 "standard.mly" - ( Some x ) -# 6020 "parser_cocci_menhir.ml" +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 6469 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 6476 "parser_cocci_menhir.ml" in -# 548 "parser_cocci_menhir.mly" - ( let ty = - Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in - P.pointerify (P.make_cv cv ty) m ) -# 6028 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6482 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6036,41 +6490,84 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r1; + MenhirLib.EngineTypes.startp = _startpos_r1_; + MenhirLib.EngineTypes.endp = _endpos_r1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let rp : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 6059 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in - let lp : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 6065 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let _startpos = _startpos_lp_ in - let _endpos = _endpos_rp_ in - let _v : 'tv_ctype = -# 553 "parser_cocci_menhir.mly" - ( let (mids,code) = t in - Ast0.wrap - (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) -# 6074 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 6523 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 6528 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let r1 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6533 "parser_cocci_menhir.ml" + ) = Obj.magic r1 in + let _startpos = _startpos_r1_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let r = r1 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 6552 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 6558 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 6565 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6571 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6086,28 +6583,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_m_; MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in - let ty : 'tv_generic_ctype_full = Obj.magic ty in - let _startpos = _startpos_ty_ in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 6603 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6608 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in - let _v : 'tv_ctype_full = let cv = + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 6620 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 6626 "parser_cocci_menhir.ml" + + in + let cv = # 39 "standard.mly" ( None ) -# 6105 "parser_cocci_menhir.ml" +# 6633 "parser_cocci_menhir.ml" in # 559 "parser_cocci_menhir.mly" - ( P.pointerify (P.make_cv cv ty) m ) -# 6111 "parser_cocci_menhir.ml" + ( P.pointerify (P.make_cv cv ty) m ) +# 6639 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6123,35 +6651,74 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_m_; MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in - let ty : 'tv_generic_ctype_full = Obj.magic ty in - let x0 : 'tv_const_vol = Obj.magic x0 in - let _startpos = _startpos_x0_ in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 6676 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 6681 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6686 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in - let _v : 'tv_ctype_full = let cv = - let x = x0 in + let _v : 'tv_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let r = r0 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 6703 "parser_cocci_menhir.ml" + + in -# 41 "standard.mly" - ( Some x ) -# 6149 "parser_cocci_menhir.ml" +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 6709 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 6716 "parser_cocci_menhir.ml" in # 559 "parser_cocci_menhir.mly" - ( P.pointerify (P.make_cv cv ty) m ) -# 6155 "parser_cocci_menhir.ml" + ( P.pointerify (P.make_cv cv ty) m ) +# 6722 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6167,34 +6734,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_m_; MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let m : 'tv_nonempty_list_TMul_ = Obj.magic m in - let t : ( -# 50 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 6182 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let _startpos = _startpos_t_ in +# 6754 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6759 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in - let _v : 'tv_ctype_full = let cv = + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 6771 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 6777 "parser_cocci_menhir.ml" + + in + let cv = # 39 "standard.mly" ( None ) -# 6190 "parser_cocci_menhir.ml" +# 6784 "parser_cocci_menhir.ml" in -# 561 "parser_cocci_menhir.mly" - ( let ty = - Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in - P.pointerify (P.make_cv cv ty) m ) -# 6198 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6790 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6210,41 +6802,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_m_; MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let m : 'tv_nonempty_list_TMul_ = Obj.magic m in - let t : ( -# 50 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 6230 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let x0 : 'tv_const_vol = Obj.magic x0 in - let _startpos = _startpos_x0_ in +# 6822 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6827 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in - let _v : 'tv_ctype_full = let cv = - let x = x0 in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 6839 "parser_cocci_menhir.ml" + + in -# 41 "standard.mly" - ( Some x ) -# 6240 "parser_cocci_menhir.ml" +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 6845 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 6852 "parser_cocci_menhir.ml" in -# 561 "parser_cocci_menhir.mly" - ( let ty = - Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in - P.pointerify (P.make_cv cv ty) m ) -# 6248 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6858 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6256,41 +6866,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let rp : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 6279 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in - let lp : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 6285 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let _startpos = _startpos_lp_ in - let _endpos = _endpos_rp_ in - let _v : 'tv_ctype_full = -# 566 "parser_cocci_menhir.mly" - ( let (mids,code) = t in - Ast0.wrap - (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) -# 6294 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 6890 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6895 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 6907 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 6913 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 6920 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6926 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6302,62 +6934,64 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_list_array_dec_ = Obj.magic _2 in - let _1 : 'tv_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_d_ident = -# 1051 "parser_cocci_menhir.mly" - ( (_1, - function t -> - List.fold_right - (function (l,i,r) -> - function rest -> - Ast0.wrap - (Ast0.Array(rest,P.clt2mcode "[" l,i,P.clt2mcode "]" r))) - _2 t) ) -# 6331 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let i : 'tv_ident = Obj.magic i in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_i_ in - let _v : 'tv_decl = -# 811 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Param(t, Some i)) ) -# 6361 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 6958 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 6963 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r = r0 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 6976 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 6982 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 6989 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 6995 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6369,86 +7003,84 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r1; + MenhirLib.EngineTypes.startp = _startpos_r1_; + MenhirLib.EngineTypes.endp = _endpos_r1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 6417 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 6423 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let rp : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 6428 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let i : 'tv_ident = Obj.magic i in - let s : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 6434 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let lp : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 6439 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let t : 'tv_fn_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_rp1_ in - let _v : 'tv_decl = -# 814 "parser_cocci_menhir.mly" - ( let fnptr = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp, - P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in - Ast0.wrap(Ast0.Param(fnptr, Some i)) ) -# 6452 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 7036 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 7041 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let r1 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 7046 "parser_cocci_menhir.ml" + ) = Obj.magic r1 in + let _startpos = _startpos_r1_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let r = r1 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 7065 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 7071 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7078 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7084 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6460,25 +7092,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let t : ( -# 50 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 6473 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_t_ in - let _v : 'tv_decl = -# 821 "parser_cocci_menhir.mly" - ( let ty = - Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in - Ast0.wrap(Ast0.VoidParam(ty)) ) -# 6482 "parser_cocci_menhir.ml" +# 7116 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 7121 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 7133 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 7139 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7146 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7152 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6490,24 +7160,78 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 64 "parser_cocci_menhir.mly" - (Parse_aux.info) -# 6503 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl = -# 825 "parser_cocci_menhir.mly" - ( let (nm,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) ) -# 6511 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7189 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7194 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 7199 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let r = r0 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 7216 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 7222 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7229 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7235 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6519,52 +7243,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : ( -# 59 "parser_cocci_menhir.mly" - (string * Data.clt) -# 6532 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_ident = -# 1502 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 6539 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 62 "parser_cocci_menhir.mly" - (Parse_aux.idinfo) -# 6560 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_ident = -# 1504 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) -# 6568 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7262 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 7273 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 7279 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7286 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7292 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6575,13 +7299,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_decl_list_decl_ = -# 1524 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DOTS([])) ) -# 6585 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7319 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 7330 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 7336 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7343 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7349 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6593,23 +7357,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : 'tv_decl_list_start_decl_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_list_decl_ = -# 1526 "parser_cocci_menhir.mly" - (let circle x = - match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in - if List.exists circle _1 - then Ast0.wrap(Ast0.CIRCLES(_1)) - else Ast0.wrap(Ast0.DOTS(_1)) ) -# 6613 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7376 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 7387 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 7393 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7400 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7406 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6620,13 +7413,54 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_decl_list_name_opt_decl_ = -# 1524 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DOTS([])) ) -# 6630 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 7433 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let _startpos = _startpos_p00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 7445 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 7451 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7458 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7464 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6638,23 +7472,73 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_decl_list_start_name_opt_decl_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_list_name_opt_decl_ = -# 1526 "parser_cocci_menhir.mly" - (let circle x = - match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in - if List.exists circle _1 - then Ast0.wrap(Ast0.CIRCLES(_1)) - else Ast0.wrap(Ast0.DOTS(_1)) ) -# 6658 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 7500 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 7505 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let _startpos = _startpos_r00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 7523 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 7529 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7536 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7542 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6666,19 +7550,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_list_start_decl_ = -# 1533 "parser_cocci_menhir.mly" - ( [_1] ) -# 6682 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7569 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 7580 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 7586 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7593 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7599 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6690,70 +7607,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : 'tv_decl_list_start_decl_ = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 6714 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_decl_list_start_decl_ = -# 1535 "parser_cocci_menhir.mly" - ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 ) -# 6722 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : 'tv_list_comma_decls_TEllipsis_decl__ = Obj.magic _2 in - let _1 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 6749 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_decl_list_start_decl_ = -# 1537 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1)):: - (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) ) -# 6757 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7631 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7636 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let _startpos = _startpos_ty100_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 7652 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 7658 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7665 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7671 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6765,19 +7679,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1533 "parser_cocci_menhir.mly" - ( [_1] ) -# 6781 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 7698 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 525 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) +# 7709 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 7715 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7722 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7728 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6789,35 +7736,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : 'tv_decl_list_start_name_opt_decl_ = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 6813 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1535 "parser_cocci_menhir.mly" - ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 ) -# 6821 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7755 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 527 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) +# 7766 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 7772 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7779 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7785 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6829,30 +7793,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = Obj.magic _2 in - let _1 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 6848 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1537 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1)):: - (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) ) -# 6856 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 7812 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 529 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) +# 7823 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 7829 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7836 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7842 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6864,24 +7850,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i00; + MenhirLib.EngineTypes.startp = _startpos_i00_; + MenhirLib.EngineTypes.endp = _endpos_i00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 64 "parser_cocci_menhir.mly" - (Parse_aux.info) -# 6877 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_statement = -# 1129 "parser_cocci_menhir.mly" - ( let (nm,pure,clt) = _1 in - [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) -# 6885 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let i00 : 'tv_ident = Obj.magic i00 in + let s00 : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 7875 "parser_cocci_menhir.ml" + ) = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let i0 = i00 in + let s0 = s00 in + let ty = + let i = i0 in + let s = s0 in + +# 531 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) +# 7888 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 7894 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7901 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7907 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6893,23 +7915,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i00; + MenhirLib.EngineTypes.startp = _startpos_i00_; + MenhirLib.EngineTypes.endp = _endpos_i00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_decl_var = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_statement = -# 1132 "parser_cocci_menhir.mly" - ( List.map - (function x -> - Ast0.wrap - (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x))) - _1 ) -# 6913 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let i00 : 'tv_ident = Obj.magic i00 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let i0 = i00 in + let s0 = s00 in + let ty = + let i = i0 in + let s = s0 in + +# 533 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) +# 7949 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 7955 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 7962 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 7968 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6921,19 +7976,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_statement = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_statement = -# 1137 "parser_cocci_menhir.mly" - ( [_1] ) -# 6937 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 8010 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 8016 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let s = s0 in + let i = + +# 39 "standard.mly" + ( None ) +# 8035 "parser_cocci_menhir.ml" + + in + +# 536 "parser_cocci_menhir.mly" + ( (if i = None && !Data.in_iso + then failwith "structures must be named in the iso file"); + Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), + P.clt2mcode "{" l, + d, P.clt2mcode "}" r)) ) +# 8045 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 8051 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 8058 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8064 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6945,47 +8072,100 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x000; + MenhirLib.EngineTypes.startp = _startpos_x000_; + MenhirLib.EngineTypes.endp = _endpos_x000_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 6968 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in - let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 8111 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 6974 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_decl_statement = -# 1146 "parser_cocci_menhir.mly" - ( let (mids,code) = t in - if List.for_all - (function x -> - match Ast0.unwrap x with Ast0.DOTS([]) -> true | _ -> false) - code - then [] - else - [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, code, mids, - P.clt2mcode ")" _3))] ) -# 6989 "parser_cocci_menhir.ml" +# 8117 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let x000 : 'tv_ident = Obj.magic x000 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let x00 = x000 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let x0 = x00 in + let s = s0 in + let i = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 8140 "parser_cocci_menhir.ml" + + in + +# 536 "parser_cocci_menhir.mly" + ( (if i = None && !Data.in_iso + then failwith "structures must be named in the iso file"); + Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), + P.clt2mcode "{" l, + d, P.clt2mcode "}" r)) ) +# 8150 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 8156 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 8163 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8169 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6997,24 +8177,86 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 64 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 8211 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 8217 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let s00 : ( +# 43 "parser_cocci_menhir.mly" (Parse_aux.info) -# 7010 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_statement_expr = -# 1159 "parser_cocci_menhir.mly" - ( let (nm,pure,clt) = _1 in - [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) -# 7018 "parser_cocci_menhir.ml" +# 8222 "parser_cocci_menhir.ml" + ) = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let s = s0 in + +# 542 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = s in + let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in + Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) +# 8241 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 8247 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 8254 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8260 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7026,23 +8268,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : 'tv_decl_var = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_statement_expr = -# 1162 "parser_cocci_menhir.mly" - ( List.map - (function x -> - Ast0.wrap - (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x))) - _1 ) -# 7046 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 8287 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let _startpos = _startpos_p00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let ty = + let p = p0 in + +# 546 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) +# 8298 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 8304 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 8311 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8317 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7054,19 +8325,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_statement = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_decl_statement_expr = -# 1167 "parser_cocci_menhir.mly" - ( [_1] ) -# 7070 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 8354 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8359 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 8372 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 8378 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 8386 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8392 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7078,80 +8400,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 7101 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let t : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = Obj.magic t in - let _1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 7107 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_decl_statement_expr = -# 1176 "parser_cocci_menhir.mly" - ( let (mids,code) = t in - if List.for_all (function [] -> true | _ -> false) code - then [] - else - let dot_code = - List.map (function x -> Ast0.wrap(Ast0.DOTS x)) code in - [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, dot_code, mids, - P.clt2mcode ")" _3))] ) -# 7121 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7147 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = -# 942 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] ) -# 7155 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 8429 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8434 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 8447 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 8453 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 8461 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8467 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7163,45 +8475,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7186 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_comma_list_d_ident_ = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let s = + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 8504 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8509 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 8522 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 7196 "parser_cocci_menhir.ml" +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 8528 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 8536 "parser_cocci_menhir.ml" in -# 944 "parser_cocci_menhir.mly" - ( List.map - (function (id,fn) -> - Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) - d ) -# 7205 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8542 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7213,17 +8550,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = x0; @@ -7234,31 +8571,50 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7241 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_comma_list_d_ident_ = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 8579 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8584 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let s = + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r = r0 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 8598 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 8604 "parser_cocci_menhir.ml" + + in + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 7253 "parser_cocci_menhir.ml" +# 8612 "parser_cocci_menhir.ml" in -# 944 "parser_cocci_menhir.mly" - ( List.map - (function (id,fn) -> - Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) - d ) -# 7262 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8618 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7270,19 +8626,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = f; - MenhirLib.EngineTypes.startp = _startpos_f_; - MenhirLib.EngineTypes.endp = _endpos_f_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r1; + MenhirLib.EngineTypes.startp = _startpos_r1_; + MenhirLib.EngineTypes.endp = _endpos_r1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; } = _menhir_stack in - let f : 'tv_funproto = Obj.magic f in - let _startpos = _startpos_f_ in - let _endpos = _endpos_f_ in - let _v : 'tv_decl_var = -# 948 "parser_cocci_menhir.mly" - ( [f] ) -# 7286 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 8664 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 8669 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let r1 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8674 "parser_cocci_menhir.ml" + ) = Obj.magic r1 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let r = r1 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 8694 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 8700 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 8708 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8714 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7294,59 +8722,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7327 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7333 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let s = + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 8751 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8756 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 8769 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 7343 "parser_cocci_menhir.ml" +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 8775 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 8783 "parser_cocci_menhir.ml" in -# 950 "parser_cocci_menhir.mly" - (let (id,fn) = d in - [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 7350 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8789 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7358,66 +8797,85 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7396 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7402 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 8831 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 8836 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8841 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let s = + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let r = r0 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 8859 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 8865 "parser_cocci_menhir.ml" + + in + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 7414 "parser_cocci_menhir.ml" +# 8873 "parser_cocci_menhir.ml" in -# 950 "parser_cocci_menhir.mly" - (let (id,fn) = d in - [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 7421 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8879 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7429,54 +8887,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7452 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_comma_list_d_ident_ = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let cv = + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 8916 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8921 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 8934 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 7462 "parser_cocci_menhir.ml" +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 8940 "parser_cocci_menhir.ml" in - let s = + let cv = + let x = x0 in -# 39 "standard.mly" - ( None ) -# 7469 "parser_cocci_menhir.ml" +# 41 "standard.mly" + ( Some x ) +# 8948 "parser_cocci_menhir.ml" in -# 955 "parser_cocci_menhir.mly" - ( List.map - (function (id,fn) -> - let idtype = - P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) - d ) -# 7480 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 8954 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7488,17 +8962,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = x0; @@ -7509,40 +8983,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7516 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_comma_list_d_ident_ = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 8991 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 8996 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let cv = - let x = x0 in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 9009 "parser_cocci_menhir.ml" + + in -# 41 "standard.mly" - ( Some x ) -# 7528 "parser_cocci_menhir.ml" +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 9015 "parser_cocci_menhir.ml" in - let s = + let cv = + let x = x0 in -# 39 "standard.mly" - ( None ) -# 7535 "parser_cocci_menhir.ml" +# 41 "standard.mly" + ( Some x ) +# 9023 "parser_cocci_menhir.ml" in -# 955 "parser_cocci_menhir.mly" - ( List.map - (function (id,fn) -> - let idtype = - P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) - d ) -# 7546 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9029 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7554,17 +9037,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = x0; @@ -7575,40 +9058,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7582 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_comma_list_d_ident_ = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x0 : 'tv_storage = Obj.magic x0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9066 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 9071 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let cv = + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 9084 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 7593 "parser_cocci_menhir.ml" +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 9090 "parser_cocci_menhir.ml" in - let s = + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 7601 "parser_cocci_menhir.ml" +# 9098 "parser_cocci_menhir.ml" in -# 955 "parser_cocci_menhir.mly" - ( List.map - (function (id,fn) -> - let idtype = - P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) - d ) -# 7612 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9104 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7620,68 +9112,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = x1; - MenhirLib.EngineTypes.startp = _startpos_x1_; - MenhirLib.EngineTypes.endp = _endpos_x1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7653 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_comma_list_d_ident_ = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x1 : 'tv_const_vol = Obj.magic x1 in - let x0 : 'tv_storage = Obj.magic x0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 9141 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 9146 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let cv = - let x = x1 in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r = r0 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 9160 "parser_cocci_menhir.ml" + + in -# 41 "standard.mly" - ( Some x ) -# 7666 "parser_cocci_menhir.ml" +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 9166 "parser_cocci_menhir.ml" in - let s = + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 7674 "parser_cocci_menhir.ml" +# 9174 "parser_cocci_menhir.ml" in -# 955 "parser_cocci_menhir.mly" - ( List.map - (function (id,fn) -> - let idtype = - P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) - d ) -# 7685 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9180 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7693,69 +9188,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = r1; + MenhirLib.EngineTypes.startp = _startpos_r1_; + MenhirLib.EngineTypes.endp = _endpos_r1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7726 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7732 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let cv = + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 9226 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 9231 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let r1 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 9236 "parser_cocci_menhir.ml" + ) = Obj.magic r1 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let r = r1 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 9256 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 7742 "parser_cocci_menhir.ml" +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 9262 "parser_cocci_menhir.ml" in - let s = + let cv = + let x = x0 in -# 39 "standard.mly" - ( None ) -# 7749 "parser_cocci_menhir.ml" +# 41 "standard.mly" + ( Some x ) +# 9270 "parser_cocci_menhir.ml" in -# 963 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - !Data.add_type_name (P.id2name i); - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, - P.clt2mcode ";" pv))] ) -# 7759 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9276 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7767,76 +9284,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7805 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7811 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9313 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 9318 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let cv = - let x = x0 in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 9331 "parser_cocci_menhir.ml" + + in -# 41 "standard.mly" - ( Some x ) -# 7823 "parser_cocci_menhir.ml" +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 9337 "parser_cocci_menhir.ml" in - let s = + let cv = + let x = x0 in -# 39 "standard.mly" - ( None ) -# 7830 "parser_cocci_menhir.ml" +# 41 "standard.mly" + ( Some x ) +# 9345 "parser_cocci_menhir.ml" in -# 963 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - !Data.add_type_name (P.id2name i); - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, - P.clt2mcode ";" pv))] ) -# 7840 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9351 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7848,76 +9359,85 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7886 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7892 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let cv = + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9393 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9398 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 9403 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let r = r0 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 9421 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 7903 "parser_cocci_menhir.ml" +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 9427 "parser_cocci_menhir.ml" in - let s = + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 7911 "parser_cocci_menhir.ml" +# 9435 "parser_cocci_menhir.ml" in -# 963 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - !Data.add_type_name (P.id2name i); - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, - P.clt2mcode ";" pv))] ) -# 7921 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9441 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7929,83 +9449,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = x1; - MenhirLib.EngineTypes.startp = _startpos_x1_; - MenhirLib.EngineTypes.endp = _endpos_x1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7972 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 7978 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x1 : 'tv_const_vol = Obj.magic x1 in - let x0 : 'tv_storage = Obj.magic x0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9473 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let cv = - let x = x1 in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 9485 "parser_cocci_menhir.ml" + + in -# 41 "standard.mly" - ( Some x ) -# 7991 "parser_cocci_menhir.ml" +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 9491 "parser_cocci_menhir.ml" in - let s = + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 7999 "parser_cocci_menhir.ml" +# 9499 "parser_cocci_menhir.ml" in -# 963 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - !Data.add_type_name (P.id2name i); - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, - P.clt2mcode ";" pv))] ) -# 8009 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9505 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8017,104 +9513,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8070 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8075 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8081 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8086 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 8092 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8097 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let s = + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9537 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 9549 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 8106 "parser_cocci_menhir.ml" +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 9555 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 9563 "parser_cocci_menhir.ml" in -# 973 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] ) -# 8118 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9569 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8126,111 +9577,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8184 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8189 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8195 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8200 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 8206 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8211 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9601 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let s = + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 9613 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 9619 "parser_cocci_menhir.ml" + + in + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 8222 "parser_cocci_menhir.ml" +# 9627 "parser_cocci_menhir.ml" in -# 973 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] ) -# 8234 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9633 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8242,56 +9641,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _5 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8275 "parser_cocci_menhir.ml" - ) = Obj.magic _5 in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8280 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr_list_option = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8286 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_decl_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : 'tv_decl_var = -# 981 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, - P.clt2mcode ")" _4,P.clt2mcode ";" _5))] ) -# 8295 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 9665 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 9678 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 9684 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 9692 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9698 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8303,120 +9706,80 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8366 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8372 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8377 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8383 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8388 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 8394 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8399 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let s = + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 9739 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 9744 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 9763 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 8408 "parser_cocci_menhir.ml" +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 9769 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 9777 "parser_cocci_menhir.ml" in -# 987 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 8420 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9783 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8428,127 +9791,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8496 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8502 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8507 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8513 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 8518 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 8524 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 8529 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9815 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = let s = + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 9827 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 9833 "parser_cocci_menhir.ml" + + in + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 8540 "parser_cocci_menhir.ml" +# 9841 "parser_cocci_menhir.ml" in -# 987 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 8552 "parser_cocci_menhir.ml" +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9847 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8560,46 +9855,74 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = id; - MenhirLib.EngineTypes.startp = _startpos_id_; - MenhirLib.EngineTypes.endp = _endpos_id_; + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8588 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let id : 'tv_typedef_ident = Obj.magic id in - let t : 'tv_ctype_full = Obj.magic t in - let s : ( -# 53 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 8595 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_decl_var = -# 995 "parser_cocci_menhir.mly" - ( let s = P.clt2mcode "typedef" s in - [Ast0.wrap(Ast0.Typedef(s,t,id,P.clt2mcode ";" pv))] ) -# 8603 "parser_cocci_menhir.ml" +# 9884 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 9889 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 9906 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 9912 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 9920 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9926 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8611,23 +9934,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_define_param_list_start = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_define_param_list = -# 703 "parser_cocci_menhir.mly" - (let circle x = - match Ast0.unwrap x with Ast0.DPcircles(_) -> true | _ -> false in - if List.exists circle _1 - then Ast0.wrap(Ast0.CIRCLES(_1)) - else Ast0.wrap(Ast0.DOTS(_1)) ) -# 8631 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 9958 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 525 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) +# 9970 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 9976 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 9984 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 9990 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8639,36 +9998,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_define_param_list = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_define_param_list_option = -# 727 "parser_cocci_menhir.mly" - ( _1 ) -# 8655 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_define_param_list_option = -# 728 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DOTS([])) ) -# 8672 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 10022 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 527 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) +# 10034 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 10040 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10048 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 10054 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8680,60 +10062,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_define_param_list_start = -# 710 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.DParam _1)] ) -# 8696 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : 'tv_define_param_list_start = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 8728 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_define_param_list_start = -# 712 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DParam _1):: - Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _2))::_3 ) -# 8737 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 10086 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 529 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) +# 10098 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 10104 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10112 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 10118 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8745,30 +10126,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = r; - MenhirLib.EngineTypes.startp = _startpos_r_; - MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = i00; + MenhirLib.EngineTypes.startp = _startpos_i00_; + MenhirLib.EngineTypes.endp = _endpos_i00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let r : 'tv_list_dp_comma_args_TEllipsis__ = Obj.magic r in - let d : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 8764 "parser_cocci_menhir.ml" - ) = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos_r_ in - let _v : 'tv_define_param_list_start = -# 715 "parser_cocci_menhir.mly" - ( (P.mkdpdots "..." d):: - (List.concat (List.map (function x -> x (P.mkdpdots "...")) r)) ) -# 8772 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let i00 : 'tv_ident = Obj.magic i00 in + let s00 : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 10156 "parser_cocci_menhir.ml" + ) = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let i0 = i00 in + let s0 = s00 in + let ty = + let i = i0 in + let s = s0 in + +# 531 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) +# 10170 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 10176 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10184 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 10190 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8780,38 +10198,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i00; + MenhirLib.EngineTypes.startp = _startpos_i00_; + MenhirLib.EngineTypes.endp = _endpos_i00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 81 "parser_cocci_menhir.mly" - (Data.clt * token) -# 8793 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_defineop = -# 664 "parser_cocci_menhir.mly" - ( let (clt,ident) = _1 in - function body -> - Ast0.wrap - (Ast0.Define - (P.clt2mcode "#define" clt, - (match ident with - TMetaId((nm,constraints,pure,clt)) -> - Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) - | TIdent(nm_pure) -> - Ast0.wrap(Ast0.Id(P.id2mcode nm_pure)) - | _ -> - raise - (Semantic_cocci.Semantic - "unexpected name for a #define")), - Ast0.wrap Ast0.NoParams, - body)) ) -# 8815 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let i00 : 'tv_ident = Obj.magic i00 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let i0 = i00 in + let s0 = s00 in + let ty = + let i = i0 in + let s = s0 in + +# 533 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) +# 10238 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 10244 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10252 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 10258 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8823,56 +10266,98 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 8846 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_define_param_list_option = Obj.magic _2 in - let _1 : ( -# 82 "parser_cocci_menhir.mly" - (Data.clt * token * int) -# 8852 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_defineop = -# 681 "parser_cocci_menhir.mly" - ( let (clt,ident,parenoff) = _1 in - let (arity,line,lline,offset,col,strbef,straft,pos) = clt in - let lp = - P.clt2mcode "(" (arity,line,lline,parenoff,0,[],[],Ast0.NoMetaPos) in - function body -> - Ast0.wrap - (Ast0.Define - (P.clt2mcode "#define" clt, - (match ident with - TMetaId((nm,constraints,pure,clt)) -> - Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) - | TIdent(nm_pure) -> - Ast0.wrap(Ast0.Id(P.id2mcode nm_pure)) - | _ -> - raise - (Semantic_cocci.Semantic - "unexpected name for a #define")), - Ast0.wrap (Ast0.DParams (lp,_2,P.clt2mcode ")" _3)),body)) ) -# 8876 "parser_cocci_menhir.ml" +# 10305 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 10311 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let s = s0 in + let i = + +# 39 "standard.mly" + ( None ) +# 10331 "parser_cocci_menhir.ml" + + in + +# 536 "parser_cocci_menhir.mly" + ( (if i = None && !Data.in_iso + then failwith "structures must be named in the iso file"); + Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), + P.clt2mcode "{" l, + d, P.clt2mcode "}" r)) ) +# 10341 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 10347 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10355 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 10361 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8884,19 +10369,107 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_pnrule = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_dep = -# 221 "parser_cocci_menhir.mly" - ( _1 ) -# 8900 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x000; + MenhirLib.EngineTypes.startp = _startpos_x000_; + MenhirLib.EngineTypes.endp = _endpos_x000_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 10413 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 10419 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let x000 : 'tv_ident = Obj.magic x000 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let x00 = x000 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let x0 = x00 in + let s = s0 in + let i = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10443 "parser_cocci_menhir.ml" + + in + +# 536 "parser_cocci_menhir.mly" + ( (if i = None && !Data.in_iso + then failwith "structures must be named in the iso file"); + Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), + P.clt2mcode "{" l, + d, P.clt2mcode "}" r)) ) +# 10453 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 10459 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10467 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 10473 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8908,29 +10481,93 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : 'tv_dep = Obj.magic _3 in - let _1 : 'tv_dep = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_dep = -# 222 "parser_cocci_menhir.mly" - ( Ast.AndDep(_1, _3) ) -# 8934 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 10520 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 10526 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let s00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 10531 "parser_cocci_menhir.ml" + ) = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let s = s0 in + +# 542 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = s in + let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in + Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) +# 10551 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 10557 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10565 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 10571 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8942,29 +10579,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : 'tv_dep = Obj.magic _3 in - let _1 : 'tv_dep = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_dep = -# 223 "parser_cocci_menhir.mly" - ( Ast.OrDep (_1, _3) ) -# 8968 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 10603 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_ctype = let ty = + let p0 = p00 in + let ty = + let p = p0 in + +# 546 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) +# 10615 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 10621 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 10629 "parser_cocci_menhir.ml" + + in + +# 559 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 10635 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8975,13 +10642,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_depends = -# 217 "parser_cocci_menhir.mly" - ( Ast.NoDep ) -# 8985 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let r : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 10656 "parser_cocci_menhir.ml" + ) = Obj.magic r in + let _startpos = _startpos_r_ in + let _endpos = _endpos_r_ in + let _v : 'tv_ctype = +# 561 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,None)) ) +# 10663 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8993,27 +10671,69 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = parents; - MenhirLib.EngineTypes.startp = _startpos_parents_; - MenhirLib.EngineTypes.endp = _endpos_parents_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let r : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 10684 "parser_cocci_menhir.ml" + ) = Obj.magic r in + let _startpos = _startpos_r_ in + let _endpos = _endpos_r_ in + let _v : 'tv_ctype = +# 563 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,None)) ) +# 10691 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = rp; + MenhirLib.EngineTypes.startp = _startpos_rp_; + MenhirLib.EngineTypes.endp = _endpos_rp_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = lp; + MenhirLib.EngineTypes.startp = _startpos_lp_; + MenhirLib.EngineTypes.endp = _endpos_lp_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let parents : 'tv_dep = Obj.magic parents in - let _startpos = _startpos__1_ in - let _endpos = _endpos_parents_ in - let _v : 'tv_depends = -# 218 "parser_cocci_menhir.mly" - ( parents ) -# 9017 "parser_cocci_menhir.ml" + let rp : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 10722 "parser_cocci_menhir.ml" + ) = Obj.magic rp in + let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in + let lp : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 10728 "parser_cocci_menhir.ml" + ) = Obj.magic lp in + let _startpos = _startpos_lp_ in + let _endpos = _endpos_rp_ in + let _v : 'tv_ctype = +# 565 "parser_cocci_menhir.mly" + ( let (mids,code) = t in + Ast0.wrap + (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) +# 10737 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9036,62 +10756,51 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_ident = Obj.magic _2 in - let _1 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 9044 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : 'tv_list_array_dec_ = Obj.magic _2 in + let _1 : 'tv_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_designator = -# 1093 "parser_cocci_menhir.mly" - ( Ast0.DesignatorField (P.clt2mcode "." _1,_2) ) -# 9051 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; + let _v : 'tv_d_ident = +# 1084 "parser_cocci_menhir.mly" + ( (_1, + function t -> + List.fold_right + (function (l,i,r) -> + function rest -> + Ast0.wrap + (Ast0.Array(rest,P.clt2mcode "[" l,i,P.clt2mcode "]" r))) + _2 t) ) +# 10774 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; MenhirLib.EngineTypes.next = _menhir_stack; }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 9082 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_eexpr = Obj.magic _2 in - let _1 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 9088 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_designator = -# 1095 "parser_cocci_menhir.mly" - ( Ast0.DesignatorIndex (P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3) ) -# 9095 "parser_cocci_menhir.ml" + let i : 'tv_ident = Obj.magic i in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_i_ in + let _v : 'tv_decl = +# 838 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Param(t, Some i)) ) +# 10804 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9103,56 +10812,110 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_t_ in + let _v : 'tv_decl = +# 839 "parser_cocci_menhir.mly" + ( (*verify in FunDecl*) Ast0.wrap(Ast0.Param(t, None)) ) +# 10828 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = rp; + MenhirLib.EngineTypes.startp = _startpos_rp_; + MenhirLib.EngineTypes.endp = _endpos_rp_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp; + MenhirLib.EngineTypes.startp = _startpos_lp_; + MenhirLib.EngineTypes.endp = _endpos_lp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; }; }; } = _menhir_stack in - let _5 : ( -# 102 "parser_cocci_menhir.mly" + let rp1 : ( +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 9136 "parser_cocci_menhir.ml" - ) = Obj.magic _5 in - let _4 : 'tv_eexpr = Obj.magic _4 in - let _3 : ( -# 73 "parser_cocci_menhir.mly" +# 10884 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 9142 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_eexpr = Obj.magic _2 in - let _1 : ( -# 102 "parser_cocci_menhir.mly" +# 10890 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let rp : ( +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 9148 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : 'tv_designator = -# 1097 "parser_cocci_menhir.mly" - ( Ast0.DesignatorRange (P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3, - _4,P.clt2mcode "]" _5) ) -# 9156 "parser_cocci_menhir.ml" +# 10895 "parser_cocci_menhir.ml" + ) = Obj.magic rp in + let i : 'tv_ident = Obj.magic i in + let s : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 10901 "parser_cocci_menhir.ml" + ) = Obj.magic s in + let lp : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 10906 "parser_cocci_menhir.ml" + ) = Obj.magic lp in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_rp1_ in + let _v : 'tv_decl = +# 842 "parser_cocci_menhir.mly" + ( let fnptr = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp, + P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in + Ast0.wrap(Ast0.Param(fnptr, Some i)) ) +# 10919 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9170,13 +10933,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _1 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 10940 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_dexpr = -# 1196 "parser_cocci_menhir.mly" - ( _1 ) -# 9180 "parser_cocci_menhir.ml" + let _v : 'tv_decl = +# 849 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) ) +# 10948 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9188,23 +10956,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic _2 in + let _1 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 10969 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_disable = -# 236 "parser_cocci_menhir.mly" - ( List.map P.id2name _2 ) -# 9208 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_decl_ident = +# 1675 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) +# 10976 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9223,16 +10991,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 9229 "parser_cocci_menhir.ml" +# 41 "parser_cocci_menhir.mly" + (Parse_aux.idinfo) +# 10997 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_dot_expressions = -# 1205 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) ) -# 9236 "parser_cocci_menhir.ml" + let _v : 'tv_decl_ident = +# 1677 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) +# 11005 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_decl_list_decl_ = +# 1697 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DOTS([])) ) +# 11022 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9250,13 +11036,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_nest_expressions = Obj.magic _1 in + let _1 : 'tv_decl_list_start_decl_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_dot_expressions = -# 1206 "parser_cocci_menhir.mly" - ( _1 ) -# 9260 "parser_cocci_menhir.ml" + let _v : 'tv_decl_list_decl_ = +# 1699 "parser_cocci_menhir.mly" + (let circle x = + match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in + if List.exists circle _1 + then Ast0.wrap(Ast0.CIRCLES(_1)) + else Ast0.wrap(Ast0.DOTS(_1)) ) +# 11050 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_decl_list_name_opt_decl_ = +# 1697 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DOTS([])) ) +# 11067 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9268,34 +11075,87 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_decl_list_start_name_opt_decl_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_decl_list_name_opt_decl_ = +# 1699 "parser_cocci_menhir.mly" + (let circle x = + match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in + if List.exists circle _1 + then Ast0.wrap(Ast0.CIRCLES(_1)) + else Ast0.wrap(Ast0.DOTS(_1)) ) +# 11095 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_decl_list_start_decl_ = +# 1706 "parser_cocci_menhir.mly" + ( [_1] ) +# 11119 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = c; - MenhirLib.EngineTypes.startp = _startpos_c_; - MenhirLib.EngineTypes.endp = _endpos_c_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let d : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 9286 "parser_cocci_menhir.ml" - ) = Obj.magic d in - let c : ( -# 107 "parser_cocci_menhir.mly" + let _3 : 'tv_decl_list_start_decl_ = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 9291 "parser_cocci_menhir.ml" - ) = Obj.magic c in - let _startpos = _startpos_c_ in - let _endpos = _endpos_d_ in - let _v : 'tv_dp_comma_args_TEllipsis_ = -# 720 "parser_cocci_menhir.mly" - ( function dot_builder -> - [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," c)); dot_builder d] ) -# 9299 "parser_cocci_menhir.ml" +# 11151 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_decl_list_start_decl_ = +# 1708 "parser_cocci_menhir.mly" + ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 ) +# 11159 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9318,20 +11178,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_ident = Obj.magic _2 in + let _2 : 'tv_list_comma_decls_TEllipsis_decl__ = Obj.magic _2 in let _1 : ( -# 107 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 9326 "parser_cocci_menhir.ml" +# 11186 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_dp_comma_args_TEllipsis_ = -# 723 "parser_cocci_menhir.mly" - ( function dot_builder -> - [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _1)); - Ast0.wrap(Ast0.DParam _2)] ) -# 9335 "parser_cocci_menhir.ml" + let _v : 'tv_decl_list_start_decl_ = +# 1710 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1)):: + (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) ) +# 11194 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9344,22 +11203,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 9356 "parser_cocci_menhir.ml" - ) = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos_d_ in - let _v : 'tv_edots_when_TEllipsis_eexpr_ = -# 1794 "parser_cocci_menhir.mly" - ( (d,None) ) -# 9363 "parser_cocci_menhir.ml" + let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_decl_list_start_name_opt_decl_ = +# 1706 "parser_cocci_menhir.mly" + ( [_1] ) +# 11218 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9371,69 +11226,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w; - MenhirLib.EngineTypes.startp = _startpos_w_; - MenhirLib.EngineTypes.endp = _endpos_w_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let w : 'tv_eexpr = Obj.magic w in - let d : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 9402 "parser_cocci_menhir.ml" - ) = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos__5_ in - let _v : 'tv_edots_when_TEllipsis_eexpr_ = -# 1795 "parser_cocci_menhir.mly" - ( (d,Some w) ) -# 9409 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let d : ( -# 73 "parser_cocci_menhir.mly" + let _3 : 'tv_decl_list_start_name_opt_decl_ = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 9430 "parser_cocci_menhir.ml" - ) = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos_d_ in - let _v : 'tv_edots_when_TEllipsis_initialize_ = -# 1794 "parser_cocci_menhir.mly" - ( (d,None) ) -# 9437 "parser_cocci_menhir.ml" +# 11250 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_decl_list_start_name_opt_decl_ = +# 1708 "parser_cocci_menhir.mly" + ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 ) +# 11258 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9445,41 +11266,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w; - MenhirLib.EngineTypes.startp = _startpos_w_; - MenhirLib.EngineTypes.endp = _endpos_w_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let w : 'tv_initialize = Obj.magic w in - let d : ( -# 73 "parser_cocci_menhir.mly" + let _2 : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = Obj.magic _2 in + let _1 : ( +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 9476 "parser_cocci_menhir.ml" - ) = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos__5_ in - let _v : 'tv_edots_when_TEllipsis_initialize_ = -# 1795 "parser_cocci_menhir.mly" - ( (d,Some w) ) -# 9483 "parser_cocci_menhir.ml" +# 11285 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_decl_list_start_name_opt_decl_ = +# 1710 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1)):: + (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) ) +# 11293 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9492,22 +11302,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 9504 "parser_cocci_menhir.ml" - ) = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos_d_ in - let _v : 'tv_edots_when_TEllipsis_struct_decl_ = -# 1794 "parser_cocci_menhir.mly" - ( (d,None) ) -# 9511 "parser_cocci_menhir.ml" + let _1 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 11314 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_decl_statement = +# 1166 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = _1 in + [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) +# 11322 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9519,41 +11330,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w; - MenhirLib.EngineTypes.startp = _startpos_w_; - MenhirLib.EngineTypes.endp = _endpos_w_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let w : 'tv_struct_decl = Obj.magic w in - let d : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 9550 "parser_cocci_menhir.ml" - ) = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos__5_ in - let _v : 'tv_edots_when_TEllipsis_struct_decl_ = -# 1795 "parser_cocci_menhir.mly" - ( (d,Some w) ) -# 9557 "parser_cocci_menhir.ml" + let _1 : 'tv_decl_var = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_decl_statement = +# 1169 "parser_cocci_menhir.mly" + ( List.map + (function x -> + Ast0.wrap + (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x))) + _1 ) +# 11350 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9571,13 +11364,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _1 : 'tv_statement = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_eexpr = -# 1194 "parser_cocci_menhir.mly" - ( _1 ) -# 9581 "parser_cocci_menhir.ml" + let _v : 'tv_decl_statement = +# 1174 "parser_cocci_menhir.mly" + ( [_1] ) +# 11374 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9589,28 +11382,47 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_eexpr_list_start = Obj.magic _1 in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 11405 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 11411 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_eexpr_list = -# 1738 "parser_cocci_menhir.mly" - (let circle x = - match Ast0.unwrap x with Ast0.Ecircles(_) -> true | _ -> false in - let star x = - match Ast0.unwrap x with Ast0.Estars(_) -> true | _ -> false in - if List.exists circle _1 - then Ast0.wrap(Ast0.CIRCLES(_1)) - else - if List.exists star _1 - then Ast0.wrap(Ast0.STARS(_1)) - else Ast0.wrap(Ast0.DOTS(_1)) ) -# 9614 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_decl_statement = +# 1183 "parser_cocci_menhir.mly" + ( let (mids,code) = t in + if List.for_all + (function x -> + match Ast0.unwrap x with Ast0.DOTS([]) -> true | _ -> false) + code + then [] + else + [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, code, mids, + P.clt2mcode ")" _3))] ) +# 11426 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9628,13 +11440,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_eexpr_list = Obj.magic _1 in + let _1 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 11447 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_eexpr_list_option = -# 1777 "parser_cocci_menhir.mly" - ( _1 ) -# 9638 "parser_cocci_menhir.ml" + let _v : 'tv_decl_statement_expr = +# 1196 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = _1 in + [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) +# 11455 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9645,13 +11462,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_eexpr_list_option = -# 1778 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DOTS([])) ) -# 9655 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_decl_var = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_decl_statement_expr = +# 1199 "parser_cocci_menhir.mly" + ( List.map + (function x -> + Ast0.wrap + (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x))) + _1 ) +# 11483 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9669,13 +11497,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_aexpr = Obj.magic _1 in + let _1 : 'tv_statement = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_eexpr_list_start = -# 1765 "parser_cocci_menhir.mly" - ( [_1] ) -# 9679 "parser_cocci_menhir.ml" + let _v : 'tv_decl_statement_expr = +# 1204 "parser_cocci_menhir.mly" + ( [_1] ) +# 11507 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9691,9 +11519,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos__3_; MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -9703,19 +11531,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let _3 : 'tv_eexpr_list_start = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" + let _3 : ( +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 9711 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_aexpr = Obj.magic _1 in +# 11538 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let t : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = Obj.magic t in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 11544 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : 'tv_eexpr_list_start = -# 1767 "parser_cocci_menhir.mly" - ( _1::Ast0.wrap(Ast0.EComma(P.clt2mcode "," _2))::_3 ) -# 9719 "parser_cocci_menhir.ml" + let _v : 'tv_decl_statement_expr = +# 1213 "parser_cocci_menhir.mly" + ( let (mids,code) = t in + if List.for_all (function [] -> true | _ -> false) code + then [] + else + let dot_code = + List.map (function x -> Ast0.wrap(Ast0.DOTS x)) code in + [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, dot_code, mids, + P.clt2mcode ")" _3))] ) +# 11558 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9727,61 +11566,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = cl; - MenhirLib.EngineTypes.startp = _startpos_cl_; - MenhirLib.EngineTypes.endp = _endpos_cl_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let cl : 'tv_comma_list_dexpr_ = Obj.magic cl in - let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : 'tv_error_words = -# 1564 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.ERRORWORDS(cl))] ) -# 9763 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_exists = -# 239 "parser_cocci_menhir.mly" - ( Ast.Exists ) -# 9785 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11584 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = +# 970 "parser_cocci_menhir.mly" + ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] ) +# 11592 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9794,16 +11601,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in + let _1 : ( +# 44 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 11613 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_exists = -# 240 "parser_cocci_menhir.mly" - ( Ast.Forall ) -# 9807 "parser_cocci_menhir.ml" + let _v : 'tv_decl_var = +# 971 "parser_cocci_menhir.mly" + ( [P.meta_decl _1] ) +# 11620 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9815,21 +11628,45 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_exists = -# 241 "parser_cocci_menhir.mly" - ( Ast.ReverseForall ) -# 9833 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11651 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_comma_list_d_ident_ = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let s = + +# 39 "standard.mly" + ( None ) +# 11661 "parser_cocci_menhir.ml" + + in + +# 973 "parser_cocci_menhir.mly" + ( List.map + (function (id,fn) -> + Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) + d ) +# 11670 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9840,13 +11677,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_exists = -# 242 "parser_cocci_menhir.mly" - ( Ast.Undetermined ) -# 9850 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11706 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_comma_list_d_ident_ = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 11718 "parser_cocci_menhir.ml" + + in + +# 973 "parser_cocci_menhir.mly" + ( List.map + (function (id,fn) -> + Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) + d ) +# 11727 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9859,18 +11736,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = f; + MenhirLib.EngineTypes.startp = _startpos_f_; + MenhirLib.EngineTypes.endp = _endpos_f_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_basic_expr_expr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_expr = -# 1192 "parser_cocci_menhir.mly" - ( _1 ) -# 9874 "parser_cocci_menhir.ml" + let f : 'tv_funproto = Obj.magic f in + let _startpos = _startpos_f_ in + let _endpos = _endpos_f_ in + let _v : 'tv_decl_var = +# 977 "parser_cocci_menhir.mly" + ( [f] ) +# 11751 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9882,19 +11759,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r; - MenhirLib.EngineTypes.startp = _startpos_r_; - MenhirLib.EngineTypes.endp = _endpos_r_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let r : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = Obj.magic r in - let _startpos = _startpos_r_ in - let _endpos = _endpos_r_ in - let _v : 'tv_expr_dots_TEllipsis_ = -# 1374 "parser_cocci_menhir.mly" - ( r ) -# 9898 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11792 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11798 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let s = + +# 39 "standard.mly" + ( None ) +# 11808 "parser_cocci_menhir.ml" + + in + +# 979 "parser_cocci_menhir.mly" + (let (id,fn) = d in + [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) +# 11815 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9905,13 +11822,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_extends = -# 212 "parser_cocci_menhir.mly" - ( () ) -# 9915 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11861 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11867 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 11879 "parser_cocci_menhir.ml" + + in + +# 979 "parser_cocci_menhir.mly" + (let (id,fn) = d in + [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) +# 11886 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9923,27 +11894,54 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = parent; - MenhirLib.EngineTypes.startp = _startpos_parent_; - MenhirLib.EngineTypes.endp = _endpos_parent_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let parent : ( -# 47 "parser_cocci_menhir.mly" - (string) -# 9940 "parser_cocci_menhir.ml" - ) = Obj.magic parent in - let _startpos = _startpos__1_ in - let _endpos = _endpos_parent_ in - let _v : 'tv_extends = -# 214 "parser_cocci_menhir.mly" - ( !Data.install_bindings (parent) ) -# 9947 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11917 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_comma_list_d_ident_ = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let cv = + +# 39 "standard.mly" + ( None ) +# 11927 "parser_cocci_menhir.ml" + + in + let s = + +# 39 "standard.mly" + ( None ) +# 11934 "parser_cocci_menhir.ml" + + in + +# 984 "parser_cocci_menhir.mly" + ( List.map + (function (id,fn) -> + let idtype = + P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) + d ) +# 11945 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9955,35 +11953,61 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let _2 : ( -# 83 "parser_cocci_menhir.mly" - (string * Data.clt) -# 9973 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 83 "parser_cocci_menhir.mly" - (string * Data.clt) -# 9978 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_filespec = -# 623 "parser_cocci_menhir.mly" - ( [Ast0.wrap - (Ast0.FILEINFO(P.id2mcode _1, - P.id2mcode _2))] ) -# 9987 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 11981 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_comma_list_d_ident_ = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 11993 "parser_cocci_menhir.ml" + + in + let s = + +# 39 "standard.mly" + ( None ) +# 12000 "parser_cocci_menhir.ml" + + in + +# 984 "parser_cocci_menhir.mly" + ( List.map + (function (id,fn) -> + let idtype = + P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) + d ) +# 12011 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9995,25 +12019,61 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let m : 'tv_list_TMul_ = Obj.magic m in - let ty : 'tv_generic_ctype = Obj.magic ty in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_m_ in - let _v : 'tv_fn_ctype = -# 572 "parser_cocci_menhir.mly" - ( P.pointerify ty m ) -# 10017 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12047 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_comma_list_d_ident_ = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let cv = + +# 39 "standard.mly" + ( None ) +# 12058 "parser_cocci_menhir.ml" + + in + let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 12066 "parser_cocci_menhir.ml" + + in + +# 984 "parser_cocci_menhir.mly" + ( List.map + (function (id,fn) -> + let idtype = + P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) + d ) +# 12077 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10025,31 +12085,68 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x1; + MenhirLib.EngineTypes.startp = _startpos_x1_; + MenhirLib.EngineTypes.endp = _endpos_x1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let m : 'tv_list_TMul_ = Obj.magic m in - let t : ( -# 50 "parser_cocci_menhir.mly" - (Data.clt) -# 10044 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_m_ in - let _v : 'tv_fn_ctype = -# 574 "parser_cocci_menhir.mly" - ( P.pointerify - (Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t]))) - m ) -# 10053 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12118 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_comma_list_d_ident_ = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x1 : 'tv_const_vol = Obj.magic x1 in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let cv = + let x = x1 in + +# 41 "standard.mly" + ( Some x ) +# 12131 "parser_cocci_menhir.ml" + + in + let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 12139 "parser_cocci_menhir.ml" + + in + +# 984 "parser_cocci_menhir.mly" + ( List.map + (function (id,fn) -> + let idtype = + P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) + d ) +# 12150 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10060,13 +12157,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_fninfo = -# 766 "parser_cocci_menhir.mly" - ( [] ) -# 10070 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12191 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12197 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let cv = + +# 39 "standard.mly" + ( None ) +# 12207 "parser_cocci_menhir.ml" + + in + let s = + +# 39 "standard.mly" + ( None ) +# 12214 "parser_cocci_menhir.ml" + + in + +# 992 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + !Data.add_type_name (P.id2name i); + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, + P.clt2mcode ";" pv))] ) +# 12224 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10078,29 +12232,76 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_fninfo = Obj.magic _2 in - let _1 : 'tv_storage = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fninfo = -# 768 "parser_cocci_menhir.mly" - ( try - let _ = - List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in - raise (Semantic_cocci.Semantic "duplicate storage") - with Not_found -> (Ast0.FStorage(_1))::_2 ) -# 10104 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12270 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12276 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 12288 "parser_cocci_menhir.ml" + + in + let s = + +# 39 "standard.mly" + ( None ) +# 12295 "parser_cocci_menhir.ml" + + in + +# 992 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + !Data.add_type_name (P.id2name i); + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, + P.clt2mcode ";" pv))] ) +# 12305 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10112,25 +12313,76 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = r; - MenhirLib.EngineTypes.startp = _startpos_r_; - MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let r : 'tv_fninfo_nt = Obj.magic r in - let t : 'tv_fn_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_r_ in - let _v : 'tv_fninfo = -# 773 "parser_cocci_menhir.mly" - ( (Ast0.FType(t))::r ) -# 10134 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12351 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12357 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let cv = + +# 39 "standard.mly" + ( None ) +# 12368 "parser_cocci_menhir.ml" + + in + let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 12376 "parser_cocci_menhir.ml" + + in + +# 992 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + !Data.add_type_name (P.id2name i); + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, + P.clt2mcode ";" pv))] ) +# 12386 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10142,32 +12394,83 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x1; + MenhirLib.EngineTypes.startp = _startpos_x1_; + MenhirLib.EngineTypes.endp = _endpos_x1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_fninfo = Obj.magic _2 in - let _1 : ( -# 53 "parser_cocci_menhir.mly" - (Data.clt) -# 10161 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fninfo = -# 775 "parser_cocci_menhir.mly" - ( try - let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in - raise (Semantic_cocci.Semantic "duplicate inline") - with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 ) -# 10171 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12437 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12443 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x1 : 'tv_const_vol = Obj.magic x1 in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let cv = + let x = x1 in + +# 41 "standard.mly" + ( Some x ) +# 12456 "parser_cocci_menhir.ml" + + in + let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 12464 "parser_cocci_menhir.ml" + + in + +# 992 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + !Data.add_type_name (P.id2name i); + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, + P.clt2mcode ";" pv))] ) +# 12474 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10179,32 +12482,104 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : 'tv_fninfo = Obj.magic _2 in - let _1 : ( -# 55 "parser_cocci_menhir.mly" - (string * Data.clt) -# 10198 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fninfo = -# 780 "parser_cocci_menhir.mly" - ( try - let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in - raise (Semantic_cocci.Semantic "multiple attributes") - with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 ) -# 10208 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12535 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12540 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 12546 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12551 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 12557 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 12562 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let s = + +# 39 "standard.mly" + ( None ) +# 12571 "parser_cocci_menhir.ml" + + in + +# 1002 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] ) +# 12583 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10215,13 +12590,112 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_fninfo_nt = -# 786 "parser_cocci_menhir.mly" - ( [] ) -# 10225 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12649 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12654 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 12660 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12665 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 12671 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 12676 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 12687 "parser_cocci_menhir.ml" + + in + +# 1002 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] ) +# 12699 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10233,29 +12707,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_fninfo_nt = Obj.magic _2 in - let _1 : 'tv_storage = Obj.magic _1 in + let _5 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12740 "parser_cocci_menhir.ml" + ) = Obj.magic _5 in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12745 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 12751 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_decl_ident = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fninfo_nt = -# 788 "parser_cocci_menhir.mly" - ( try - let _ = - List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in - raise (Semantic_cocci.Semantic "duplicate storage") - with Not_found -> (Ast0.FStorage(_1))::_2 ) -# 10259 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : 'tv_decl_var = +# 1010 "parser_cocci_menhir.mly" + ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, + P.clt2mcode ")" _4,P.clt2mcode ";" _5))] ) +# 12760 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10267,32 +12768,120 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_fninfo_nt = Obj.magic _2 in - let _1 : ( -# 53 "parser_cocci_menhir.mly" - (Data.clt) -# 10286 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fninfo_nt = -# 794 "parser_cocci_menhir.mly" - ( try - let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in - raise (Semantic_cocci.Semantic "duplicate inline") - with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 ) -# 10296 "parser_cocci_menhir.ml" + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12831 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12837 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12842 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 12848 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12853 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 12859 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 12864 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let s = + +# 39 "standard.mly" + ( None ) +# 12873 "parser_cocci_menhir.ml" + + in + +# 1016 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) +# 12885 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10304,49 +12893,127 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_fninfo_nt = Obj.magic _2 in - let _1 : ( + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12961 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 12967 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12972 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( # 55 "parser_cocci_menhir.mly" - (string * Data.clt) -# 10323 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fninfo_nt = -# 799 "parser_cocci_menhir.mly" - ( try - let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in - raise (Semantic_cocci.Semantic "duplicate init") - with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 ) -# 10333 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_fun_after_dots = -# 1686 "parser_cocci_menhir.mly" - ([]) -# 10350 "parser_cocci_menhir.ml" + (Data.clt) +# 12978 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 12983 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 12989 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 12994 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 13005 "parser_cocci_menhir.ml" + + in + +# 1016 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) +# 13017 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10358,23 +13025,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : 'tv_fun_after_exp = Obj.magic _2 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_dots = -# 1687 "parser_cocci_menhir.mly" - (_2) -# 10378 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.semv = id; + MenhirLib.EngineTypes.startp = _startpos_id_; + MenhirLib.EngineTypes.endp = _endpos_id_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 13053 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let id : 'tv_comma_list_typedef_ident_ = Obj.magic id in + let t : 'tv_typedef_ctype = Obj.magic t in + let s : ( +# 31 "parser_cocci_menhir.mly" + (Data.clt) +# 13060 "parser_cocci_menhir.ml" + ) = Obj.magic s in + let _startpos = _startpos_s_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_decl_var = +# 1024 "parser_cocci_menhir.mly" + ( let s = P.clt2mcode "typedef" s in + List.map + (function id -> + Ast0.wrap(Ast0.Typedef(s,t,id,P.clt2mcode ";" pv))) + id ) +# 13071 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10386,25 +13079,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_fun_after_exp = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in + let _1 : 'tv_define_param_list_start = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_dots = -# 1688 "parser_cocci_menhir.mly" - (Ast0.wrap(Ast0.Exp(_1))::_2) -# 10408 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_define_param_list = +# 740 "parser_cocci_menhir.mly" + (let circle x = + match Ast0.unwrap x with Ast0.DPcircles(_) -> true | _ -> false in + if List.exists circle _1 + then Ast0.wrap(Ast0.CIRCLES(_1)) + else Ast0.wrap(Ast0.DOTS(_1)) ) +# 13099 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10416,25 +13107,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_fun_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + let _1 : 'tv_define_param_list = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_dots = -# 1689 "parser_cocci_menhir.mly" - (_1@_2) -# 10438 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_define_param_list_option = +# 764 "parser_cocci_menhir.mly" + ( _1 ) +# 13123 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10448,10 +13133,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_fun_after_dots_or = -# 1696 "parser_cocci_menhir.mly" - ([]) -# 10455 "parser_cocci_menhir.ml" + let _v : 'tv_define_param_list_option = +# 765 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DOTS([])) ) +# 13140 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10463,23 +13148,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_fun_after_exp_or = Obj.magic _2 in + let _1 : 'tv_ident = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_dots_or = -# 1697 "parser_cocci_menhir.mly" - (_2) -# 10483 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_define_param_list_start = +# 747 "parser_cocci_menhir.mly" + ( [Ast0.wrap(Ast0.DParam _1)] ) +# 13164 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10491,25 +13172,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_fun_after_exp_or = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in + let _3 : 'tv_define_param_list_start = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 13196 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_ident = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_dots_or = -# 1698 "parser_cocci_menhir.mly" - (Ast0.wrap(Ast0.Exp(_1))::_2) -# 10513 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_define_param_list_start = +# 749 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DParam _1):: + Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _2))::_3 ) +# 13205 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10521,25 +13213,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_fun_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_dots_or = -# 1699 "parser_cocci_menhir.mly" - (_1@_2) -# 10543 "parser_cocci_menhir.ml" + let r : 'tv_list_dp_comma_args_TEllipsis__ = Obj.magic r in + let d : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 13232 "parser_cocci_menhir.ml" + ) = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos_r_ in + let _v : 'tv_define_param_list_start = +# 752 "parser_cocci_menhir.mly" + ( (P.mkdpdots "..." d):: + (List.concat (List.map (function x -> x (P.mkdpdots "...")) r)) ) +# 13240 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10551,42 +13248,38 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : 'tv_fun_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_exp = -# 1692 "parser_cocci_menhir.mly" - (_1::_2) -# 10573 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_fun_after_exp_or = -# 1702 "parser_cocci_menhir.mly" - ([]) -# 10590 "parser_cocci_menhir.ml" + } = _menhir_stack in + let _1 : ( +# 60 "parser_cocci_menhir.mly" + (Data.clt * token) +# 13261 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_defineop = +# 699 "parser_cocci_menhir.mly" + ( let (clt,ident) = _1 in + function body -> + Ast0.wrap + (Ast0.Define + (P.clt2mcode "#define" clt, + (match ident with + TMetaId((nm,constraints,pure,clt)) -> + Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) + | TIdent(nm_pure) -> + Ast0.wrap(Ast0.Id(P.id2mcode nm_pure)) + | _ -> + raise + (Semantic_cocci.Semantic + "unexpected name for a #define")), + Ast0.wrap Ast0.NoParams, + body)) ) +# 13283 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10598,25 +13291,58 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_fun_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_exp_or = -# 1703 "parser_cocci_menhir.mly" - (_1::_2) -# 10620 "parser_cocci_menhir.ml" + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 13314 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_define_param_list_option = Obj.magic _2 in + let _1 : ( +# 61 "parser_cocci_menhir.mly" + (Data.clt * token * int * int) +# 13320 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_defineop = +# 716 "parser_cocci_menhir.mly" + ( let (clt,ident,parenoff,parencol) = _1 in + (* clt is the start of the #define itself *) + let (arity,line,lline,offset,col,strbef,straft,pos) = clt in + let lp = + P.clt2mcode "(" + (arity,line,lline,parenoff,parencol,[],[],Ast0.NoMetaPos) in + function body -> + Ast0.wrap + (Ast0.Define + (P.clt2mcode "#define" clt, + (match ident with + TMetaId((nm,constraints,pure,clt)) -> + Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) + | TIdent(nm_pure) -> + Ast0.wrap(Ast0.Id(P.id2mcode nm_pure)) + | _ -> + raise + (Semantic_cocci.Semantic + "unexpected name for a #define")), + Ast0.wrap (Ast0.DParams (lp,_2,P.clt2mcode ")" _3)),body)) ) +# 13346 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10627,43 +13353,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_fun_after_stm = -# 1681 "parser_cocci_menhir.mly" - ([]) -# 10637 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { + let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; } = _menhir_stack in - let _2 : 'tv_fun_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in + let _1 : 'tv_pnrule = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_stm = -# 1682 "parser_cocci_menhir.mly" - (_1::_2) -# 10667 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_dep = +# 206 "parser_cocci_menhir.mly" + ( _1 ) +# 13370 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10675,25 +13378,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_fun_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement = Obj.magic _1 in + let _3 : 'tv_dep = Obj.magic _3 in + let _1 : 'tv_dep = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_fun_after_stm = -# 1683 "parser_cocci_menhir.mly" - (_1@_2) -# 10697 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_dep = +# 207 "parser_cocci_menhir.mly" + ( Ast.AndDep(_1, _3) ) +# 13404 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10705,19 +13412,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_fun_after_stm = Obj.magic _1 in + let _3 : 'tv_dep = Obj.magic _3 in + let _1 : 'tv_dep = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_fun_start = -# 1678 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 10721 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_dep = +# 208 "parser_cocci_menhir.mly" + ( Ast.OrDep (_1, _3) ) +# 13438 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10728,20 +13445,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_pure_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_func_ident = -# 1482 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 10745 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_depends = +# 202 "parser_cocci_menhir.mly" + ( Ast.NoDep ) +# 13455 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10753,24 +13463,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = parents; + MenhirLib.EngineTypes.startp = _startpos_parents_; + MenhirLib.EngineTypes.endp = _endpos_parents_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 61 "parser_cocci_menhir.mly" - (Parse_aux.idinfo) -# 10766 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let parents : 'tv_dep = Obj.magic parents in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_func_ident = -# 1484 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) -# 10774 "parser_cocci_menhir.ml" + let _endpos = _endpos_parents_ in + let _v : 'tv_depends = +# 203 "parser_cocci_menhir.mly" + ( parents ) +# 13487 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10782,24 +13495,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in + let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 61 "parser_cocci_menhir.mly" - (Parse_aux.idinfo) -# 10795 "parser_cocci_menhir.ml" +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 13514 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_func_ident = -# 1487 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) ) -# 10803 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_designator = +# 1126 "parser_cocci_menhir.mly" + ( Ast0.DesignatorField (P.clt2mcode "." _1,_2) ) +# 13521 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10811,25 +13529,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in + let _3 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 13552 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 61 "parser_cocci_menhir.mly" - (Parse_aux.idinfo) -# 10824 "parser_cocci_menhir.ml" +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 13558 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_func_ident = -# 1490 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap - (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) ) -# 10833 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_designator = +# 1128 "parser_cocci_menhir.mly" + ( Ast0.DesignatorIndex (P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3) ) +# 13565 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10841,86 +13573,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = rb; - MenhirLib.EngineTypes.startp = _startpos_rb_; - MenhirLib.EngineTypes.endp = _endpos_rb_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lb; - MenhirLib.EngineTypes.startp = _startpos_lb_; - MenhirLib.EngineTypes.endp = _endpos_lb_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = f; - MenhirLib.EngineTypes.startp = _startpos_f_; - MenhirLib.EngineTypes.endp = _endpos_f_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let rb : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 10893 "parser_cocci_menhir.ml" - ) = Obj.magic rb in - let b : 'tv_fun_start = Obj.magic b in - let lb : ( -# 101 "parser_cocci_menhir.mly" + let _5 : ( +# 81 "parser_cocci_menhir.mly" (Data.clt) -# 10899 "parser_cocci_menhir.ml" - ) = Obj.magic lb in - let rp : ( -# 77 "parser_cocci_menhir.mly" +# 13606 "parser_cocci_menhir.ml" + ) = Obj.magic _5 in + let _4 : 'tv_eexpr = Obj.magic _4 in + let _3 : ( +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 10904 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let d : 'tv_decl_list_decl_ = Obj.magic d in - let lp : ( -# 76 "parser_cocci_menhir.mly" +# 13612 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_eexpr = Obj.magic _2 in + let _1 : ( +# 81 "parser_cocci_menhir.mly" (Data.clt) -# 10910 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let i : 'tv_func_ident = Obj.magic i in - let f : 'tv_fninfo = Obj.magic f in - let _startpos = _startpos_f_ in - let _endpos = _endpos_rb_ in - let _v : 'tv_fundecl = -# 758 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()), - f, i, - P.clt2mcode "(" lp, d, - P.clt2mcode ")" rp, - P.clt2mcode "{" lb, b, - P.clt2mcode "}" rb)) ) -# 10924 "parser_cocci_menhir.ml" +# 13618 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : 'tv_designator = +# 1130 "parser_cocci_menhir.mly" + ( Ast0.DesignatorRange (P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3, + _4,P.clt2mcode "]" _5) ) +# 13626 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10932,74 +13634,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pt; - MenhirLib.EngineTypes.startp = _startpos_pt_; - MenhirLib.EngineTypes.endp = _endpos_pt_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = id; - MenhirLib.EngineTypes.startp = _startpos_id_; - MenhirLib.EngineTypes.endp = _endpos_id_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let pt : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 10970 "parser_cocci_menhir.ml" - ) = Obj.magic pt in - let rp : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 10975 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in - let lp : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 10981 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let id : 'tv_func_ident = Obj.magic id in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pt_ in - let _v : 'tv_funproto = let s = - -# 39 "standard.mly" - ( None ) -# 10991 "parser_cocci_menhir.ml" - - in - -# 735 "parser_cocci_menhir.mly" - ( Ast0.wrap - (Ast0.UnInit - (s, - Ast0.wrap - (Ast0.FunctionType(Some t, - P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), - id, P.clt2mcode ";" pt)) ) -# 11003 "parser_cocci_menhir.ml" + let _1 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_dexpr = +# 1233 "parser_cocci_menhir.mly" + ( _1 ) +# 13650 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11011,81 +13658,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pt; - MenhirLib.EngineTypes.startp = _startpos_pt_; - MenhirLib.EngineTypes.endp = _endpos_pt_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = id; - MenhirLib.EngineTypes.startp = _startpos_id_; - MenhirLib.EngineTypes.endp = _endpos_id_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pt : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 11054 "parser_cocci_menhir.ml" - ) = Obj.magic pt in - let rp : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 11059 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in - let lp : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 11065 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let id : 'tv_func_ident = Obj.magic id in - let t : 'tv_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pt_ in - let _v : 'tv_funproto = let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 11077 "parser_cocci_menhir.ml" - - in - -# 735 "parser_cocci_menhir.mly" - ( Ast0.wrap - (Ast0.UnInit - (s, - Ast0.wrap - (Ast0.FunctionType(Some t, - P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), - id, P.clt2mcode ";" pt)) ) -# 11089 "parser_cocci_menhir.ml" + let _2 : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_disable = +# 221 "parser_cocci_menhir.mly" + ( List.map P.id2name _2 ) +# 13678 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11097,242 +13686,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pt; - MenhirLib.EngineTypes.startp = _startpos_pt_; - MenhirLib.EngineTypes.endp = _endpos_pt_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = id; - MenhirLib.EngineTypes.startp = _startpos_id_; - MenhirLib.EngineTypes.endp = _endpos_id_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let pt : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 11135 "parser_cocci_menhir.ml" - ) = Obj.magic pt in - let rp : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 11140 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in - let lp : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 11146 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let id : 'tv_func_ident = Obj.magic id in - let t : ( -# 50 "parser_cocci_menhir.mly" - (Data.clt) -# 11152 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pt_ in - let _v : 'tv_funproto = let s = - -# 39 "standard.mly" - ( None ) -# 11160 "parser_cocci_menhir.ml" - - in - -# 744 "parser_cocci_menhir.mly" - ( let t = Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in - Ast0.wrap - (Ast0.UnInit - (s, - Ast0.wrap - (Ast0.FunctionType(Some t, - P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), - id, P.clt2mcode ";" pt)) ) -# 11173 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = pt; - MenhirLib.EngineTypes.startp = _startpos_pt_; - MenhirLib.EngineTypes.endp = _endpos_pt_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = id; - MenhirLib.EngineTypes.startp = _startpos_id_; - MenhirLib.EngineTypes.endp = _endpos_id_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - } = _menhir_stack in - let pt : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 11224 "parser_cocci_menhir.ml" - ) = Obj.magic pt in - let rp : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 11229 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in - let lp : ( -# 76 "parser_cocci_menhir.mly" + let _1 : ( +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 11235 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let id : 'tv_func_ident = Obj.magic id in - let t : ( -# 50 "parser_cocci_menhir.mly" - (Data.clt) -# 11241 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pt_ in - let _v : 'tv_funproto = let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 11251 "parser_cocci_menhir.ml" - - in - -# 744 "parser_cocci_menhir.mly" - ( let t = Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in - Ast0.wrap - (Ast0.UnInit - (s, - Ast0.wrap - (Ast0.FunctionType(Some t, - P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), - id, P.clt2mcode ";" pt)) ) -# 11264 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r0; - MenhirLib.EngineTypes.startp = _startpos_r0_; - MenhirLib.EngineTypes.endp = _endpos_r0_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let r0 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11285 "parser_cocci_menhir.ml" - ) = Obj.magic r0 in - let _startpos = _startpos_r0_ in - let _endpos = _endpos_r0_ in - let _v : 'tv_generic_ctype = let q = - let r = r0 in - -# 580 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) ) -# 11294 "parser_cocci_menhir.ml" - - in - -# 504 "parser_cocci_menhir.mly" - ( q None ) -# 11300 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r0; - MenhirLib.EngineTypes.startp = _startpos_r0_; - MenhirLib.EngineTypes.endp = _endpos_r0_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let r0 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11321 "parser_cocci_menhir.ml" - ) = Obj.magic r0 in - let _startpos = _startpos_r0_ in - let _endpos = _endpos_r0_ in - let _v : 'tv_generic_ctype = let q = - let r = r0 in - -# 582 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) ) -# 11330 "parser_cocci_menhir.ml" - - in - -# 504 "parser_cocci_menhir.mly" - ( q None ) -# 11336 "parser_cocci_menhir.ml" +# 13699 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_dot_expressions = +# 1242 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) ) +# 13706 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11350,13 +13720,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_generic_ctype_full = Obj.magic _1 in + let _1 : 'tv_nest_expressions = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_generic_ctype = -# 505 "parser_cocci_menhir.mly" - ( _1 ) -# 11360 "parser_cocci_menhir.ml" + let _v : 'tv_dot_expressions = +# 1243 "parser_cocci_menhir.mly" + ( _1 ) +# 13730 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11368,49 +13738,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.semv = c; + MenhirLib.EngineTypes.startp = _startpos_c_; + MenhirLib.EngineTypes.endp = _endpos_c_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11386 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11391 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 580 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) ) -# 11402 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 11408 "parser_cocci_menhir.ml" - - in - -# 457 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty]))) ) -# 11414 "parser_cocci_menhir.ml" + let d : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 13756 "parser_cocci_menhir.ml" + ) = Obj.magic d in + let c : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 13761 "parser_cocci_menhir.ml" + ) = Obj.magic c in + let _startpos = _startpos_c_ in + let _endpos = _endpos_d_ in + let _v : 'tv_dp_comma_args_TEllipsis_ = +# 757 "parser_cocci_menhir.mly" + ( function dot_builder -> + [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," c)); dot_builder d] ) +# 13769 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11422,49 +13777,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11440 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11445 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 582 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) ) -# 11456 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 11462 "parser_cocci_menhir.ml" - - in - -# 457 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty]))) ) -# 11468 "parser_cocci_menhir.ml" + let _2 : 'tv_ident = Obj.magic _2 in + let _1 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 13796 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_dp_comma_args_TEllipsis_ = +# 760 "parser_cocci_menhir.mly" + ( function dot_builder -> + [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _1)); + Ast0.wrap(Ast0.DParam _2)] ) +# 13805 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11477,29 +13814,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11489 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - -# 586 "parser_cocci_menhir.mly" - ( function x -> x ) -# 11497 "parser_cocci_menhir.ml" - - in - -# 457 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty]))) ) -# 11503 "parser_cocci_menhir.ml" + let d : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 13826 "parser_cocci_menhir.ml" + ) = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos_d_ in + let _v : 'tv_edots_when_TEllipsis_eexpr_ = +# 1975 "parser_cocci_menhir.mly" + ( (d,None) ) +# 13833 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11511,49 +13841,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11529 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11534 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 580 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) ) -# 11545 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 11551 "parser_cocci_menhir.ml" - - in - -# 459 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])))) -# 11557 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.semv = w; + MenhirLib.EngineTypes.startp = _startpos_w_; + MenhirLib.EngineTypes.endp = _endpos_w_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let w : 'tv_eexpr = Obj.magic w in + let d : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 13872 "parser_cocci_menhir.ml" + ) = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos__5_ in + let _v : 'tv_edots_when_TEllipsis_eexpr_ = +# 1976 "parser_cocci_menhir.mly" + ( (d,Some w) ) +# 13879 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11565,49 +13887,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11583 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11588 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 582 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) ) -# 11599 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 11605 "parser_cocci_menhir.ml" - - in - -# 459 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])))) -# 11611 "parser_cocci_menhir.ml" + let d : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 13900 "parser_cocci_menhir.ml" + ) = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos_d_ in + let _v : 'tv_edots_when_TEllipsis_initialize_ = +# 1975 "parser_cocci_menhir.mly" + ( (d,None) ) +# 13907 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11619,30 +13915,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = w; + MenhirLib.EngineTypes.startp = _startpos_w_; + MenhirLib.EngineTypes.endp = _endpos_w_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11632 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - -# 586 "parser_cocci_menhir.mly" - ( function x -> x ) -# 11640 "parser_cocci_menhir.ml" - - in - -# 459 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])))) -# 11646 "parser_cocci_menhir.ml" + let w : 'tv_initialize = Obj.magic w in + let d : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 13946 "parser_cocci_menhir.ml" + ) = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos__5_ in + let _v : 'tv_edots_when_TEllipsis_initialize_ = +# 1976 "parser_cocci_menhir.mly" + ( (d,Some w) ) +# 13953 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11654,49 +13961,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11672 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11677 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 580 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) ) -# 11688 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 11694 "parser_cocci_menhir.ml" - - in - -# 461 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty]))) ) -# 11700 "parser_cocci_menhir.ml" + let d : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 13974 "parser_cocci_menhir.ml" + ) = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos_d_ in + let _v : 'tv_edots_when_TEllipsis_struct_decl_ = +# 1975 "parser_cocci_menhir.mly" + ( (d,None) ) +# 13981 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11708,49 +13989,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = w; + MenhirLib.EngineTypes.startp = _startpos_w_; + MenhirLib.EngineTypes.endp = _endpos_w_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11726 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11731 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 582 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) ) -# 11742 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 11748 "parser_cocci_menhir.ml" - - in - -# 461 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty]))) ) -# 11754 "parser_cocci_menhir.ml" + let w : 'tv_struct_decl = Obj.magic w in + let d : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 14020 "parser_cocci_menhir.ml" + ) = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos__5_ in + let _v : 'tv_edots_when_TEllipsis_struct_decl_ = +# 1976 "parser_cocci_menhir.mly" + ( (d,Some w) ) +# 14027 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11763,29 +14036,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11775 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - -# 586 "parser_cocci_menhir.mly" - ( function x -> x ) -# 11783 "parser_cocci_menhir.ml" - - in - -# 461 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty]))) ) -# 11789 "parser_cocci_menhir.ml" + let _1 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_eexpr = +# 1231 "parser_cocci_menhir.mly" + ( _1 ) +# 14051 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11798,22 +14060,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let t : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11810 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_t_ in - let _v : 'tv_generic_ctype_full = -# 463 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" t])) ) -# 11817 "parser_cocci_menhir.ml" + let _1 : 'tv_eexpr_list_start = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_eexpr_list = +# 1918 "parser_cocci_menhir.mly" + (let circle x = + match Ast0.unwrap x with Ast0.Ecircles(_) -> true | _ -> false in + let star x = + match Ast0.unwrap x with Ast0.Estars(_) -> true | _ -> false in + if List.exists circle _1 + then Ast0.wrap(Ast0.CIRCLES(_1)) + else + if List.exists star _1 + then Ast0.wrap(Ast0.STARS(_1)) + else Ast0.wrap(Ast0.DOTS(_1)) ) +# 14084 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11826,22 +14093,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let t : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11838 "parser_cocci_menhir.ml" - ) = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_t_ in - let _v : 'tv_generic_ctype_full = -# 465 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" t])) ) -# 11845 "parser_cocci_menhir.ml" + let _1 : 'tv_eexpr_list = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_eexpr_list_option = +# 1958 "parser_cocci_menhir.mly" + ( _1 ) +# 14108 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11852,104 +14115,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11871 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11876 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 580 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) ) -# 11887 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 11893 "parser_cocci_menhir.ml" - - in - -# 467 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty]))) ) -# 11899 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11925 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 11930 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 582 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) ) -# 11941 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 11947 "parser_cocci_menhir.ml" - - in - -# 467 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty]))) ) -# 11953 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_eexpr_list_option = +# 1959 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DOTS([])) ) +# 14125 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11962,29 +14134,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 11974 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty_ in - let _v : 'tv_generic_ctype_full = let q = - -# 586 "parser_cocci_menhir.mly" - ( function x -> x ) -# 11982 "parser_cocci_menhir.ml" - - in - -# 467 "parser_cocci_menhir.mly" - ( q (Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty]))) ) -# 11988 "parser_cocci_menhir.ml" + let _1 : 'tv_aexpr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_eexpr_list_start = +# 1946 "parser_cocci_menhir.mly" + ( [_1] ) +# 14149 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11996,62 +14157,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty1; - MenhirLib.EngineTypes.startp = _startpos_ty1_; - MenhirLib.EngineTypes.endp = _endpos_ty1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let ty1 : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 12019 "parser_cocci_menhir.ml" - ) = Obj.magic ty1 in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 12024 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 12029 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty1_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 580 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) ) -# 12040 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 12046 "parser_cocci_menhir.ml" - - in - -# 469 "parser_cocci_menhir.mly" - ( q (Ast0.wrap - (Ast0.BaseType - (Ast.LongLongType, - [P.clt2mcode "long" ty;P.clt2mcode "long" ty1]))) ) -# 12055 "parser_cocci_menhir.ml" + let _3 : 'tv_eexpr_list_start = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 14181 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_aexpr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_eexpr_list_start = +# 1948 "parser_cocci_menhir.mly" + ( _1::Ast0.wrap(Ast0.EComma(P.clt2mcode "," _2))::_3 ) +# 14189 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12063,62 +14197,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty1; - MenhirLib.EngineTypes.startp = _startpos_ty1_; - MenhirLib.EngineTypes.endp = _endpos_ty1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty1 : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 12086 "parser_cocci_menhir.ml" - ) = Obj.magic ty1 in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 12091 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 12096 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_ty1_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 582 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) ) -# 12107 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 12113 "parser_cocci_menhir.ml" - - in - -# 469 "parser_cocci_menhir.mly" - ( q (Ast0.wrap - (Ast0.BaseType - (Ast.LongLongType, - [P.clt2mcode "long" ty;P.clt2mcode "long" ty1]))) ) -# 12122 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_exists = +# 224 "parser_cocci_menhir.mly" + ( Ast.Exists ) +# 14211 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12130,43 +14219,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ty1; - MenhirLib.EngineTypes.startp = _startpos_ty1_; - MenhirLib.EngineTypes.endp = _endpos_ty1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty1 : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 12148 "parser_cocci_menhir.ml" - ) = Obj.magic ty1 in - let ty : ( -# 49 "parser_cocci_menhir.mly" - (Data.clt) -# 12153 "parser_cocci_menhir.ml" - ) = Obj.magic ty in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty1_ in - let _v : 'tv_generic_ctype_full = let q = - -# 586 "parser_cocci_menhir.mly" - ( function x -> x ) -# 12161 "parser_cocci_menhir.ml" - - in - -# 469 "parser_cocci_menhir.mly" - ( q (Ast0.wrap - (Ast0.BaseType - (Ast.LongLongType, - [P.clt2mcode "long" ty;P.clt2mcode "long" ty1]))) ) -# 12170 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_exists = +# 225 "parser_cocci_menhir.mly" + ( Ast.Forall ) +# 14233 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12177,30 +14240,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let i : 'tv_ident = Obj.magic i in - let s : ( -# 50 "parser_cocci_menhir.mly" - (Data.clt) -# 12197 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_i_ in - let _v : 'tv_generic_ctype_full = -# 474 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) -# 12204 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_exists = +# 226 "parser_cocci_menhir.mly" + ( Ast.Undetermined ) +# 14250 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12212,25 +14258,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let i : 'tv_ident = Obj.magic i in - let s : 'tv_struct_or_union = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_i_ in - let _v : 'tv_generic_ctype_full = -# 476 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 12234 "parser_cocci_menhir.ml" + let _1 : 'tv_basic_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_expr = +# 1229 "parser_cocci_menhir.mly" + ( _1 ) +# 14274 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12242,56 +14282,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { + MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = r; MenhirLib.EngineTypes.startp = _startpos_r_; MenhirLib.EngineTypes.endp = _endpos_r_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let r : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 12270 "parser_cocci_menhir.ml" - ) = Obj.magic r in - let d : 'tv_struct_decl_list = Obj.magic d in - let l : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 12276 "parser_cocci_menhir.ml" - ) = Obj.magic l in - let s : 'tv_struct_or_union = Obj.magic s in - let _startpos = _startpos_s_ in + let r : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = Obj.magic r in + let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in - let _v : 'tv_generic_ctype_full = let i = - -# 39 "standard.mly" - ( None ) -# 12285 "parser_cocci_menhir.ml" - - in - -# 479 "parser_cocci_menhir.mly" - ( (if i = None && !Data.in_iso - then failwith "structures must be named in the iso file"); - Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), - P.clt2mcode "{" l, - d, P.clt2mcode "}" r)) ) -# 12295 "parser_cocci_menhir.ml" + let _v : 'tv_expr_dots_TEllipsis_ = +# 1413 "parser_cocci_menhir.mly" + ( r ) +# 14298 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_extends = +# 197 "parser_cocci_menhir.mly" + ( () ) +# 14315 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12303,63 +14323,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = r; - MenhirLib.EngineTypes.startp = _startpos_r_; - MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.semv = parent; + MenhirLib.EngineTypes.startp = _startpos_parent_; + MenhirLib.EngineTypes.endp = _endpos_parent_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let r : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 12336 "parser_cocci_menhir.ml" - ) = Obj.magic r in - let d : 'tv_struct_decl_list = Obj.magic d in - let l : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 12342 "parser_cocci_menhir.ml" - ) = Obj.magic l in - let x0 : 'tv_ident = Obj.magic x0 in - let s : 'tv_struct_or_union = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_r_ in - let _v : 'tv_generic_ctype_full = let i = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 12353 "parser_cocci_menhir.ml" - - in - -# 479 "parser_cocci_menhir.mly" - ( (if i = None && !Data.in_iso - then failwith "structures must be named in the iso file"); - Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), - P.clt2mcode "{" l, - d, P.clt2mcode "}" r)) ) -# 12363 "parser_cocci_menhir.ml" + let parent : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 14340 "parser_cocci_menhir.ml" + ) = Obj.magic parent in + let _startpos = _startpos__1_ in + let _endpos = _endpos_parent_ in + let _v : 'tv_extends = +# 199 "parser_cocci_menhir.mly" + ( !Data.install_bindings (parent) ) +# 14347 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12371,53 +14355,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = r; - MenhirLib.EngineTypes.startp = _startpos_r_; - MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let r : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 12399 "parser_cocci_menhir.ml" - ) = Obj.magic r in - let d : 'tv_struct_decl_list = Obj.magic d in - let l : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 12405 "parser_cocci_menhir.ml" - ) = Obj.magic l in - let s : ( -# 64 "parser_cocci_menhir.mly" - (Parse_aux.info) -# 12410 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_r_ in - let _v : 'tv_generic_ctype_full = -# 485 "parser_cocci_menhir.mly" - ( let (nm,pure,clt) = s in - let ty = - Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in - Ast0.wrap - (Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) -# 12421 "parser_cocci_menhir.ml" + let _2 : ( +# 62 "parser_cocci_menhir.mly" + (string * Data.clt) +# 14373 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : ( +# 62 "parser_cocci_menhir.mly" + (string * Data.clt) +# 14378 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_filespec = +# 654 "parser_cocci_menhir.mly" + ( [Ast0.wrap + (Ast0.FILEINFO(P.id2mcode _1, + P.id2mcode _2))] ) +# 14387 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12428,43 +14394,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r; - MenhirLib.EngineTypes.startp = _startpos_r_; - MenhirLib.EngineTypes.endp = _endpos_r_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let p : ( -# 59 "parser_cocci_menhir.mly" - (string * Data.clt) -# 12451 "parser_cocci_menhir.ml" - ) = Obj.magic p in - let r : ( -# 47 "parser_cocci_menhir.mly" - (string) -# 12456 "parser_cocci_menhir.ml" - ) = Obj.magic r in - let _startpos = _startpos_r_ in - let _endpos = _endpos_p_ in - let _v : 'tv_generic_ctype_full = -# 491 "parser_cocci_menhir.mly" - ( let nm = (r,P.id2name p) in - (* this is only possible when we are in a metavar decl. Otherwise, - it will be represented already as a MetaType *) - let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in - Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), - Ast0.Impure (*will be ignored*))) ) -# 12468 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_fninfo = +# 793 "parser_cocci_menhir.mly" + ( [] ) +# 14404 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12476,23 +14412,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let p : ( -# 59 "parser_cocci_menhir.mly" - (string * Data.clt) -# 12489 "parser_cocci_menhir.ml" - ) = Obj.magic p in - let _startpos = _startpos_p_ in - let _endpos = _endpos_p_ in - let _v : 'tv_generic_ctype_full = -# 498 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 12496 "parser_cocci_menhir.ml" + let _2 : 'tv_fninfo = Obj.magic _2 in + let _1 : 'tv_storage = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_fninfo = +# 795 "parser_cocci_menhir.mly" + ( try + let _ = + List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in + raise (Semantic_cocci.Semantic "duplicate storage") + with Not_found -> (Ast0.FStorage(_1))::_2 ) +# 14438 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12504,50 +14446,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let p : ( -# 64 "parser_cocci_menhir.mly" - (Parse_aux.info) -# 12522 "parser_cocci_menhir.ml" - ) = Obj.magic p in - let r00 : ( -# 51 "parser_cocci_menhir.mly" - (Data.clt) -# 12527 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_p_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 580 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) ) -# 12538 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 12544 "parser_cocci_menhir.ml" - - in - -# 500 "parser_cocci_menhir.mly" - ( let (nm,pure,clt) = p in - q (Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure))) ) -# 12551 "parser_cocci_menhir.ml" + let r : 'tv_fninfo_nt = Obj.magic r in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_r_ in + let _v : 'tv_fninfo = +# 800 "parser_cocci_menhir.mly" + ( (Ast0.FType(t))::r ) +# 14468 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12559,50 +14476,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = r00; - MenhirLib.EngineTypes.startp = _startpos_r00_; - MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let p : ( -# 64 "parser_cocci_menhir.mly" - (Parse_aux.info) -# 12577 "parser_cocci_menhir.ml" - ) = Obj.magic p in - let r00 : ( -# 51 "parser_cocci_menhir.mly" + let _2 : 'tv_fninfo = Obj.magic _2 in + let _1 : ( +# 31 "parser_cocci_menhir.mly" (Data.clt) -# 12582 "parser_cocci_menhir.ml" - ) = Obj.magic r00 in - let _startpos = _startpos_r00_ in - let _endpos = _endpos_p_ in - let _v : 'tv_generic_ctype_full = let q = - let r0 = r00 in - let s = - let r = r0 in - -# 582 "parser_cocci_menhir.mly" - ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) ) -# 12593 "parser_cocci_menhir.ml" - - in - -# 585 "parser_cocci_menhir.mly" - ( function x -> s (Some x) ) -# 12599 "parser_cocci_menhir.ml" - - in - -# 500 "parser_cocci_menhir.mly" - ( let (nm,pure,clt) = p in - q (Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure))) ) -# 12606 "parser_cocci_menhir.ml" +# 14495 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_fninfo = +# 802 "parser_cocci_menhir.mly" + ( try + let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in + raise (Semantic_cocci.Semantic "duplicate inline") + with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 ) +# 14505 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12614,31 +14513,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let p : ( -# 64 "parser_cocci_menhir.mly" - (Parse_aux.info) -# 12627 "parser_cocci_menhir.ml" - ) = Obj.magic p in - let _startpos = _startpos_p_ in - let _endpos = _endpos_p_ in - let _v : 'tv_generic_ctype_full = let q = - -# 586 "parser_cocci_menhir.mly" - ( function x -> x ) -# 12635 "parser_cocci_menhir.ml" - - in - -# 500 "parser_cocci_menhir.mly" - ( let (nm,pure,clt) = p in - q (Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure))) ) -# 12642 "parser_cocci_menhir.ml" + let _2 : 'tv_fninfo = Obj.magic _2 in + let _1 : ( +# 33 "parser_cocci_menhir.mly" + (string * Data.clt) +# 14532 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_fninfo = +# 807 "parser_cocci_menhir.mly" + ( try + let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in + raise (Semantic_cocci.Semantic "multiple attributes") + with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 ) +# 14542 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12649,20 +14549,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_pure_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_ident = -# 1495 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 12666 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_fninfo_nt = +# 813 "parser_cocci_menhir.mly" + ( [] ) +# 14559 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12674,24 +14567,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : ( -# 61 "parser_cocci_menhir.mly" - (Parse_aux.idinfo) -# 12687 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : 'tv_fninfo_nt = Obj.magic _2 in + let _1 : 'tv_storage = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_ident = -# 1497 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) -# 12695 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_fninfo_nt = +# 815 "parser_cocci_menhir.mly" + ( try + let _ = + List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in + raise (Semantic_cocci.Semantic "duplicate storage") + with Not_found -> (Ast0.FStorage(_1))::_2 ) +# 14593 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12703,19 +14601,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let i : 'tv_pure_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_i_ in - let _v : 'tv_ident_or_const = -# 1449 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) ) -# 12719 "parser_cocci_menhir.ml" + let _2 : 'tv_fninfo_nt = Obj.magic _2 in + let _1 : ( +# 31 "parser_cocci_menhir.mly" + (Data.clt) +# 14620 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_fninfo_nt = +# 821 "parser_cocci_menhir.mly" + ( try + let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in + raise (Semantic_cocci.Semantic "duplicate inline") + with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 ) +# 14630 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12727,24 +14638,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in + let _2 : 'tv_fninfo_nt = Obj.magic _2 in let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 12740 "parser_cocci_menhir.ml" +# 33 "parser_cocci_menhir.mly" + (string * Data.clt) +# 14657 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_ident_or_const = -# 1451 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 12748 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_fninfo_nt = +# 826 "parser_cocci_menhir.mly" + ( try + let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in + raise (Semantic_cocci.Semantic "duplicate init") + with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 ) +# 14667 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_fun_after_dots = +# 1866 "parser_cocci_menhir.mly" + ([]) +# 14684 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12766,17 +14702,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 12773 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in + let _2 : 'tv_fun_after_exp = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_incl = -# 253 "parser_cocci_menhir.mly" - ( Common.Left(P.id2name _2) ) -# 12780 "parser_cocci_menhir.ml" + let _v : 'tv_fun_after_dots = +# 1867 "parser_cocci_menhir.mly" + (_2) +# 14712 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12793,22 +14725,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 79 "parser_cocci_menhir.mly" - (string) -# 12805 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in + let _2 : 'tv_fun_after_exp = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_incl = -# 254 "parser_cocci_menhir.mly" - ( Common.Right _2 ) -# 12812 "parser_cocci_menhir.ml" + let _v : 'tv_fun_after_dots = +# 1868 "parser_cocci_menhir.mly" + (Ast0.wrap(Ast0.Exp(_1))::_2) +# 14742 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12820,6 +14750,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { + MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { @@ -12830,17 +14761,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1 : 'tv_list_incl_ = Obj.magic _1 in + let _2 : 'tv_fun_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : ( -# 146 "parser_cocci_menhir.mly" - ((string,string) Common.either list) -# 12840 "parser_cocci_menhir.ml" - ) = -# 249 "parser_cocci_menhir.mly" - ( _1 ) -# 12844 "parser_cocci_menhir.ml" + let _v : 'tv_fun_after_dots = +# 1869 "parser_cocci_menhir.mly" + (_1@_2) +# 14772 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_fun_after_dots_or = +# 1876 "parser_cocci_menhir.mly" + ([]) +# 14789 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12852,27 +14797,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { + MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1 : 'tv_list_incl_ = Obj.magic _1 in + let _2 : 'tv_fun_after_exp_or = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : ( -# 146 "parser_cocci_menhir.mly" - ((string,string) Common.either list) -# 12872 "parser_cocci_menhir.ml" - ) = -# 250 "parser_cocci_menhir.mly" - ( _1 ) -# 12876 "parser_cocci_menhir.ml" + let _v : 'tv_fun_after_dots_or = +# 1877 "parser_cocci_menhir.mly" + (_2) +# 14817 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12884,31 +14825,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : ( -# 80 "parser_cocci_menhir.mly" - (string * Data.clt) -# 12897 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : 'tv_fun_after_exp_or = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_includes = -# 629 "parser_cocci_menhir.mly" - ( Ast0.wrap - (Ast0.Include(P.clt2mcode "#include" (P.drop_aft (P.id2clt _1)), - let (arity,ln,lln,offset,col,strbef,straft,pos) = - P.id2clt _1 in - let clt = - (arity,ln,lln,offset,0,strbef,straft,pos) in - P.clt2mcode - (Ast.Local (Parse_aux.str2inc (P.id2name _1))) - (P.drop_bef clt))) ) -# 12912 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_fun_after_dots_or = +# 1878 "parser_cocci_menhir.mly" + (Ast0.wrap(Ast0.Exp(_1))::_2) +# 14847 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12920,31 +14855,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : ( -# 80 "parser_cocci_menhir.mly" - (string * Data.clt) -# 12933 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : 'tv_fun_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_includes = -# 639 "parser_cocci_menhir.mly" - ( Ast0.wrap - (Ast0.Include(P.clt2mcode "#include" (P.drop_aft (P.id2clt _1)), - let (arity,ln,lln,offset,col,strbef,straft,pos) = - P.id2clt _1 in - let clt = - (arity,ln,lln,offset,0,strbef,straft,pos) in - P.clt2mcode - (Ast.NonLocal (Parse_aux.str2inc (P.id2name _1))) - (P.drop_bef clt))) ) -# 12948 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_fun_after_dots_or = +# 1879 "parser_cocci_menhir.mly" + (_1@_2) +# 14877 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12956,30 +14885,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_ctype = Obj.magic t in - let d : 'tv_defineop = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos__3_ in - let _v : 'tv_includes = -# 649 "parser_cocci_menhir.mly" - ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in - d (Ast0.wrap(Ast0.DOTS([ty]))) ) -# 12983 "parser_cocci_menhir.ml" + let _2 : 'tv_fun_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_fun_after_exp = +# 1872 "parser_cocci_menhir.mly" + (_1::_2) +# 14907 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_fun_after_exp_or = +# 1882 "parser_cocci_menhir.mly" + ([]) +# 14924 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12991,37 +14932,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let b : 'tv_toplevel_seq_start_toplevel_after_dots_ = Obj.magic b in - let _1 : 'tv_defineop = Obj.magic _1 in + let _2 : 'tv_fun_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_includes = -# 652 "parser_cocci_menhir.mly" - ( let body = - match b with - [e] -> - (match Ast0.unwrap e with - Ast0.Exp(e1) -> - [Ast0.rewrap e (Ast0.TopExp(Ast0.set_arg_exp (e1)))] - | _ -> b) - | _ -> b in - _1 (Ast0.wrap(Ast0.DOTS(body))) ) -# 13025 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_fun_after_exp_or = +# 1883 "parser_cocci_menhir.mly" + (_1::_2) +# 14954 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13032,20 +14961,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_eexpr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_initialize = -# 1064 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.InitExpr(_1)) ) -# 13049 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_fun_after_stm = +# 1861 "parser_cocci_menhir.mly" + ([]) +# 14971 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13057,39 +14979,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 13080 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_initialize_list = Obj.magic _2 in - let _1 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 13086 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : 'tv_fun_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_initialize = -# 1066 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) -# 13093 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_fun_after_stm = +# 1862 "parser_cocci_menhir.mly" + (_1::_2) +# 15001 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13112,24 +15020,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 13119 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 13124 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : 'tv_fun_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_initialize = -# 1068 "parser_cocci_menhir.mly" - ( Ast0.wrap - (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []), - P.clt2mcode "}" _2)) ) -# 13133 "parser_cocci_menhir.ml" + let _v : 'tv_fun_after_stm = +# 1863 "parser_cocci_menhir.mly" + (_1@_2) +# 15031 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13147,18 +15045,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 65 "parser_cocci_menhir.mly" - (Parse_aux.info) -# 13154 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _1 : 'tv_fun_after_stm = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_initialize = -# 1072 "parser_cocci_menhir.mly" - (let (nm,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) ) -# 13162 "parser_cocci_menhir.ml" + let _v : 'tv_fun_start = +# 1858 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DOTS(_1)) ) +# 15055 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13176,13 +15069,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in + let _1 : 'tv_pure_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_initialize2 = -# 1078 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.InitExpr(_1)) ) -# 13186 "parser_cocci_menhir.ml" + let _v : 'tv_func_ident = +# 1655 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) +# 15079 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13194,39 +15087,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 13217 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 13223 "parser_cocci_menhir.ml" +# 40 "parser_cocci_menhir.mly" + (Parse_aux.idinfo) +# 15100 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_initialize2 = -# 1080 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) -# 13230 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_func_ident = +# 1657 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) +# 15108 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13238,35 +15116,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 13256 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in let _1 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 13261 "parser_cocci_menhir.ml" +# 40 "parser_cocci_menhir.mly" + (Parse_aux.idinfo) +# 15129 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_initialize2 = -# 1082 "parser_cocci_menhir.mly" - ( Ast0.wrap - (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []), - P.clt2mcode "}" _2)) ) -# 13270 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_func_ident = +# 1660 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) ) +# 15137 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13278,35 +15145,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : 'tv_initialize2 = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 13302 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_list_designator_ = Obj.magic _1 in + let _1 : ( +# 40 "parser_cocci_menhir.mly" + (Parse_aux.idinfo) +# 15158 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_initialize2 = -# 1087 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.InitGccExt(_1,P.clt2mcode "=" _2,_3)) ) -# 13310 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_func_ident = +# 1663 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap + (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) ) +# 15167 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13318,35 +15175,87 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = rb; + MenhirLib.EngineTypes.startp = _startpos_rb_; + MenhirLib.EngineTypes.endp = _endpos_rb_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = lb; + MenhirLib.EngineTypes.startp = _startpos_lb_; + MenhirLib.EngineTypes.endp = _endpos_lb_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp; + MenhirLib.EngineTypes.startp = _startpos_rp_; + MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp; + MenhirLib.EngineTypes.startp = _startpos_lp_; + MenhirLib.EngineTypes.endp = _endpos_lp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = f; + MenhirLib.EngineTypes.startp = _startpos_f_; + MenhirLib.EngineTypes.endp = _endpos_f_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : 'tv_initialize2 = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" + let rb : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 13342 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_initialize2 = -# 1089 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) ) -# 13350 "parser_cocci_menhir.ml" +# 15227 "parser_cocci_menhir.ml" + ) = Obj.magic rb in + let b : 'tv_fun_start = Obj.magic b in + let lb : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 15233 "parser_cocci_menhir.ml" + ) = Obj.magic lb in + let rp : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 15238 "parser_cocci_menhir.ml" + ) = Obj.magic rp in + let d : 'tv_decl_list_decl_ = Obj.magic d in + let lp : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 15244 "parser_cocci_menhir.ml" + ) = Obj.magic lp in + let i : 'tv_func_ident = Obj.magic i in + let f : 'tv_fninfo = Obj.magic f in + let _startpos = _startpos_f_ in + let _endpos = _endpos_rb_ in + let _v : 'tv_fundecl = +# 784 "parser_cocci_menhir.mly" + ( P.verify_parameter_declarations (Ast0.undots d); + Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()), + f, i, + P.clt2mcode "(" lp, d, + P.clt2mcode ")" rp, + P.clt2mcode "{" lb, b, + P.clt2mcode "}" rb)) ) +# 15259 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13358,19 +15267,74 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = pt; + MenhirLib.EngineTypes.startp = _startpos_pt_; + MenhirLib.EngineTypes.endp = _endpos_pt_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp; + MenhirLib.EngineTypes.startp = _startpos_rp_; + MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp; + MenhirLib.EngineTypes.startp = _startpos_lp_; + MenhirLib.EngineTypes.endp = _endpos_lp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = id; + MenhirLib.EngineTypes.startp = _startpos_id_; + MenhirLib.EngineTypes.endp = _endpos_id_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_initialize_list_start = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_initialize_list = -# 1101 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 13374 "parser_cocci_menhir.ml" + let pt : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 15305 "parser_cocci_menhir.ml" + ) = Obj.magic pt in + let rp : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 15310 "parser_cocci_menhir.ml" + ) = Obj.magic rp in + let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in + let lp : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 15316 "parser_cocci_menhir.ml" + ) = Obj.magic lp in + let id : 'tv_func_ident = Obj.magic id in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pt_ in + let _v : 'tv_funproto = let s = + +# 39 "standard.mly" + ( None ) +# 15326 "parser_cocci_menhir.ml" + + in + +# 772 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.UnInit + (s, + Ast0.wrap + (Ast0.FunctionType(Some t, + P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), + id, P.clt2mcode ";" pt)) ) +# 15338 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13382,29 +15346,81 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pt; + MenhirLib.EngineTypes.startp = _startpos_pt_; + MenhirLib.EngineTypes.endp = _endpos_pt_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = rp; + MenhirLib.EngineTypes.startp = _startpos_rp_; + MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp; + MenhirLib.EngineTypes.startp = _startpos_lp_; + MenhirLib.EngineTypes.endp = _endpos_lp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = id; + MenhirLib.EngineTypes.startp = _startpos_id_; + MenhirLib.EngineTypes.endp = _endpos_id_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" + let pt : ( +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 13400 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_initialize2 = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_initialize_list_start = -# 1104 "parser_cocci_menhir.mly" - ( [_1;Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))] ) -# 13408 "parser_cocci_menhir.ml" +# 15389 "parser_cocci_menhir.ml" + ) = Obj.magic pt in + let rp : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 15394 "parser_cocci_menhir.ml" + ) = Obj.magic rp in + let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in + let lp : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 15400 "parser_cocci_menhir.ml" + ) = Obj.magic lp in + let id : 'tv_func_ident = Obj.magic id in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pt_ in + let _v : 'tv_funproto = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 15412 "parser_cocci_menhir.ml" + + in + +# 772 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.UnInit + (s, + Ast0.wrap + (Ast0.FunctionType(Some t, + P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), + id, P.clt2mcode ";" pt)) ) +# 15424 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13416,35 +15432,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : 'tv_initialize_list_start = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 13440 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_initialize2 = Obj.magic _1 in + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_pure_ident = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_initialize_list_start = -# 1106 "parser_cocci_menhir.mly" - ( _1::Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))::_3 ) -# 13448 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_ident = +# 1668 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) +# 15448 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13456,26 +15456,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = r; - MenhirLib.EngineTypes.startp = _startpos_r_; - MenhirLib.EngineTypes.endp = _endpos_r_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in - let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos_r_ in - let _v : 'tv_initialize_list_start = -# 1109 "parser_cocci_menhir.mly" - ( (P.mkidots "..." d):: - (List.concat(List.map (function x -> x (P.mkidots "...")) r)) ) -# 13479 "parser_cocci_menhir.ml" + let _1 : ( +# 40 "parser_cocci_menhir.mly" + (Parse_aux.idinfo) +# 15469 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_ident = +# 1670 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) +# 15477 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13488,16 +15486,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_invalid = -# 1202 "parser_cocci_menhir.mly" - ( raise (Semantic_cocci.Semantic "not matchable") ) -# 13501 "parser_cocci_menhir.ml" + let i : 'tv_pure_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_i_ in + let _v : 'tv_ident_or_const = +# 1628 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) ) +# 15501 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13508,13 +15508,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_is_expression = -# 245 "parser_cocci_menhir.mly" - ( false ) -# 13518 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 15522 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_ident_or_const = +# 1630 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) +# 15530 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13527,16 +15539,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in + let _1 : ( +# 59 "parser_cocci_menhir.mly" + (string * Data.clt) +# 15551 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_is_expression = -# 246 "parser_cocci_menhir.mly" - ( true ) -# 13540 "parser_cocci_menhir.ml" + let _v : 'tv_incl = +# 237 "parser_cocci_menhir.mly" + ( let (x,_) = _1 in Data.Include(x) ) +# 15558 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13548,9 +15566,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.startp = _startpos__1_; @@ -13558,13 +15576,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_ctype = Obj.magic t in + let _2 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 15583 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_ctype_ = -# 1846 "parser_cocci_menhir.mly" - ( Common.Left t ) -# 13568 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_incl = +# 238 "parser_cocci_menhir.mly" + ( Data.Iso(Common.Left(P.id2name _2)) ) +# 15590 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13576,9 +15598,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.startp = _startpos__1_; @@ -13586,13 +15608,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_ctype = Obj.magic t in + let _2 : ( +# 58 "parser_cocci_menhir.mly" + (string) +# 15615 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_ctype_ = -# 1847 "parser_cocci_menhir.mly" - ( Common.Right t ) -# 13596 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_incl = +# 239 "parser_cocci_menhir.mly" + ( Data.Iso(Common.Right _2) ) +# 15622 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13604,9 +15630,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.startp = _startpos__1_; @@ -13614,13 +15640,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_decl_var = Obj.magic t in + let _2 : 'tv_comma_list_pure_ident_ = Obj.magic _2 in let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_decl_var_ = -# 1846 "parser_cocci_menhir.mly" - ( Common.Left t ) -# 13624 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_incl = +# 241 "parser_cocci_menhir.mly" + ( let names = List.map P.id2name _2 in + (* ensure that the names of virtual and real rules don't overlap *) + List.iter + (function name -> Hashtbl.add Data.all_metadecls name []) + names; + Data.Virt(names) ) +# 15655 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13632,23 +15663,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_decl_var = Obj.magic t in + let _1 : 'tv_list_incl_ = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_decl_var_ = -# 1847 "parser_cocci_menhir.mly" - ( Common.Right t ) -# 13652 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : ( +# 127 "parser_cocci_menhir.mly" + (Data.incl_iso list) +# 15683 "parser_cocci_menhir.ml" + ) = +# 233 "parser_cocci_menhir.mly" + ( _1 ) +# 15687 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13660,23 +15695,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_dexpr = Obj.magic t in + let _1 : 'tv_list_incl_ = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_dexpr_ = -# 1846 "parser_cocci_menhir.mly" - ( Common.Left t ) -# 13680 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : ( +# 127 "parser_cocci_menhir.mly" + (Data.incl_iso list) +# 15715 "parser_cocci_menhir.ml" + ) = +# 234 "parser_cocci_menhir.mly" + ( _1 ) +# 15719 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13688,23 +15727,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let t : 'tv_dexpr = Obj.magic t in + let _1 : ( +# 59 "parser_cocci_menhir.mly" + (string * Data.clt) +# 15740 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_dexpr_ = -# 1847 "parser_cocci_menhir.mly" - ( Common.Right t ) -# 13708 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_includes = +# 660 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.Include(P.clt2mcode "#include" + (P.drop_pos (P.drop_aft (P.id2clt _1))), + let (arity,ln,lln,offset,col,strbef,straft,pos) = + P.id2clt _1 in + let clt = + (arity,ln,lln,offset,0,strbef,straft,pos) in + P.clt2mcode + (Ast.Local (Parse_aux.str2inc (P.id2name _1))) + (P.drop_bef clt))) ) +# 15756 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13716,23 +15764,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let t : 'tv_nest_start = Obj.magic t in + let _1 : ( +# 59 "parser_cocci_menhir.mly" + (string * Data.clt) +# 15777 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_nest_start_ = -# 1846 "parser_cocci_menhir.mly" - ( Common.Left t ) -# 13736 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_includes = +# 671 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.Include(P.clt2mcode "#include" + (P.drop_pos (P.drop_aft (P.id2clt _1))), + let (arity,ln,lln,offset,col,strbef,straft,pos) = + P.id2clt _1 in + let clt = + (arity,ln,lln,offset,0,strbef,straft,pos) in + P.clt2mcode + (Ast.NonLocal (Parse_aux.str2inc (P.id2name _1))) + (P.drop_bef clt))) ) +# 15793 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13744,23 +15801,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let t : 'tv_nest_start = Obj.magic t in - let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_nest_start_ = -# 1847 "parser_cocci_menhir.mly" - ( Common.Right t ) -# 13764 "parser_cocci_menhir.ml" + let d : 'tv_defineop = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos__2_ in + let _v : 'tv_includes = +# 682 "parser_cocci_menhir.mly" + ( d (Ast0.wrap(Ast0.DOTS([]))) ) +# 15821 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13772,23 +15829,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let t : 'tv_single_statement = Obj.magic t in - let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_single_statement_ = -# 1846 "parser_cocci_menhir.mly" - ( Common.Left t ) -# 13792 "parser_cocci_menhir.ml" + let t : 'tv_ctype = Obj.magic t in + let d : 'tv_defineop = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos__3_ in + let _v : 'tv_includes = +# 684 "parser_cocci_menhir.mly" + ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in + d (Ast0.wrap(Ast0.DOTS([ty]))) ) +# 15856 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13800,23 +15864,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let t : 'tv_single_statement = Obj.magic t in + let b : 'tv_toplevel_seq_start_toplevel_after_dots_ = Obj.magic b in + let _1 : 'tv_defineop = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos_t_ in - let _v : 'tv_iso_single_statement_ = -# 1847 "parser_cocci_menhir.mly" - ( Common.Right t ) -# 13820 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_includes = +# 687 "parser_cocci_menhir.mly" + ( let body = + match b with + [e] -> + (match Ast0.unwrap e with + Ast0.Exp(e1) -> + [Ast0.rewrap e (Ast0.TopExp(Ast0.set_arg_exp (e1)))] + | _ -> b) + | _ -> b in + _1 (Ast0.wrap(Ast0.DOTS(body))) ) +# 15898 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13828,37 +15906,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = el; - MenhirLib.EngineTypes.startp = _startpos_el_; - MenhirLib.EngineTypes.endp = _endpos_el_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let el : 'tv_list_iso_dexpr__ = Obj.magic el in - let e1 : 'tv_dexpr = Obj.magic e1 in + let _1 : 'tv_eexpr = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : ( -# 162 "parser_cocci_menhir.mly" - (Ast0_cocci.anything list list) -# 13858 "parser_cocci_menhir.ml" - ) = -# 1818 "parser_cocci_menhir.mly" - ( P.iso_adjust (function x -> Ast0.ExprTag x) e1 el ) -# 13862 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_initialize = +# 1097 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.InitExpr(_1)) ) +# 15922 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13870,37 +15930,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = el; - MenhirLib.EngineTypes.startp = _startpos_el_; - MenhirLib.EngineTypes.endp = _endpos_el_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let el : 'tv_list_iso_dexpr__ = Obj.magic el in - let e1 : 'tv_dexpr = Obj.magic e1 in + let _3 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 15953 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_initialize_list = Obj.magic _2 in + let _1 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 15959 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : ( -# 162 "parser_cocci_menhir.mly" - (Ast0_cocci.anything list list) -# 13900 "parser_cocci_menhir.ml" - ) = -# 1820 "parser_cocci_menhir.mly" - ( P.iso_adjust (function x -> Ast0.ArgExprTag x) e1 el ) -# 13904 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_initialize = +# 1099 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) +# 15966 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13912,37 +15974,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = el; - MenhirLib.EngineTypes.startp = _startpos_el_; - MenhirLib.EngineTypes.endp = _endpos_el_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let el : 'tv_list_iso_dexpr__ = Obj.magic el in - let e1 : 'tv_dexpr = Obj.magic e1 in + let _2 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 15992 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 15997 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : ( -# 162 "parser_cocci_menhir.mly" - (Ast0_cocci.anything list list) -# 13942 "parser_cocci_menhir.ml" - ) = -# 1822 "parser_cocci_menhir.mly" - ( P.iso_adjust (function x -> Ast0.TestExprTag x) e1 el ) -# 13946 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_initialize = +# 1101 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []), + P.clt2mcode "}" _2)) ) +# 16006 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13954,37 +16014,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = sl; - MenhirLib.EngineTypes.startp = _startpos_sl_; - MenhirLib.EngineTypes.endp = _endpos_sl_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = s1; - MenhirLib.EngineTypes.startp = _startpos_s1_; - MenhirLib.EngineTypes.endp = _endpos_s1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let sl : 'tv_list_iso_single_statement__ = Obj.magic sl in - let s1 : 'tv_single_statement = Obj.magic s1 in + let _1 : ( +# 44 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 16027 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : ( -# 162 "parser_cocci_menhir.mly" - (Ast0_cocci.anything list list) -# 13984 "parser_cocci_menhir.ml" - ) = -# 1824 "parser_cocci_menhir.mly" - ( P.iso_adjust (function x -> Ast0.StmtTag x) s1 sl ) -# 13988 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_initialize = +# 1105 "parser_cocci_menhir.mly" + (let (nm,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) ) +# 16035 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13996,37 +16043,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = tl; - MenhirLib.EngineTypes.startp = _startpos_tl_; - MenhirLib.EngineTypes.endp = _endpos_tl_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t1; - MenhirLib.EngineTypes.startp = _startpos_t1_; - MenhirLib.EngineTypes.endp = _endpos_t1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let tl : 'tv_list_iso_ctype__ = Obj.magic tl in - let t1 : 'tv_ctype = Obj.magic t1 in + let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : ( -# 162 "parser_cocci_menhir.mly" - (Ast0_cocci.anything list list) -# 14026 "parser_cocci_menhir.ml" - ) = -# 1826 "parser_cocci_menhir.mly" - ( P.iso_adjust (function x -> Ast0.TypeCTag x) t1 tl ) -# 14030 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_initialize2 = +# 1111 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.InitExpr(_1)) ) +# 16059 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14038,37 +16067,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = el; - MenhirLib.EngineTypes.startp = _startpos_el_; - MenhirLib.EngineTypes.endp = _endpos_el_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let el : 'tv_list_iso_nest_start__ = Obj.magic el in - let e1 : 'tv_nest_start = Obj.magic e1 in + let _3 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 16090 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_initialize_list = Obj.magic _2 in + let _1 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 16096 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : ( -# 162 "parser_cocci_menhir.mly" - (Ast0_cocci.anything list list) -# 14068 "parser_cocci_menhir.ml" - ) = -# 1828 "parser_cocci_menhir.mly" - ( P.iso_adjust (function x -> Ast0.DotsStmtTag x) e1 el ) -# 14072 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_initialize2 = +# 1113 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) +# 16103 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14080,50 +16111,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = dl; - MenhirLib.EngineTypes.startp = _startpos_dl_; - MenhirLib.EngineTypes.endp = _endpos_dl_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d1; - MenhirLib.EngineTypes.startp = _startpos_d1_; - MenhirLib.EngineTypes.endp = _endpos_d1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let dl : 'tv_list_iso_decl_var__ = Obj.magic dl in - let d1 : 'tv_decl_var = Obj.magic d1 in + let _2 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 16129 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 16134 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : ( -# 162 "parser_cocci_menhir.mly" - (Ast0_cocci.anything list list) -# 14110 "parser_cocci_menhir.ml" - ) = -# 1830 "parser_cocci_menhir.mly" - ( let check_one = function - [x] -> x - | _ -> - raise - (Semantic_cocci.Semantic - "only one variable per declaration in an isomorphism rule") in - let d1 = check_one d1 in - let dl = - List.map - (function - Common.Left x -> Common.Left(check_one x) - | Common.Right x -> Common.Right(check_one x)) - dl in - P.iso_adjust (function x -> Ast0.DeclTag x) d1 dl ) -# 14127 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_initialize2 = +# 1115 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []), + P.clt2mcode "}" _2)) ) +# 16143 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14135,23 +16151,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let m : 'tv_metadec = Obj.magic m in - let _startpos = _startpos_m_ in - let _endpos = _endpos_m_ in - let _v : ( -# 165 "parser_cocci_menhir.mly" - ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 14151 "parser_cocci_menhir.ml" - ) = -# 182 "parser_cocci_menhir.mly" - ( m "" ) -# 14155 "parser_cocci_menhir.ml" + let _3 : 'tv_initialize2 = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 16175 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_list_designator_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_initialize2 = +# 1120 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.InitGccExt(_1,P.clt2mcode "=" _2,_3)) ) +# 16183 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14163,27 +16191,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = nm; - MenhirLib.EngineTypes.startp = _startpos_nm_; - MenhirLib.EngineTypes.endp = _endpos_nm_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let nm : 'tv_pure_ident = Obj.magic nm in - let _startpos = _startpos_nm_ in - let _endpos = _endpos__2_ in - let _v : ( -# 149 "parser_cocci_menhir.mly" - (Ast_cocci.rulename) -# 14183 "parser_cocci_menhir.ml" - ) = -# 197 "parser_cocci_menhir.mly" - ( P.make_iso_rule_name_result (P.id2name nm) ) -# 14187 "parser_cocci_menhir.ml" + let _3 : 'tv_initialize2 = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 16215 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_ident = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_initialize2 = +# 1122 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) ) +# 16223 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14201,17 +16237,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 59 "parser_cocci_menhir.mly" - (string * Data.clt) -# 14208 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _1 : 'tv_initialize_list_start = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_iter_ident = -# 1509 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 14215 "parser_cocci_menhir.ml" + let _v : 'tv_initialize_list = +# 1134 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DOTS(_1)) ) +# 16247 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14223,24 +16255,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : ( -# 62 "parser_cocci_menhir.mly" - (Parse_aux.idinfo) -# 14236 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 16273 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_initialize2 = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_iter_ident = -# 1511 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) -# 14244 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_initialize_list_start = +# 1137 "parser_cocci_menhir.mly" + ( [_1;Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))] ) +# 16281 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14251,13 +16288,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_TMul_ = -# 114 "standard.mly" - ( [] ) -# 14261 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_initialize_list_start = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 16313 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_initialize2 = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_initialize_list_start = +# 1139 "parser_cocci_menhir.mly" + ( _1::Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))::_3 ) +# 16321 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14269,29 +16329,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_TMul_ = Obj.magic xs in - let x : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 14288 "parser_cocci_menhir.ml" - ) = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_TMul_ = -# 116 "standard.mly" - ( x :: xs ) -# 14295 "parser_cocci_menhir.ml" + let _2 : 'tv_initialize_list_start = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_initialize_list_start = +# 1141 "parser_cocci_menhir.mly" + ( _2 ) +# 16349 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14302,13 +16356,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_array_dec_ = -# 114 "standard.mly" - ( [] ) -# 14312 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in + let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos_r_ in + let _v : 'tv_initialize_list_start = +# 1144 "parser_cocci_menhir.mly" + ( (P.mkidots "..." d):: + (List.concat(List.map (function x -> x (P.mkidots "...")) r)) ) +# 16380 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14320,25 +16388,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let xs : 'tv_list_array_dec_ = Obj.magic xs in - let x : 'tv_array_dec = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_array_dec_ = -# 116 "standard.mly" - ( x :: xs ) -# 14342 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_invalid = +# 1239 "parser_cocci_menhir.mly" + ( raise (Semantic_cocci.Semantic "not matchable") ) +# 16402 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14352,10 +16412,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_case_line_ = -# 114 "standard.mly" - ( [] ) -# 14359 "parser_cocci_menhir.ml" + let _v : 'tv_is_expression = +# 229 "parser_cocci_menhir.mly" + ( false ) +# 16419 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14367,25 +16427,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let xs : 'tv_list_case_line_ = Obj.magic xs in - let x : 'tv_case_line = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_case_line_ = -# 116 "standard.mly" - ( x :: xs ) -# 14389 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_is_expression = +# 230 "parser_cocci_menhir.mly" + ( true ) +# 16441 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14396,13 +16448,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_comma_decls_TEllipsis_decl__ = -# 114 "standard.mly" - ( [] ) -# 14406 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_ctype_ = +# 2031 "parser_cocci_menhir.mly" + ( Common.Left t ) +# 16469 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14414,25 +16477,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_comma_decls_TEllipsis_decl__ = Obj.magic xs in - let x : 'tv_comma_decls_TEllipsis_decl_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_comma_decls_TEllipsis_decl__ = -# 116 "standard.mly" - ( x :: xs ) -# 14436 "parser_cocci_menhir.ml" + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_ctype_ = +# 2032 "parser_cocci_menhir.mly" + ( Common.Right t ) +# 16497 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14443,13 +16504,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = -# 114 "standard.mly" - ( [] ) -# 14453 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let t : 'tv_decl_var = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_decl_var_ = +# 2031 "parser_cocci_menhir.mly" + ( Common.Left t ) +# 16525 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14461,25 +16533,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = Obj.magic xs in - let x : 'tv_comma_decls_TEllipsis_name_opt_decl_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = -# 116 "standard.mly" - ( x :: xs ) -# 14483 "parser_cocci_menhir.ml" + let t : 'tv_decl_var = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_decl_var_ = +# 2032 "parser_cocci_menhir.mly" + ( Common.Right t ) +# 16553 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14490,13 +16560,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_designator_ = -# 114 "standard.mly" - ( [] ) -# 14500 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let t : 'tv_eexpr = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_eexpr_ = +# 2031 "parser_cocci_menhir.mly" + ( Common.Left t ) +# 16581 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14508,25 +16589,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_designator_ = Obj.magic xs in - let x : 'tv_designator = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_designator_ = -# 116 "standard.mly" - ( x :: xs ) -# 14530 "parser_cocci_menhir.ml" + let t : 'tv_eexpr = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_eexpr_ = +# 2032 "parser_cocci_menhir.mly" + ( Common.Right t ) +# 16609 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14537,13 +16616,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_dp_comma_args_TEllipsis__ = -# 114 "standard.mly" - ( [] ) -# 14547 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let t : 'tv_nest_start = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_nest_start_ = +# 2031 "parser_cocci_menhir.mly" + ( Common.Left t ) +# 16637 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14555,42 +16645,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_dp_comma_args_TEllipsis__ = Obj.magic xs in - let x : 'tv_dp_comma_args_TEllipsis_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_dp_comma_args_TEllipsis__ = -# 116 "standard.mly" - ( x :: xs ) -# 14577 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_incl_ = -# 114 "standard.mly" - ( [] ) -# 14594 "parser_cocci_menhir.ml" + let t : 'tv_nest_start = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_nest_start_ = +# 2032 "parser_cocci_menhir.mly" + ( Common.Right t ) +# 16665 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14602,25 +16673,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_incl_ = Obj.magic xs in - let x : 'tv_incl = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_incl_ = -# 116 "standard.mly" - ( x :: xs ) -# 14624 "parser_cocci_menhir.ml" + let t : 'tv_single_statement = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_single_statement_ = +# 2031 "parser_cocci_menhir.mly" + ( Common.Left t ) +# 16693 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14631,13 +16700,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_iso_ctype__ = -# 114 "standard.mly" - ( [] ) -# 14641 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let t : 'tv_single_statement = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_t_ in + let _v : 'tv_iso_single_statement_ = +# 2032 "parser_cocci_menhir.mly" + ( Common.Right t ) +# 16721 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14649,25 +16729,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = el; + MenhirLib.EngineTypes.startp = _startpos_el_; + MenhirLib.EngineTypes.endp = _endpos_el_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let xs : 'tv_list_iso_ctype__ = Obj.magic xs in - let x : 'tv_iso_ctype_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_iso_ctype__ = -# 116 "standard.mly" - ( x :: xs ) -# 14671 "parser_cocci_menhir.ml" + let el : 'tv_list_iso_eexpr__ = Obj.magic el in + let e1 : 'tv_eexpr = Obj.magic e1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : ( +# 143 "parser_cocci_menhir.mly" + (Ast0_cocci.anything list list) +# 16759 "parser_cocci_menhir.ml" + ) = +# 1999 "parser_cocci_menhir.mly" + ( let fn x = Ast0.ExprTag x in P.iso_adjust fn fn e1 el ) +# 16763 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14678,13 +16770,38 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_iso_decl_var__ = -# 114 "standard.mly" - ( [] ) -# 14688 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = el; + MenhirLib.EngineTypes.startp = _startpos_el_; + MenhirLib.EngineTypes.endp = _endpos_el_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let el : 'tv_list_iso_eexpr__ = Obj.magic el in + let e1 : 'tv_eexpr = Obj.magic e1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : ( +# 143 "parser_cocci_menhir.mly" + (Ast0_cocci.anything list list) +# 16801 "parser_cocci_menhir.ml" + ) = +# 2001 "parser_cocci_menhir.mly" + ( let fn x = Ast0.ArgExprTag x in P.iso_adjust fn fn e1 el ) +# 16805 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14696,25 +16813,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = el; + MenhirLib.EngineTypes.startp = _startpos_el_; + MenhirLib.EngineTypes.endp = _endpos_el_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let xs : 'tv_list_iso_decl_var__ = Obj.magic xs in - let x : 'tv_iso_decl_var_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_iso_decl_var__ = -# 116 "standard.mly" - ( x :: xs ) -# 14718 "parser_cocci_menhir.ml" + let el : 'tv_list_iso_eexpr__ = Obj.magic el in + let e1 : 'tv_eexpr = Obj.magic e1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : ( +# 143 "parser_cocci_menhir.mly" + (Ast0_cocci.anything list list) +# 16843 "parser_cocci_menhir.ml" + ) = +# 2003 "parser_cocci_menhir.mly" + ( let fn x = Ast0.TestExprTag x in P.iso_adjust fn fn e1 el ) +# 16847 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14725,13 +16854,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_iso_dexpr__ = -# 114 "standard.mly" - ( [] ) -# 14735 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = el; + MenhirLib.EngineTypes.startp = _startpos_el_; + MenhirLib.EngineTypes.endp = _endpos_el_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let el : 'tv_list_iso_eexpr__ = Obj.magic el in + let e1 : 'tv_eexpr = Obj.magic e1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : ( +# 143 "parser_cocci_menhir.mly" + (Ast0_cocci.anything list list) +# 16885 "parser_cocci_menhir.ml" + ) = +# 2005 "parser_cocci_menhir.mly" + ( let ffn x = Ast0.ExprTag x in + let fn x = Ast0.TestExprTag x in + P.iso_adjust ffn fn e1 el ) +# 16891 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14743,25 +16899,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = sl; + MenhirLib.EngineTypes.startp = _startpos_sl_; + MenhirLib.EngineTypes.endp = _endpos_sl_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s1; + MenhirLib.EngineTypes.startp = _startpos_s1_; + MenhirLib.EngineTypes.endp = _endpos_s1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let xs : 'tv_list_iso_dexpr__ = Obj.magic xs in - let x : 'tv_iso_dexpr_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_iso_dexpr__ = -# 116 "standard.mly" - ( x :: xs ) -# 14765 "parser_cocci_menhir.ml" + let sl : 'tv_list_iso_single_statement__ = Obj.magic sl in + let s1 : 'tv_single_statement = Obj.magic s1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : ( +# 143 "parser_cocci_menhir.mly" + (Ast0_cocci.anything list list) +# 16929 "parser_cocci_menhir.ml" + ) = +# 2009 "parser_cocci_menhir.mly" + ( let fn x = Ast0.StmtTag x in P.iso_adjust fn fn s1 sl ) +# 16933 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14772,13 +16940,38 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_iso_nest_start__ = -# 114 "standard.mly" - ( [] ) -# 14782 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = tl; + MenhirLib.EngineTypes.startp = _startpos_tl_; + MenhirLib.EngineTypes.endp = _endpos_tl_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t1; + MenhirLib.EngineTypes.startp = _startpos_t1_; + MenhirLib.EngineTypes.endp = _endpos_t1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let tl : 'tv_list_iso_ctype__ = Obj.magic tl in + let t1 : 'tv_ctype = Obj.magic t1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : ( +# 143 "parser_cocci_menhir.mly" + (Ast0_cocci.anything list list) +# 16971 "parser_cocci_menhir.ml" + ) = +# 2011 "parser_cocci_menhir.mly" + ( let fn x = Ast0.TypeCTag x in P.iso_adjust fn fn t1 tl ) +# 16975 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14790,25 +16983,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = el; + MenhirLib.EngineTypes.startp = _startpos_el_; + MenhirLib.EngineTypes.endp = _endpos_el_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let xs : 'tv_list_iso_nest_start__ = Obj.magic xs in - let x : 'tv_iso_nest_start_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_iso_nest_start__ = -# 116 "standard.mly" - ( x :: xs ) -# 14812 "parser_cocci_menhir.ml" + let el : 'tv_list_iso_nest_start__ = Obj.magic el in + let e1 : 'tv_nest_start = Obj.magic e1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : ( +# 143 "parser_cocci_menhir.mly" + (Ast0_cocci.anything list list) +# 17013 "parser_cocci_menhir.ml" + ) = +# 2013 "parser_cocci_menhir.mly" + ( let fn x = Ast0.DotsStmtTag x in P.iso_adjust fn fn e1 el ) +# 17017 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14819,13 +17024,51 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_iso_single_statement__ = -# 114 "standard.mly" - ( [] ) -# 14829 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = dl; + MenhirLib.EngineTypes.startp = _startpos_dl_; + MenhirLib.EngineTypes.endp = _endpos_dl_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d1; + MenhirLib.EngineTypes.startp = _startpos_d1_; + MenhirLib.EngineTypes.endp = _endpos_d1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let dl : 'tv_list_iso_decl_var__ = Obj.magic dl in + let d1 : 'tv_decl_var = Obj.magic d1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : ( +# 143 "parser_cocci_menhir.mly" + (Ast0_cocci.anything list list) +# 17055 "parser_cocci_menhir.ml" + ) = +# 2015 "parser_cocci_menhir.mly" + ( let check_one = function + [x] -> x + | _ -> + raise + (Semantic_cocci.Semantic + "only one variable per declaration in an isomorphism rule") in + let d1 = check_one d1 in + let dl = + List.map + (function + Common.Left x -> Common.Left(check_one x) + | Common.Right x -> Common.Right(check_one x)) + dl in + let fn x = Ast0.DeclTag x in P.iso_adjust fn fn d1 dl ) +# 17072 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14837,25 +17080,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let m : 'tv_metadec = Obj.magic m in + let _startpos = _startpos_m_ in + let _endpos = _endpos_m_ in + let _v : ( +# 146 "parser_cocci_menhir.mly" + ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) +# 17096 "parser_cocci_menhir.ml" + ) = +# 163 "parser_cocci_menhir.mly" + ( m "" ) +# 17100 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = nm; + MenhirLib.EngineTypes.startp = _startpos_nm_; + MenhirLib.EngineTypes.endp = _endpos_nm_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_iso_single_statement__ = Obj.magic xs in - let x : 'tv_iso_single_statement_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_iso_single_statement__ = -# 116 "standard.mly" - ( x :: xs ) -# 14859 "parser_cocci_menhir.ml" + let nm : 'tv_pure_ident = Obj.magic nm in + let _startpos = _startpos_nm_ in + let _endpos = _endpos__2_ in + let _v : ( +# 130 "parser_cocci_menhir.mly" + (Ast_cocci.rulename) +# 17128 "parser_cocci_menhir.ml" + ) = +# 178 "parser_cocci_menhir.mly" + ( P.make_iso_rule_name_result (P.id2name nm) ) +# 17132 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14866,13 +17139,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_list_mzl_ctype__ = -# 114 "standard.mly" - ( [] ) -# 14876 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 17153 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_iter_ident = +# 1682 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) +# 17160 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14884,25 +17168,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let xs : 'tv_list_mzl_ctype__ = Obj.magic xs in - let x : 'tv_mzl_ctype_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_list_mzl_ctype__ = -# 116 "standard.mly" - ( x :: xs ) -# 14906 "parser_cocci_menhir.ml" + let _1 : ( +# 41 "parser_cocci_menhir.mly" + (Parse_aux.idinfo) +# 17181 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_iter_ident = +# 1684 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) +# 17189 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14916,10 +17199,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_mzl_eexpr__ = + let _v : 'tv_list_TMul_ = # 114 "standard.mly" ( [] ) -# 14923 "parser_cocci_menhir.ml" +# 17206 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14942,14 +17225,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_mzl_eexpr__ = Obj.magic xs in - let x : 'tv_mzl_eexpr_ = Obj.magic x in + let xs : 'tv_list_TMul_ = Obj.magic xs in + let x : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 17233 "parser_cocci_menhir.ml" + ) = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_mzl_eexpr__ = + let _v : 'tv_list_TMul_ = # 116 "standard.mly" ( x :: xs ) -# 14953 "parser_cocci_menhir.ml" +# 17240 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14963,10 +17250,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_mzl_fun_after_dots_or__ = + let _v : 'tv_list_array_dec_ = # 114 "standard.mly" ( [] ) -# 14970 "parser_cocci_menhir.ml" +# 17257 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14989,14 +17276,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_mzl_fun_after_dots_or__ = Obj.magic xs in - let x : 'tv_mzl_fun_after_dots_or_ = Obj.magic x in + let xs : 'tv_list_array_dec_ = Obj.magic xs in + let x : 'tv_array_dec = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_mzl_fun_after_dots_or__ = + let _v : 'tv_list_array_dec_ = # 116 "standard.mly" ( x :: xs ) -# 15000 "parser_cocci_menhir.ml" +# 17287 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15010,10 +17297,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_mzl_fun_start__ = + let _v : 'tv_list_case_line_ = # 114 "standard.mly" ( [] ) -# 15017 "parser_cocci_menhir.ml" +# 17304 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15036,14 +17323,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_mzl_fun_start__ = Obj.magic xs in - let x : 'tv_mzl_fun_start_ = Obj.magic x in + let xs : 'tv_list_case_line_ = Obj.magic xs in + let x : 'tv_case_line = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_mzl_fun_start__ = + let _v : 'tv_list_case_line_ = # 116 "standard.mly" ( x :: xs ) -# 15047 "parser_cocci_menhir.ml" +# 17334 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15057,10 +17344,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_mzl_rule_elem_statement__ = + let _v : 'tv_list_comma_decls_TEllipsis_decl__ = # 114 "standard.mly" ( [] ) -# 15064 "parser_cocci_menhir.ml" +# 17351 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15083,14 +17370,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_mzl_rule_elem_statement__ = Obj.magic xs in - let x : 'tv_mzl_rule_elem_statement_ = Obj.magic x in + let xs : 'tv_list_comma_decls_TEllipsis_decl__ = Obj.magic xs in + let x : 'tv_comma_decls_TEllipsis_decl_ = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_mzl_rule_elem_statement__ = + let _v : 'tv_list_comma_decls_TEllipsis_decl__ = # 116 "standard.mly" ( x :: xs ) -# 15094 "parser_cocci_menhir.ml" +# 17381 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15104,10 +17391,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_mzl_statement__ = + let _v : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = # 114 "standard.mly" ( [] ) -# 15111 "parser_cocci_menhir.ml" +# 17398 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15130,14 +17417,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_mzl_statement__ = Obj.magic xs in - let x : 'tv_mzl_statement_ = Obj.magic x in + let xs : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = Obj.magic xs in + let x : 'tv_comma_decls_TEllipsis_name_opt_decl_ = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_mzl_statement__ = + let _v : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = # 116 "standard.mly" ( x :: xs ) -# 15141 "parser_cocci_menhir.ml" +# 17428 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15151,10 +17438,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = + let _v : 'tv_list_decl_var_ = # 114 "standard.mly" ( [] ) -# 15158 "parser_cocci_menhir.ml" +# 17445 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15170,36 +17457,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_xs_; MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = y0; - MenhirLib.EngineTypes.startp = _startpos_y0_; - MenhirLib.EngineTypes.endp = _endpos_y0_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = Obj.magic xs in - let y0 : 'tv_dexpr = Obj.magic y0 in - let x0 : 'tv_edots_when_TEllipsis_eexpr_ = Obj.magic x0 in - let _startpos = _startpos_x0_ in + let xs : 'tv_list_decl_var_ = Obj.magic xs in + let x : 'tv_decl_var = Obj.magic x in + let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = let x = - let y = y0 in - let x = x0 in - -# 70 "standard.mly" - ( (x, y) ) -# 15197 "parser_cocci_menhir.ml" - - in - + let _v : 'tv_list_decl_var_ = # 116 "standard.mly" ( x :: xs ) -# 15203 "parser_cocci_menhir.ml" +# 17475 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15213,10 +17485,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_list_whenppdecs_ = + let _v : 'tv_list_designator_ = # 114 "standard.mly" ( [] ) -# 15220 "parser_cocci_menhir.ml" +# 17492 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15239,14 +17511,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_list_whenppdecs_ = Obj.magic xs in - let x : 'tv_whenppdecs = Obj.magic x in + let xs : 'tv_list_designator_ = Obj.magic xs in + let x : 'tv_designator = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : 'tv_list_whenppdecs_ = + let _v : 'tv_list_designator_ = # 116 "standard.mly" ( x :: xs ) -# 15250 "parser_cocci_menhir.ml" +# 17522 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15260,10 +17532,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_choose_iso_ = -# 57 "standard.mly" + let _v : 'tv_list_dp_comma_args_TEllipsis__ = +# 114 "standard.mly" ( [] ) -# 15267 "parser_cocci_menhir.ml" +# 17539 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15275,19 +17547,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_choose_iso = Obj.magic x in + let xs : 'tv_list_dp_comma_args_TEllipsis__ = Obj.magic xs in + let x : 'tv_dp_comma_args_TEllipsis_ = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_choose_iso_ = -# 59 "standard.mly" - ( x ) -# 15291 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_dp_comma_args_TEllipsis__ = +# 116 "standard.mly" + ( x :: xs ) +# 17569 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15301,10 +17579,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_disable_ = -# 57 "standard.mly" + let _v : 'tv_list_incl_ = +# 114 "standard.mly" ( [] ) -# 15308 "parser_cocci_menhir.ml" +# 17586 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15316,19 +17594,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_disable = Obj.magic x in + let xs : 'tv_list_incl_ = Obj.magic xs in + let x : 'tv_incl = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_disable_ = -# 59 "standard.mly" - ( x ) -# 15332 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_incl_ = +# 116 "standard.mly" + ( x :: xs ) +# 17616 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15342,10 +17626,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_error_words_ = -# 57 "standard.mly" + let _v : 'tv_list_iso_ctype__ = +# 114 "standard.mly" ( [] ) -# 15349 "parser_cocci_menhir.ml" +# 17633 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15357,19 +17641,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_error_words = Obj.magic x in + let xs : 'tv_list_iso_ctype__ = Obj.magic xs in + let x : 'tv_iso_ctype_ = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_error_words_ = -# 59 "standard.mly" - ( x ) -# 15373 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_iso_ctype__ = +# 116 "standard.mly" + ( x :: xs ) +# 17663 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15383,10 +17673,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_filespec_ = -# 57 "standard.mly" + let _v : 'tv_list_iso_decl_var__ = +# 114 "standard.mly" ( [] ) -# 15390 "parser_cocci_menhir.ml" +# 17680 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15398,19 +17688,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_filespec = Obj.magic x in + let xs : 'tv_list_iso_decl_var__ = Obj.magic xs in + let x : 'tv_iso_decl_var_ = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_filespec_ = -# 59 "standard.mly" - ( x ) -# 15414 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_iso_decl_var__ = +# 116 "standard.mly" + ( x :: xs ) +# 17710 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15424,10 +17720,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_minus_start_ = -# 57 "standard.mly" + let _v : 'tv_list_iso_eexpr__ = +# 114 "standard.mly" ( [] ) -# 15431 "parser_cocci_menhir.ml" +# 17727 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15439,19 +17735,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_minus_start = Obj.magic x in + let xs : 'tv_list_iso_eexpr__ = Obj.magic xs in + let x : 'tv_iso_eexpr_ = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_minus_start_ = -# 59 "standard.mly" - ( x ) -# 15455 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_iso_eexpr__ = +# 116 "standard.mly" + ( x :: xs ) +# 17757 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15465,10 +17767,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_not_ceq_ = -# 57 "standard.mly" + let _v : 'tv_list_iso_nest_start__ = +# 114 "standard.mly" ( [] ) -# 15472 "parser_cocci_menhir.ml" +# 17774 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15480,19 +17782,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_not_ceq = Obj.magic x in + let xs : 'tv_list_iso_nest_start__ = Obj.magic xs in + let x : 'tv_iso_nest_start_ = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_not_ceq_ = -# 59 "standard.mly" - ( x ) -# 15496 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_iso_nest_start__ = +# 116 "standard.mly" + ( x :: xs ) +# 17804 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15506,10 +17814,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_not_eq_ = -# 57 "standard.mly" + let _v : 'tv_list_iso_single_statement__ = +# 114 "standard.mly" ( [] ) -# 15513 "parser_cocci_menhir.ml" +# 17821 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15521,19 +17829,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_not_eq = Obj.magic x in + let xs : 'tv_list_iso_single_statement__ = Obj.magic xs in + let x : 'tv_iso_single_statement_ = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_not_eq_ = -# 59 "standard.mly" - ( x ) -# 15537 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_iso_single_statement__ = +# 116 "standard.mly" + ( x :: xs ) +# 17851 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15547,10 +17861,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_not_eqe_ = -# 57 "standard.mly" + let _v : 'tv_list_mzl_ctype__ = +# 114 "standard.mly" ( [] ) -# 15554 "parser_cocci_menhir.ml" +# 17868 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15562,19 +17876,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let x : 'tv_not_eqe = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_not_eqe_ = -# 59 "standard.mly" - ( x ) -# 15578 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let xs : 'tv_list_mzl_ctype__ = Obj.magic xs in + let x : 'tv_mzl_ctype_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_list_mzl_ctype__ = +# 116 "standard.mly" + ( x :: xs ) +# 17898 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15588,10 +17908,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_not_pos_ = -# 57 "standard.mly" + let _v : 'tv_list_mzl_eexpr__ = +# 114 "standard.mly" ( [] ) -# 15595 "parser_cocci_menhir.ml" +# 17915 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15603,19 +17923,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_not_pos = Obj.magic x in + let xs : 'tv_list_mzl_eexpr__ = Obj.magic xs in + let x : 'tv_mzl_eexpr_ = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_not_pos_ = -# 59 "standard.mly" - ( x ) -# 15619 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_mzl_eexpr__ = +# 116 "standard.mly" + ( x :: xs ) +# 17945 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15629,10 +17955,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in - let _v : 'tv_loption_plus_start_ = -# 57 "standard.mly" + let _v : 'tv_list_mzl_fun_after_dots_or__ = +# 114 "standard.mly" ( [] ) -# 15636 "parser_cocci_menhir.ml" +# 17962 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15644,19 +17970,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_plus_start = Obj.magic x in + let xs : 'tv_list_mzl_fun_after_dots_or__ = Obj.magic xs in + let x : 'tv_mzl_fun_after_dots_or_ = Obj.magic x in let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_loption_plus_start_ = -# 59 "standard.mly" - ( x ) -# 15660 "parser_cocci_menhir.ml" + let _endpos = _endpos_xs_ in + let _v : 'tv_list_mzl_fun_after_dots_or__ = +# 116 "standard.mly" + ( x :: xs ) +# 17992 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15667,20 +17999,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_t_ in - let _v : 'tv_meta_exp_type = -# 444 "parser_cocci_menhir.mly" - ( [Ast0_cocci.ast0_type_to_type t] ) -# 15684 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_list_mzl_fun_start__ = +# 114 "standard.mly" + ( [] ) +# 18009 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15692,35 +18017,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let m : 'tv_list_TMul_ = Obj.magic m in - let t : 'tv_comma_list_ctype_ = Obj.magic t in - let _startpos = _startpos__1_ in - let _endpos = _endpos_m_ in - let _v : 'tv_meta_exp_type = -# 446 "parser_cocci_menhir.mly" - ( List.map - (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m) - t ) -# 15724 "parser_cocci_menhir.ml" + let xs : 'tv_list_mzl_fun_start__ = Obj.magic xs in + let x : 'tv_mzl_fun_start_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_list_mzl_fun_start__ = +# 116 "standard.mly" + ( x :: xs ) +# 18039 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15731,34 +18046,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : 'tv_pure_ident = Obj.magic _3 in - let _1 : ( -# 47 "parser_cocci_menhir.mly" - (string) -# 15755 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_meta_ident = -# 1388 "parser_cocci_menhir.mly" - ( (Some _1,P.id2name _3) ) -# 15762 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_list_mzl_rule_elem_statement__ = +# 114 "standard.mly" + ( [] ) +# 18056 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15770,23 +18064,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let m : 'tv_metadec = Obj.magic m in - let _startpos = _startpos_m_ in - let _endpos = _endpos_m_ in - let _v : ( -# 157 "parser_cocci_menhir.mly" - ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 15786 "parser_cocci_menhir.ml" - ) = -# 181 "parser_cocci_menhir.mly" - ( m (!Ast0.rule_name) ) -# 15790 "parser_cocci_menhir.ml" + let xs : 'tv_list_mzl_rule_elem_statement__ = Obj.magic xs in + let x : 'tv_mzl_rule_elem_statement_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_list_mzl_rule_elem_statement__ = +# 116 "standard.mly" + ( x :: xs ) +# 18086 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15797,53 +18093,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = - -# 305 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta -> - let tok = check_meta(Ast.MetaFreshIdDecl(arity,name)) in - !Data.add_id_meta name [] pure; tok) ) -# 15841 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 15847 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_list_mzl_statement__ = +# 114 "standard.mly" + ( [] ) +# 18103 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15855,48 +18111,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 309 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta -> - let tok = check_meta(Ast.MetaParamDecl(arity,name)) in - !Data.add_param_meta name pure; tok) ) -# 15894 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 15900 "parser_cocci_menhir.ml" + let xs : 'tv_list_mzl_statement__ = Obj.magic xs in + let x : 'tv_mzl_statement_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_list_mzl_statement__ = +# 116 "standard.mly" + ( x :: xs ) +# 18133 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15907,53 +18140,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = - -# 313 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta -> - let tok = check_meta(Ast.MetaParamListDecl(arity,name,None)) in - !Data.add_paramlist_meta name None pure; tok) ) -# 15951 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 15957 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = +# 114 "standard.mly" + ( [] ) +# 18150 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15965,52 +18158,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.semv = y0; + MenhirLib.EngineTypes.startp = _startpos_y0_; + MenhirLib.EngineTypes.endp = _endpos_y0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = + let xs : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = Obj.magic xs in + let y0 : 'tv_dexpr = Obj.magic y0 in + let x0 : 'tv_edots_when_TEllipsis_eexpr_ = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = let x = + let y = y0 in + let x = x0 in -# 317 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta -> - let tok = check_meta(Ast.MetaExpListDecl(arity,name,None)) in - !Data.add_explist_meta name None pure; tok) ) -# 16008 "parser_cocci_menhir.ml" +# 70 "standard.mly" + ( (x, y) ) +# 18189 "parser_cocci_menhir.ml" in -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 16014 "parser_cocci_menhir.ml" +# 116 "standard.mly" + ( x :: xs ) +# 18195 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_list_whenppdecs_ = +# 114 "standard.mly" + ( [] ) +# 18212 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16022,48 +18220,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 321 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta -> - let tok = check_meta(Ast.MetaTypeDecl(arity,name)) in - !Data.add_type_meta name pure; tok) ) -# 16061 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 16067 "parser_cocci_menhir.ml" + let xs : 'tv_list_whenppdecs_ = Obj.magic xs in + let x : 'tv_whenppdecs = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_list_whenppdecs_ = +# 116 "standard.mly" + ( x :: xs ) +# 18242 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16075,48 +18250,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 325 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta -> - let tok = check_meta(Ast.MetaInitDecl(arity,name)) in - !Data.add_init_meta name pure; tok) ) -# 16114 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 16120 "parser_cocci_menhir.ml" + let _1 : 'tv_pure_ident_or_meta_ident = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_list_len = +# 310 "parser_cocci_menhir.mly" + ( Common.Left _1 ) +# 18266 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16128,48 +18274,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 329 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta -> - let tok = check_meta(Ast.MetaStmDecl(arity,name)) in - !Data.add_stm_meta name pure; tok) ) -# 16167 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 16173 "parser_cocci_menhir.ml" + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 18287 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_list_len = +# 311 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in Common.Right (int_of_string x) ) +# 18294 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16180,53 +18301,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = - -# 333 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta -> - let tok = check_meta(Ast.MetaStmListDecl(arity,name)) in - !Data.add_stmlist_meta name pure; tok) ) -# 16224 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 16230 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_loption_choose_iso_ = +# 57 "standard.mly" + ( [] ) +# 18311 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16238,49 +18319,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 337 "parser_cocci_menhir.mly" - ( (fun arity (_,name) pure check_meta -> - if arity = Ast.NONE && pure = Ast0.Impure - then (!Data.add_type_name name; []) - else raise (Semantic_cocci.Semantic "bad typedef")) ) -# 16278 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 16284 "parser_cocci_menhir.ml" + let x : 'tv_choose_iso = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_loption_choose_iso_ = +# 59 "standard.mly" + ( x ) +# 18335 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16291,54 +18342,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = - -# 342 "parser_cocci_menhir.mly" - ( (fun arity (_,name) pure check_meta -> - if arity = Ast.NONE && pure = Ast0.Impure - then (!Data.add_declarer_name name; []) - else raise (Semantic_cocci.Semantic "bad declarer")) ) -# 16336 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 16342 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_loption_disable_ = +# 57 "standard.mly" + ( [] ) +# 18352 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16350,53 +18360,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = - -# 347 "parser_cocci_menhir.mly" - ( (fun arity (_,name) pure check_meta -> - if arity = Ast.NONE && pure = Ast0.Impure - then (!Data.add_iterator_name name; []) - else raise (Semantic_cocci.Semantic "bad iterator")) ) -# 16394 "parser_cocci_menhir.ml" - - in - -# 259 "parser_cocci_menhir.mly" - ( P.create_metadec ar ispure kindfn ids ) -# 16400 "parser_cocci_menhir.ml" + let x : 'tv_disable = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_loption_disable_ = +# 59 "standard.mly" + ( x ) +# 18376 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16407,49 +18383,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 355 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaIdDecl(arity,name)) in - !Data.add_id_meta name constraints pure; tok) ) -# 16447 "parser_cocci_menhir.ml" - - in - -# 263 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16453 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_loption_filespec_ = +# 57 "standard.mly" + ( [] ) +# 18393 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16461,48 +18401,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 359 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaFuncDecl(arity,name)) in - !Data.add_func_meta name constraints pure; tok) ) -# 16500 "parser_cocci_menhir.ml" - - in - -# 263 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16506 "parser_cocci_menhir.ml" + let x : 'tv_filespec = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_loption_filespec_ = +# 59 "standard.mly" + ( x ) +# 18417 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16513,54 +18424,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = - -# 363 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaLocalFuncDecl(arity,name)) in - !Data.add_local_func_meta name constraints pure; - tok) ) -# 16558 "parser_cocci_menhir.ml" - - in - -# 263 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16564 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_loption_minus_start_ = +# 57 "standard.mly" + ( [] ) +# 18434 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16572,48 +18442,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 368 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaDeclarerDecl(arity,name)) in - !Data.add_declarer_meta name constraints pure; tok) ) -# 16611 "parser_cocci_menhir.ml" - - in - -# 263 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16617 "parser_cocci_menhir.ml" + let x : 'tv_minus_start = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_loption_minus_start_ = +# 59 "standard.mly" + ( x ) +# 18458 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16624,49 +18465,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 372 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaIteratorDecl(arity,name)) in - !Data.add_iterator_meta name constraints pure; tok) ) -# 16664 "parser_cocci_menhir.ml" - - in - -# 263 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16670 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_loption_not_pos_ = +# 57 "standard.mly" + ( [] ) +# 18475 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16678,48 +18483,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in - let _v : 'tv_metadec = let kindfn = - -# 378 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaErrDecl(arity,name)) in - !Data.add_err_meta name constraints pure; tok) ) -# 16717 "parser_cocci_menhir.ml" - - in - -# 267 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16723 "parser_cocci_menhir.ml" + let x : 'tv_not_pos = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_loption_not_pos_ = +# 59 "standard.mly" + ( x ) +# 18499 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16730,68 +18506,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l0; - MenhirLib.EngineTypes.startp = _startpos_l0_; - MenhirLib.EngineTypes.endp = _endpos_l0_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in - let l0 : 'tv_option_TLocal_ = Obj.magic l0 in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = - let l = l0 in - let ty = - -# 39 "standard.mly" - ( None ) -# 16776 "parser_cocci_menhir.ml" - - in - -# 382 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - match l with - None -> - !Data.add_idexp_meta ty name constraints pure; - check_meta(Ast.MetaIdExpDecl(arity,name,ty)) - | Some _ -> - !Data.add_local_idexp_meta ty name constraints pure; - check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 16789 "parser_cocci_menhir.ml" - - in - -# 267 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16795 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_loption_plus_start_ = +# 57 "standard.mly" + ( [] ) +# 18516 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16803,75 +18524,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = x00; - MenhirLib.EngineTypes.startp = _startpos_x00_; - MenhirLib.EngineTypes.endp = _endpos_x00_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l0; - MenhirLib.EngineTypes.startp = _startpos_l0_; - MenhirLib.EngineTypes.endp = _endpos_l0_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in - let x00 : 'tv_meta_exp_type = Obj.magic x00 in - let l0 : 'tv_option_TLocal_ = Obj.magic l0 in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__7_ in - let _v : 'tv_metadec = let kindfn = - let x0 = x00 in - let l = l0 in - let ty = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 16856 "parser_cocci_menhir.ml" - - in - -# 382 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - match l with - None -> - !Data.add_idexp_meta ty name constraints pure; - check_meta(Ast.MetaIdExpDecl(arity,name,ty)) - | Some _ -> - !Data.add_local_idexp_meta ty name constraints pure; - check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 16869 "parser_cocci_menhir.ml" - - in - -# 267 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16875 "parser_cocci_menhir.ml" + let x : 'tv_plus_start = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_loption_plus_start_ = +# 59 "standard.mly" + ( x ) +# 18540 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16883,68 +18548,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = m0; - MenhirLib.EngineTypes.startp = _startpos_m0_; - MenhirLib.EngineTypes.endp = _endpos_m0_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l0; - MenhirLib.EngineTypes.startp = _startpos_l0_; - MenhirLib.EngineTypes.endp = _endpos_l0_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in - let m0 : 'tv_nonempty_list_TMul_ = Obj.magic m0 in - let l0 : 'tv_option_TLocal_ = Obj.magic l0 in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__7_ in - let _v : 'tv_metadec = let kindfn = - let m = m0 in - let l = l0 in - -# 391 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in - match l with - None -> - !Data.add_idexp_meta ty name constraints pure; - check_meta(Ast.MetaIdExpDecl(arity,name,ty)) - | Some _ -> - !Data.add_local_idexp_meta ty name constraints pure; - check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 16942 "parser_cocci_menhir.ml" - - in - -# 267 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 16948 "parser_cocci_menhir.ml" + let t : 'tv_typedef_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_t_ in + let _v : 'tv_meta_exp_type = +# 483 "parser_cocci_menhir.mly" + ( [Ast0_cocci.ast0_type_to_type t] ) +# 18564 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16956,56 +18572,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ids; - MenhirLib.EngineTypes.startp = _startpos_ids_; - MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = m0; - MenhirLib.EngineTypes.startp = _startpos_m0_; - MenhirLib.EngineTypes.endp = _endpos_m0_; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in - let m0 : 'tv_nonempty_list_TMul_ = Obj.magic m0 in - let ispure : 'tv_pure = Obj.magic ispure in - let ar : 'tv_arity = Obj.magic ar in - let _startpos = _startpos_ar_ in - let _endpos = _endpos__6_ in - let _v : 'tv_metadec = let kindfn = - let m = m0 in - -# 401 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in - let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in - !Data.add_exp_meta ty name constraints pure; tok) ) -# 17003 "parser_cocci_menhir.ml" - - in - -# 267 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 17009 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let t : 'tv_comma_list_ctype_ = Obj.magic t in + let _startpos = _startpos__1_ in + let _endpos = _endpos_m_ in + let _v : 'tv_meta_exp_type = +# 485 "parser_cocci_menhir.mly" + ( List.map + (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m) + t ) +# 18604 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17017,60 +18612,152 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_pure_ident = Obj.magic _3 in + let _1 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 18635 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_meta_ident = +# 1451 "parser_cocci_menhir.mly" + ( (Some _1,P.id2name _3) ) +# 18642 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_pure_ident_kwd = Obj.magic _3 in + let _1 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 18673 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_meta_ident = +# 1452 "parser_cocci_menhir.mly" + ( (Some _1,_3) ) +# 18680 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let m : 'tv_metadec = Obj.magic m in + let _startpos = _startpos_m_ in + let _endpos = _endpos_m_ in + let _v : ( +# 138 "parser_cocci_menhir.mly" + ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) +# 18704 "parser_cocci_menhir.ml" + ) = +# 162 "parser_cocci_menhir.mly" + ( m (!Ast0.rule_name) ) +# 18708 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.semv = ids; MenhirLib.EngineTypes.startp = _startpos_ids_; MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = vl0; - MenhirLib.EngineTypes.startp = _startpos_vl0_; - MenhirLib.EngineTypes.endp = _endpos_vl0_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in - let vl0 : 'tv_meta_exp_type = Obj.magic vl0 in + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in let ispure : 'tv_pure = Obj.magic ispure in let ar : 'tv_arity = Obj.magic ar in let _startpos = _startpos_ar_ in - let _endpos = _endpos__7_ in + let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = - let vl = vl0 in -# 406 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let ty = Some (List.map (function x -> Type_cocci.Array x) vl) in - let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in - !Data.add_exp_meta ty name constraints pure; tok) ) -# 17068 "parser_cocci_menhir.ml" +# 322 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let tok = check_meta(Ast.MetaParamDecl(arity,name)) in + !Data.add_param_meta name pure; tok) ) +# 18755 "parser_cocci_menhir.ml" in -# 267 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 17074 "parser_cocci_menhir.ml" +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 18761 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17082,55 +18769,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.semv = ids; MenhirLib.EngineTypes.startp = _startpos_ids_; MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in let ispure : 'tv_pure = Obj.magic ispure in let ar : 'tv_arity = Obj.magic ar in let _startpos = _startpos_ar_ in - let _endpos = _endpos__5_ in + let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = - let ty = - -# 39 "standard.mly" - ( None ) -# 17120 "parser_cocci_menhir.ml" - - in -# 411 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in - !Data.add_const_meta ty name constraints pure; tok) ) -# 17128 "parser_cocci_menhir.ml" +# 326 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let len = Ast.AnyLen in + let tok = check_meta(Ast.MetaParamListDecl(arity,name,len)) in + !Data.add_paramlist_meta name len pure; tok) ) +# 18813 "parser_cocci_menhir.ml" in -# 267 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 17134 "parser_cocci_menhir.ml" +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 18819 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17149,9 +18834,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_ids_; MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = x00; - MenhirLib.EngineTypes.startp = _startpos_x00_; - MenhirLib.EngineTypes.endp = _endpos_x00_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.startp = _startpos__3_; MenhirLib.EngineTypes.endp = _endpos__3_; @@ -17171,34 +18855,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in - let x00 : 'tv_meta_exp_type = Obj.magic x00 in + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in let ispure : 'tv_pure = Obj.magic ispure in let ar : 'tv_arity = Obj.magic ar in let _startpos = _startpos_ar_ in let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = - let x0 = x00 in - let ty = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 17188 "parser_cocci_menhir.ml" - - in -# 411 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in - !Data.add_const_meta ty name constraints pure; tok) ) -# 17196 "parser_cocci_menhir.ml" +# 331 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let len = Ast.AnyLen in + let tok = check_meta(Ast.MetaExpListDecl(arity,name,len)) in + !Data.add_explist_meta name len pure; tok) ) +# 18871 "parser_cocci_menhir.ml" in -# 267 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 17202 "parser_cocci_menhir.ml" +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 18877 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17234,24 +18909,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = Obj.magic ids in + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in let ispure : 'tv_pure = Obj.magic ispure in let ar : 'tv_arity = Obj.magic ar in let _startpos = _startpos_ar_ in let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 417 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let tok = check_meta(Ast.MetaExpDecl(arity,name,None)) in - !Data.add_exp_meta None name constraints pure; tok) ) -# 17249 "parser_cocci_menhir.ml" +# 336 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let tok = check_meta(Ast.MetaTypeDecl(arity,name)) in + !Data.add_type_meta name pure; tok) ) +# 18924 "parser_cocci_menhir.ml" in -# 271 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 17255 "parser_cocci_menhir.ml" +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 18930 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17270,9 +18945,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_ids_; MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = vl0; - MenhirLib.EngineTypes.startp = _startpos_vl0_; - MenhirLib.EngineTypes.endp = _endpos_vl0_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.semv = ispure; MenhirLib.EngineTypes.startp = _startpos_ispure_; @@ -17288,42 +18962,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = Obj.magic ids in - let vl0 : 'tv_meta_exp_type = Obj.magic vl0 in + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in let ispure : 'tv_pure = Obj.magic ispure in let ar : 'tv_arity = Obj.magic ar in let _startpos = _startpos_ar_ in let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = - let vl = vl0 in -# 421 "parser_cocci_menhir.mly" - ( (fun arity name pure check_meta constraints -> - let ty = Some vl in - List.iter - (function c -> - match Ast0.unwrap c with - Ast0.Constant(_) -> - if not - (List.exists - (function - Type_cocci.BaseType(Type_cocci.IntType) -> true - | Type_cocci.BaseType(Type_cocci.ShortType) -> true - | Type_cocci.BaseType(Type_cocci.LongType) -> true - | _ -> false) - vl) - then failwith "metavariable with int constraint must be an int" - | _ -> ()) - constraints; - let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in - !Data.add_exp_meta ty name constraints pure; tok) ) -# 17321 "parser_cocci_menhir.ml" +# 340 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let tok = check_meta(Ast.MetaInitDecl(arity,name)) in + !Data.add_init_meta name pure; tok) ) +# 18977 "parser_cocci_menhir.ml" in -# 271 "parser_cocci_menhir.mly" - ( P.create_metadec_ne ar ispure kindfn ids ) -# 17327 "parser_cocci_menhir.ml" +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 18983 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17342,12 +18998,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos_ids_; MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = ar; @@ -17359,21 +19015,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_pos__ = Obj.magic ids in - let a : 'tv_option_TPosAny_ = Obj.magic a in + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in let ar : 'tv_arity = Obj.magic ar in let _startpos = _startpos_ar_ in let _endpos = _endpos__5_ in - let _v : 'tv_metadec = -# 277 "parser_cocci_menhir.mly" - ( (if !Data.in_generating - then failwith "position variables not allowed in a generated rule file"); - let kindfn arity name pure check_meta constraints = - let tok = check_meta(Ast.MetaPosDecl(arity,name)) in - let any = match a with None -> Ast.PER | Some _ -> Ast.ALL in - !Data.add_pos_meta name constraints any; tok in - P.create_metadec_ne ar false kindfn ids ) -# 17377 "parser_cocci_menhir.ml" + let _v : 'tv_metadec = let kindfn = + +# 344 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let tok = check_meta(Ast.MetaStmDecl(arity,name)) in + !Data.add_stm_meta name pure; tok) ) +# 19030 "parser_cocci_menhir.ml" + + in + +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 19036 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17385,62 +19044,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__9_; - MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.semv = ids; MenhirLib.EngineTypes.startp = _startpos_ids_; MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = id; - MenhirLib.EngineTypes.startp = _startpos_id_; - MenhirLib.EngineTypes.endp = _endpos_id_; + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let id : 'tv_pure_ident_or_meta_ident = Obj.magic id in let ispure : 'tv_pure = Obj.magic ispure in let ar : 'tv_arity = Obj.magic ar in let _startpos = _startpos_ar_ in - let _endpos = _endpos__9_ in - let _v : 'tv_metadec = -# 287 "parser_cocci_menhir.mly" - ( P.create_len_metadec ar ispure - (fun lenname arity name pure check_meta -> - let tok = - check_meta(Ast.MetaParamListDecl(arity,name,Some lenname)) in - !Data.add_paramlist_meta name (Some lenname) pure; tok) - id ids ) -# 17444 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 348 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let tok = check_meta(Ast.MetaDeclDecl(arity,name)) in + !Data.add_decl_meta name pure; tok) ) +# 19083 "parser_cocci_menhir.ml" + + in + +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 19089 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17452,62 +19097,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__9_; - MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.semv = ids; MenhirLib.EngineTypes.startp = _startpos_ids_; MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = id; - MenhirLib.EngineTypes.startp = _startpos_id_; - MenhirLib.EngineTypes.endp = _endpos_id_; + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ispure; - MenhirLib.EngineTypes.startp = _startpos_ispure_; - MenhirLib.EngineTypes.endp = _endpos_ispure_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ar; - MenhirLib.EngineTypes.startp = _startpos_ar_; - MenhirLib.EngineTypes.endp = _endpos_ar_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in - let id : 'tv_pure_ident_or_meta_ident = Obj.magic id in let ispure : 'tv_pure = Obj.magic ispure in let ar : 'tv_arity = Obj.magic ar in let _startpos = _startpos_ar_ in - let _endpos = _endpos__9_ in - let _v : 'tv_metadec = -# 296 "parser_cocci_menhir.mly" - ( P.create_len_metadec ar ispure - (fun lenname arity name pure check_meta -> - let tok = - check_meta(Ast.MetaExpListDecl(arity,name,Some lenname)) in - !Data.add_explist_meta name (Some lenname) pure; tok) - id ids ) -# 17511 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 352 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let tok = check_meta(Ast.MetaFieldDecl(arity,name)) in + !Data.add_field_meta name pure; tok) ) +# 19136 "parser_cocci_menhir.ml" + + in + +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 19142 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17519,25 +19150,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_list_mzl_ctype__ = Obj.magic b in - let a : 'tv_ctype = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_midzero_list_ctype_ctype_ = -# 1788 "parser_cocci_menhir.mly" - ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 17541 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__6_ in + let _v : 'tv_metadec = let kindfn = + +# 356 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta -> + let tok = check_meta(Ast.MetaStmListDecl(arity,name)) in + !Data.add_stmlist_meta name pure; tok) ) +# 19193 "parser_cocci_menhir.ml" + + in + +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 19199 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17549,25 +19207,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_list_mzl_eexpr__ = Obj.magic b in - let a : 'tv_eexpr = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_midzero_list_eexpr_eexpr_ = -# 1788 "parser_cocci_menhir.mly" - ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 17571 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 360 "parser_cocci_menhir.mly" + ( (fun arity (_,name) pure check_meta -> + if arity = Ast.NONE && pure = Ast0.Impure + then (!Data.add_type_name name; []) + else raise (Semantic_cocci.Semantic "bad typedef")) ) +# 19247 "parser_cocci_menhir.ml" + + in + +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 19253 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17579,55 +19261,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_list_mzl_eexpr__ = Obj.magic b in - let a : 'tv_expr = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_midzero_list_expr_eexpr_ = -# 1788 "parser_cocci_menhir.mly" - ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 17601 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let b : 'tv_list_mzl_fun_after_dots_or__ = Obj.magic b in - let a : 'tv_fun_after_stm = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = -# 1788 "parser_cocci_menhir.mly" - ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 17631 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__6_ in + let _v : 'tv_metadec = let kindfn = + +# 365 "parser_cocci_menhir.mly" + ( (fun arity (_,name) pure check_meta -> + if arity = Ast.NONE && pure = Ast0.Impure + then (!Data.add_declarer_name name; []) + else raise (Semantic_cocci.Semantic "bad declarer")) ) +# 19305 "parser_cocci_menhir.ml" + + in + +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 19311 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17639,25 +19319,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_list_mzl_fun_start__ = Obj.magic b in - let a : 'tv_fun_start = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_midzero_list_fun_start_fun_start_ = -# 1788 "parser_cocci_menhir.mly" - ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 17661 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__6_ in + let _v : 'tv_metadec = let kindfn = + +# 370 "parser_cocci_menhir.mly" + ( (fun arity (_,name) pure check_meta -> + if arity = Ast.NONE && pure = Ast0.Impure + then (!Data.add_iterator_name name; []) + else raise (Semantic_cocci.Semantic "bad iterator")) ) +# 19363 "parser_cocci_menhir.ml" + + in + +# 251 "parser_cocci_menhir.mly" + ( P.create_metadec ar ispure kindfn ids ) +# 19369 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17669,25 +19377,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let b : 'tv_list_mzl_rule_elem_statement__ = Obj.magic b in - let a : 'tv_rule_elem_statement = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = -# 1788 "parser_cocci_menhir.mly" - ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 17691 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_seed_ = Obj.magic ids in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_metadec = let kindfn = + +# 315 "parser_cocci_menhir.mly" + ( (fun name check_meta seed -> + let tok = check_meta(Ast.MetaFreshIdDecl(name,seed)) in + !Data.add_fresh_id_meta name; tok) ) +# 19408 "parser_cocci_menhir.ml" + + in + +# 254 "parser_cocci_menhir.mly" + ( P.create_fresh_metadec kindfn ids ) +# 19414 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17699,25 +19422,62 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_list_mzl_statement__ = Obj.magic b in - let a : 'tv_statement = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_midzero_list_statement_statement_ = -# 1788 "parser_cocci_menhir.mly" - ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 17721 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 377 "parser_cocci_menhir.mly" + ( + let idfn arity name pure check_meta constraints = + let tok = check_meta(Ast.MetaIdDecl(arity,name)) in + !Data.add_id_meta name constraints pure; tok in + let virtfn arity name pure check_meta virtual_env = + try + let vl = List.assoc name virtual_env in + !Data.add_virt_id_meta_found name vl; [] + with Not_found -> + let name = ("virtual",name) in + let tok = check_meta(Ast.MetaIdDecl(arity,name)) in + !Data.add_virt_id_meta_not_found name pure; tok in + (idfn,virtfn) ) +# 19471 "parser_cocci_menhir.ml" + + in + +# 260 "parser_cocci_menhir.mly" + ( let (normal,virt) = Common.partition_either (fun x -> x) ids in + let (idfn,virtfn) = kindfn in + function cr -> + (P.create_metadec_with_constraints ar ispure idfn normal cr) @ + (P.create_metadec_virt ar ispure virtfn virt cr) ) +# 19481 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17729,33 +19489,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ew; - MenhirLib.EngineTypes.startp = _startpos_ew_; - MenhirLib.EngineTypes.endp = _endpos_ew_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = f; - MenhirLib.EngineTypes.startp = _startpos_f_; - MenhirLib.EngineTypes.endp = _endpos_f_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let ew : 'tv_loption_error_words_ = Obj.magic ew in - let b : 'tv_loption_minus_start_ = Obj.magic b in - let f : 'tv_loption_filespec_ = Obj.magic f in - let _startpos = _startpos_f_ in - let _endpos = _endpos_ew_ in - let _v : 'tv_minus_body = -# 597 "parser_cocci_menhir.mly" - ( match f@b@ew with - [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") - | code -> Top_level.top_level code ) -# 17759 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 393 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let tok = check_meta(Ast.MetaFuncDecl(arity,name)) in + !Data.add_func_meta name constraints pure; tok) ) +# 19528 "parser_cocci_menhir.ml" + + in + +# 269 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 19534 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17767,65 +19542,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ew; - MenhirLib.EngineTypes.startp = _startpos_ew_; - MenhirLib.EngineTypes.endp = _endpos_ew_; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = f; - MenhirLib.EngineTypes.startp = _startpos_f_; - MenhirLib.EngineTypes.endp = _endpos_f_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; } = _menhir_stack in - let ew : 'tv_loption_error_words_ = Obj.magic ew in - let b : 'tv_top_eexpr = Obj.magic b in - let f : 'tv_loption_filespec_ = Obj.magic f in - let _startpos = _startpos_f_ in - let _endpos = _endpos_ew_ in - let _v : 'tv_minus_exp_body = -# 611 "parser_cocci_menhir.mly" - ( match f@[b]@ew with - [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") - | code -> Top_level.top_level code ) -# 17797 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _1 : 'tv_minus_exp_body = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : ( -# 137 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 17825 "parser_cocci_menhir.ml" - ) = -# 177 "parser_cocci_menhir.mly" - ( _1 ) -# 17829 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__6_ in + let _v : 'tv_metadec = let kindfn = + +# 397 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let tok = check_meta(Ast.MetaLocalFuncDecl(arity,name)) in + !Data.add_local_func_meta name constraints pure; + tok) ) +# 19586 "parser_cocci_menhir.ml" + + in + +# 269 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 19592 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17837,27 +19600,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let m : 'tv_minus_exp_body = Obj.magic m in - let _startpos = _startpos_m_ in - let _endpos = _endpos__2_ in - let _v : ( -# 137 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 17857 "parser_cocci_menhir.ml" - ) = -# 177 "parser_cocci_menhir.mly" - ( m ) -# 17861 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 402 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let tok = check_meta(Ast.MetaDeclarerDecl(arity,name)) in + !Data.add_declarer_meta name constraints pure; tok) ) +# 19639 "parser_cocci_menhir.ml" + + in + +# 269 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 19645 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17869,27 +19653,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let m : 'tv_minus_exp_body = Obj.magic m in - let _startpos = _startpos_m_ in - let _endpos = _endpos__2_ in - let _v : ( -# 137 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 17889 "parser_cocci_menhir.ml" - ) = -# 178 "parser_cocci_menhir.mly" - ( m ) -# 17893 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 406 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let tok = check_meta(Ast.MetaIteratorDecl(arity,name)) in + !Data.add_iterator_meta name constraints pure; tok) ) +# 19692 "parser_cocci_menhir.ml" + + in + +# 269 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 19698 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17901,27 +19706,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _1 : 'tv_minus_body = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : ( -# 134 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 17921 "parser_cocci_menhir.ml" - ) = -# 173 "parser_cocci_menhir.mly" - ( _1 ) -# 17925 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 412 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let tok = check_meta(Ast.MetaErrDecl(arity,name)) in + !Data.add_err_meta name constraints pure; tok) ) +# 19745 "parser_cocci_menhir.ml" + + in + +# 274 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 19751 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17933,27 +19759,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l0; + MenhirLib.EngineTypes.startp = _startpos_l0_; + MenhirLib.EngineTypes.endp = _endpos_l0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let m : 'tv_minus_body = Obj.magic m in - let _startpos = _startpos_m_ in - let _endpos = _endpos__2_ in - let _v : ( -# 134 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 17953 "parser_cocci_menhir.ml" - ) = -# 173 "parser_cocci_menhir.mly" - ( m ) -# 17957 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in + let l0 : 'tv_option_TLocal_ = Obj.magic l0 in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__6_ in + let _v : 'tv_metadec = let kindfn = + let l = l0 in + let ty = + +# 39 "standard.mly" + ( None ) +# 19804 "parser_cocci_menhir.ml" + + in + +# 416 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + match l with + None -> + !Data.add_idexp_meta ty name constraints pure; + check_meta(Ast.MetaIdExpDecl(arity,name,ty)) + | Some _ -> + !Data.add_local_idexp_meta ty name constraints pure; + check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) +# 19817 "parser_cocci_menhir.ml" + + in + +# 274 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 19823 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17965,27 +19831,75 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = m; - MenhirLib.EngineTypes.startp = _startpos_m_; - MenhirLib.EngineTypes.endp = _endpos_m_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x00; + MenhirLib.EngineTypes.startp = _startpos_x00_; + MenhirLib.EngineTypes.endp = _endpos_x00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l0; + MenhirLib.EngineTypes.startp = _startpos_l0_; + MenhirLib.EngineTypes.endp = _endpos_l0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; } = _menhir_stack in - let m : 'tv_minus_body = Obj.magic m in - let _startpos = _startpos_m_ in - let _endpos = _endpos__2_ in - let _v : ( -# 134 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 17985 "parser_cocci_menhir.ml" - ) = -# 174 "parser_cocci_menhir.mly" - ( m ) -# 17989 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in + let x00 : 'tv_meta_exp_type = Obj.magic x00 in + let l0 : 'tv_option_TLocal_ = Obj.magic l0 in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__7_ in + let _v : 'tv_metadec = let kindfn = + let x0 = x00 in + let l = l0 in + let ty = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 19884 "parser_cocci_menhir.ml" + + in + +# 416 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + match l with + None -> + !Data.add_idexp_meta ty name constraints pure; + check_meta(Ast.MetaIdExpDecl(arity,name,ty)) + | Some _ -> + !Data.add_local_idexp_meta ty name constraints pure; + check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) +# 19897 "parser_cocci_menhir.ml" + + in + +# 274 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 19903 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17997,19 +19911,68 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = m0; + MenhirLib.EngineTypes.startp = _startpos_m0_; + MenhirLib.EngineTypes.endp = _endpos_m0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l0; + MenhirLib.EngineTypes.startp = _startpos_l0_; + MenhirLib.EngineTypes.endp = _endpos_l0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_fundecl = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_minus_start = -# 1597 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.DECL(_1))] ) -# 18013 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in + let m0 : 'tv_nonempty_list_TMul_ = Obj.magic m0 in + let l0 : 'tv_option_TLocal_ = Obj.magic l0 in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__7_ in + let _v : 'tv_metadec = let kindfn = + let m = m0 in + let l = l0 in + +# 425 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in + match l with + None -> + !Data.add_idexp_meta ty name constraints pure; + check_meta(Ast.MetaIdExpDecl(arity,name,ty)) + | Some _ -> + !Data.add_local_idexp_meta ty name constraints pure; + check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) +# 19970 "parser_cocci_menhir.ml" + + in + +# 274 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 19976 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18021,19 +19984,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = m0; + MenhirLib.EngineTypes.startp = _startpos_m0_; + MenhirLib.EngineTypes.endp = _endpos_m0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_ctype = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_minus_start = -# 1598 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) -# 18037 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in + let m0 : 'tv_nonempty_list_TMul_ = Obj.magic m0 in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__6_ in + let _v : 'tv_metadec = let kindfn = + let m = m0 in + +# 435 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in + let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in + !Data.add_exp_meta ty name constraints pure; tok) ) +# 20031 "parser_cocci_menhir.ml" + + in + +# 274 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 20037 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18045,19 +20045,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = vl0; + MenhirLib.EngineTypes.startp = _startpos_vl0_; + MenhirLib.EngineTypes.endp = _endpos_vl0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_top_init = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_minus_start = -# 1599 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) -# 18061 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in + let vl0 : 'tv_meta_exp_type = Obj.magic vl0 in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__7_ in + let _v : 'tv_metadec = let kindfn = + let vl = vl0 in + +# 440 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let ty = Some (List.map (function x -> Type_cocci.Array x) vl) in + let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in + !Data.add_exp_meta ty name constraints pure; tok) ) +# 20096 "parser_cocci_menhir.ml" + + in + +# 274 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 20102 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18069,53 +20110,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_minus_start = -# 1601 "parser_cocci_menhir.mly" - ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 ) -# 18085 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_ctype = Obj.magic b in - let a : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 18112 "parser_cocci_menhir.ml" - ) = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_mzl_ctype_ = -# 1791 "parser_cocci_menhir.mly" - ( (P.clt2mcode "|" a, b) ) -# 18119 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + let ty = + +# 39 "standard.mly" + ( None ) +# 20148 "parser_cocci_menhir.ml" + + in + +# 445 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in + !Data.add_const_meta ty name constraints pure; tok) ) +# 20156 "parser_cocci_menhir.ml" + + in + +# 274 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 20162 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18127,29 +20170,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x00; + MenhirLib.EngineTypes.startp = _startpos_x00_; + MenhirLib.EngineTypes.endp = _endpos_x00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_eexpr = Obj.magic b in - let a : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 18146 "parser_cocci_menhir.ml" - ) = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_mzl_eexpr_ = -# 1791 "parser_cocci_menhir.mly" - ( (P.clt2mcode "|" a, b) ) -# 18153 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in + let x00 : 'tv_meta_exp_type = Obj.magic x00 in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__6_ in + let _v : 'tv_metadec = let kindfn = + let x0 = x00 in + let ty = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 20216 "parser_cocci_menhir.ml" + + in + +# 445 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in + !Data.add_const_meta ty name constraints pure; tok) ) +# 20224 "parser_cocci_menhir.ml" + + in + +# 274 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 20230 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18161,29 +20238,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_fun_after_dots_or = Obj.magic b in - let a : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 18180 "parser_cocci_menhir.ml" - ) = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_mzl_fun_after_dots_or_ = -# 1791 "parser_cocci_menhir.mly" - ( (P.clt2mcode "|" a, b) ) -# 18187 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = Obj.magic ids in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + +# 451 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let tok = check_meta(Ast.MetaExpDecl(arity,name,None)) in + !Data.add_exp_meta None name constraints pure; tok) ) +# 20277 "parser_cocci_menhir.ml" + + in + +# 279 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 20283 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18195,29 +20291,72 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = vl0; + MenhirLib.EngineTypes.startp = _startpos_vl0_; + MenhirLib.EngineTypes.endp = _endpos_vl0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_fun_start = Obj.magic b in - let a : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 18214 "parser_cocci_menhir.ml" - ) = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_mzl_fun_start_ = -# 1791 "parser_cocci_menhir.mly" - ( (P.clt2mcode "|" a, b) ) -# 18221 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = Obj.magic ids in + let vl0 : 'tv_meta_exp_type = Obj.magic vl0 in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = let kindfn = + let vl = vl0 in + +# 455 "parser_cocci_menhir.mly" + ( (fun arity name pure check_meta constraints -> + let ty = Some vl in + (match constraints with + Ast0.NotExpCstrt constraints -> + List.iter + (function c -> + match Ast0.unwrap c with + Ast0.Constant(_) -> + if not + (List.exists + (function + Type_cocci.BaseType(Type_cocci.IntType) -> true + | Type_cocci.BaseType(Type_cocci.ShortType) -> true + | Type_cocci.BaseType(Type_cocci.LongType) -> true + | _ -> false) + vl) + then + failwith "metavariable with int constraint must be an int" + | _ -> ()) + constraints + | _ -> ()); + let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in + !Data.add_exp_meta ty name constraints pure; tok) + ) +# 20354 "parser_cocci_menhir.ml" + + in + +# 279 "parser_cocci_menhir.mly" + ( P.create_metadec_with_constraints ar ispure kindfn ids ) +# 20360 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18229,87 +20368,45 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let b : 'tv_rule_elem_statement = Obj.magic b in - let a : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 18248 "parser_cocci_menhir.ml" - ) = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_mzl_rule_elem_statement_ = -# 1791 "parser_cocci_menhir.mly" - ( (P.clt2mcode "|" a, b) ) -# 18255 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let b : 'tv_statement = Obj.magic b in - let a : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 18282 "parser_cocci_menhir.ml" - ) = Obj.magic a in - let _startpos = _startpos_a_ in - let _endpos = _endpos_b_ in - let _v : 'tv_mzl_statement_ = -# 1791 "parser_cocci_menhir.mly" - ( (P.clt2mcode "|" a, b) ) -# 18289 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_decl = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_name_opt_decl = -# 829 "parser_cocci_menhir.mly" - ( _1 ) -# 18313 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_x_eq_not_pos__ = Obj.magic ids in + let a : 'tv_option_TPosAny_ = Obj.magic a in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__5_ in + let _v : 'tv_metadec = +# 285 "parser_cocci_menhir.mly" + ( (if !Data.in_generating + then failwith "position variables not allowed in a generated rule file"); + let kindfn arity name pure check_meta constraints = + let tok = check_meta(Ast.MetaPosDecl(arity,name)) in + let any = match a with None -> Ast.PER | Some _ -> Ast.ALL in + !Data.add_pos_meta name constraints any; tok in + P.create_metadec_with_constraints ar false kindfn ids ) +# 20410 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18321,19 +20418,61 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__9_; + MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = len; + MenhirLib.EngineTypes.startp = _startpos_len_; + MenhirLib.EngineTypes.endp = _endpos_len_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; } = _menhir_stack in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_t_ in - let _v : 'tv_name_opt_decl = -# 830 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Param(t, None)) ) -# 18337 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in + let len : 'tv_list_len = Obj.magic len in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__9_ in + let _v : 'tv_metadec = +# 295 "parser_cocci_menhir.mly" + ( P.create_len_metadec ar ispure + (fun lenname arity name pure check_meta -> + let tok = check_meta(Ast.MetaParamListDecl(arity,name,lenname)) in + !Data.add_paramlist_meta name lenname pure; tok) + len ids ) +# 20476 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18345,35 +20484,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.startp = _startpos__9_; + MenhirLib.EngineTypes.endp = _endpos__9_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = ids; + MenhirLib.EngineTypes.startp = _startpos_ids_; + MenhirLib.EngineTypes.endp = _endpos_ids_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp; - MenhirLib.EngineTypes.startp = _startpos_rp_; - MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.semv = len; + MenhirLib.EngineTypes.startp = _startpos_len_; + MenhirLib.EngineTypes.endp = _endpos_len_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp; - MenhirLib.EngineTypes.startp = _startpos_lp_; - MenhirLib.EngineTypes.endp = _endpos_lp_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ispure; + MenhirLib.EngineTypes.startp = _startpos_ispure_; + MenhirLib.EngineTypes.endp = _endpos_ispure_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ar; + MenhirLib.EngineTypes.startp = _startpos_ar_; + MenhirLib.EngineTypes.endp = _endpos_ar_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; @@ -18381,44 +20525,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 18388 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 18394 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let rp : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 18399 "parser_cocci_menhir.ml" - ) = Obj.magic rp in - let s : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 18404 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let lp : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 18409 "parser_cocci_menhir.ml" - ) = Obj.magic lp in - let t : 'tv_fn_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_rp1_ in - let _v : 'tv_name_opt_decl = -# 833 "parser_cocci_menhir.mly" - ( let fnptr = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp, - P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in - Ast0.wrap(Ast0.Param(fnptr, None)) ) -# 18422 "parser_cocci_menhir.ml" + let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in + let len : 'tv_list_len = Obj.magic len in + let ispure : 'tv_pure = Obj.magic ispure in + let ar : 'tv_arity = Obj.magic ar in + let _startpos = _startpos_ar_ in + let _endpos = _endpos__9_ in + let _v : 'tv_metadec = +# 303 "parser_cocci_menhir.mly" + ( P.create_len_metadec ar ispure + (fun lenname arity name pure check_meta -> + let tok = check_meta(Ast.MetaExpListDecl(arity,name,lenname)) in + !Data.add_explist_meta name lenname pure; tok) + len ids ) +# 20542 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18430,25 +20550,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_nest_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_nest_after_dots = -# 1712 "parser_cocci_menhir.mly" - (_1@_2) -# 18452 "parser_cocci_menhir.ml" + let b : 'tv_list_mzl_ctype__ = Obj.magic b in + let a : 'tv_ctype = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_midzero_list_ctype_ctype_ = +# 1969 "parser_cocci_menhir.mly" + ( let (mids,code) = List.split b in (mids,(a::code)) ) +# 20572 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18460,23 +20580,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_nest_after_exp = Obj.magic _2 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_nest_after_dots = -# 1713 "parser_cocci_menhir.mly" - (_2) -# 18480 "parser_cocci_menhir.ml" + let b : 'tv_list_mzl_eexpr__ = Obj.magic b in + let a : 'tv_eexpr = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_midzero_list_eexpr_eexpr_ = +# 1969 "parser_cocci_menhir.mly" + ( let (mids,code) = List.split b in (mids,(a::code)) ) +# 20602 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18488,25 +20610,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_nest_after_exp = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_nest_after_dots = -# 1714 "parser_cocci_menhir.mly" - ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 18510 "parser_cocci_menhir.ml" + let b : 'tv_list_mzl_eexpr__ = Obj.magic b in + let a : 'tv_expr = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_midzero_list_expr_eexpr_ = +# 1969 "parser_cocci_menhir.mly" + ( let (mids,code) = List.split b in (mids,(a::code)) ) +# 20632 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18517,13 +20639,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_nest_after_exp = -# 1722 "parser_cocci_menhir.mly" - ([]) -# 18527 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let b : 'tv_list_mzl_fun_after_dots_or__ = Obj.magic b in + let a : 'tv_fun_after_stm = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = +# 1969 "parser_cocci_menhir.mly" + ( let (mids,code) = List.split b in (mids,(a::code)) ) +# 20662 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18535,25 +20670,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_nest_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_nest_after_exp = -# 1723 "parser_cocci_menhir.mly" - (_1::_2) -# 18557 "parser_cocci_menhir.ml" + let b : 'tv_list_mzl_fun_start__ = Obj.magic b in + let a : 'tv_fun_start = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_midzero_list_fun_start_fun_start_ = +# 1969 "parser_cocci_menhir.mly" + ( let (mids,code) = List.split b in (mids,(a::code)) ) +# 20692 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18564,13 +20699,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_nest_after_stm = -# 1717 "parser_cocci_menhir.mly" - ([]) -# 18574 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let b : 'tv_list_mzl_rule_elem_statement__ = Obj.magic b in + let a : 'tv_rule_elem_statement = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = +# 1969 "parser_cocci_menhir.mly" + ( let (mids,code) = List.split b in (mids,(a::code)) ) +# 20722 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18582,25 +20730,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_nest_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_nest_after_stm = -# 1718 "parser_cocci_menhir.mly" - (_1::_2) -# 18604 "parser_cocci_menhir.ml" + let b : 'tv_list_mzl_statement__ = Obj.magic b in + let a : 'tv_statement = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_midzero_list_statement_statement_ = +# 1969 "parser_cocci_menhir.mly" + ( let (mids,code) = List.split b in (mids,(a::code)) ) +# 20752 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18612,25 +20760,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = f; + MenhirLib.EngineTypes.startp = _startpos_f_; + MenhirLib.EngineTypes.endp = _endpos_f_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_nest_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_nest_after_stm = -# 1719 "parser_cocci_menhir.mly" - (_1@_2) -# 18634 "parser_cocci_menhir.ml" + let b : 'tv_loption_minus_start_ = Obj.magic b in + let f : 'tv_loption_filespec_ = Obj.magic f in + let _startpos = _startpos_f_ in + let _endpos = _endpos_b_ in + let _v : 'tv_minus_body = +# 628 "parser_cocci_menhir.mly" + ( match f@b(*@ew*) with + [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") + | code -> Top_level.top_level code ) +# 20784 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18642,41 +20792,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = c; - MenhirLib.EngineTypes.startp = _startpos_c_; - MenhirLib.EngineTypes.endp = _endpos_c_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = f; + MenhirLib.EngineTypes.startp = _startpos_f_; + MenhirLib.EngineTypes.endp = _endpos_f_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let c : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 18665 "parser_cocci_menhir.ml" - ) = Obj.magic c in - let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in - let _1 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 18671 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos_c_ in - let _v : 'tv_nest_expressions = -# 1211 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1, - Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), - P.clt2mcode "...>" c, None, false)) ) -# 18680 "parser_cocci_menhir.ml" + let b : 'tv_top_eexpr = Obj.magic b in + let f : 'tv_loption_filespec_ = Obj.magic f in + let _startpos = _startpos_f_ in + let _endpos = _endpos_b_ in + let _v : 'tv_minus_exp_body = +# 642 "parser_cocci_menhir.mly" + ( match f@[b](*@ew*) with + [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") + | code -> Top_level.top_level code ) +# 20816 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18688,41 +20824,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = c; - MenhirLib.EngineTypes.startp = _startpos_c_; - MenhirLib.EngineTypes.endp = _endpos_c_; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let c : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 18711 "parser_cocci_menhir.ml" - ) = Obj.magic c in - let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in - let _1 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 18717 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _1 : 'tv_minus_exp_body = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos_c_ in - let _v : 'tv_nest_expressions = -# 1215 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1, - Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), - P.clt2mcode "...+>" c, None, true)) ) -# 18726 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : ( +# 118 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 20844 "parser_cocci_menhir.ml" + ) = +# 158 "parser_cocci_menhir.mly" + ( _1 ) +# 20848 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18734,20 +20856,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_nest_after_dots = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_nest_start = -# 1709 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 18750 "parser_cocci_menhir.ml" - in + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let m : 'tv_minus_exp_body = Obj.magic m in + let _startpos = _startpos_m_ in + let _endpos = _endpos__2_ in + let _v : ( +# 118 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 20876 "parser_cocci_menhir.ml" + ) = +# 158 "parser_cocci_menhir.mly" + ( m ) +# 20880 "parser_cocci_menhir.ml" + in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18758,21 +20888,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in + let m : 'tv_minus_exp_body = Obj.magic m in + let _startpos = _startpos_m_ in + let _endpos = _endpos__2_ in let _v : ( -# 168 "parser_cocci_menhir.mly" - (unit) -# 18772 "parser_cocci_menhir.ml" +# 118 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 20908 "parser_cocci_menhir.ml" ) = -# 1854 "parser_cocci_menhir.mly" - ( () ) -# 18776 "parser_cocci_menhir.ml" +# 159 "parser_cocci_menhir.mly" + ( m ) +# 20912 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18788,21 +20924,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in + let _1 : 'tv_minus_body = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 168 "parser_cocci_menhir.mly" - (unit) -# 18802 "parser_cocci_menhir.ml" +# 115 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 20940 "parser_cocci_menhir.ml" ) = -# 1855 "parser_cocci_menhir.mly" - ( () ) -# 18806 "parser_cocci_menhir.ml" +# 154 "parser_cocci_menhir.mly" + ( _1 ) +# 20944 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18814,21 +20952,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in + let m : 'tv_minus_body = Obj.magic m in + let _startpos = _startpos_m_ in + let _endpos = _endpos__2_ in let _v : ( -# 168 "parser_cocci_menhir.mly" - (unit) -# 18828 "parser_cocci_menhir.ml" +# 115 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 20972 "parser_cocci_menhir.ml" ) = -# 1856 "parser_cocci_menhir.mly" - ( () ) -# 18832 "parser_cocci_menhir.ml" +# 154 "parser_cocci_menhir.mly" + ( m ) +# 20976 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18840,26 +20984,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = dg; - MenhirLib.EngineTypes.startp = _startpos_dg_; - MenhirLib.EngineTypes.endp = _endpos_dg_; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = g; - MenhirLib.EngineTypes.startp = _startpos_g_; - MenhirLib.EngineTypes.endp = _endpos_g_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let dg : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = Obj.magic dg in - let g : 'tv_dexpr = Obj.magic g in - let _startpos = _startpos_g_ in - let _endpos = _endpos_dg_ in - let _v : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = -# 1379 "parser_cocci_menhir.mly" - ( function dot_builder -> - g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) ) -# 18863 "parser_cocci_menhir.ml" + let m : 'tv_minus_body = Obj.magic m in + let _startpos = _startpos_m_ in + let _endpos = _endpos__2_ in + let _v : ( +# 115 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 21004 "parser_cocci_menhir.ml" + ) = +# 155 "parser_cocci_menhir.mly" + ( m ) +# 21008 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18872,22 +21017,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 18884 "parser_cocci_menhir.ml" - ) = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_nonempty_list_TMul_ = -# 124 "standard.mly" - ( [ x ] ) -# 18891 "parser_cocci_menhir.ml" + let _1 : 'tv_fundecl = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_minus_start = +# 1777 "parser_cocci_menhir.mly" + ( [Ast0.wrap(Ast0.DECL(_1))] ) +# 21032 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18899,29 +21040,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in - let x : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 18918 "parser_cocci_menhir.ml" - ) = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_nonempty_list_TMul_ = -# 126 "standard.mly" - ( x :: xs ) -# 18925 "parser_cocci_menhir.ml" + let _1 : 'tv_ctype = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_minus_start = +# 1778 "parser_cocci_menhir.mly" + ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) +# 21056 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18933,27 +21064,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let i : 'tv_ident_or_const = Obj.magic i in + let _1 : 'tv_top_init = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos_i_ in - let _v : 'tv_not_ceq = -# 1436 "parser_cocci_menhir.mly" - ( (if !Data.in_iso - then failwith "constraints not allowed in iso file"); - (if !Data.in_generating - then failwith "constraints not allowed in a generated rule file"); - [i] ) -# 18957 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_minus_start = +# 1779 "parser_cocci_menhir.mly" + ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) +# 21080 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18965,35 +21088,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let l : 'tv_comma_list_ident_or_const_ = Obj.magic l in + let _1 : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_not_ceq = -# 1442 "parser_cocci_menhir.mly" - ( (if !Data.in_iso - then failwith "constraints not allowed in iso file"); - (if !Data.in_generating - then failwith "constraints not allowed in a generated rule file"); - l ) -# 18997 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_minus_start = +# 1781 "parser_cocci_menhir.mly" + ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 ) +# 21104 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19005,29 +21112,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let i : 'tv_pure_ident = Obj.magic i in - let _startpos = _startpos__1_ in - let _endpos = _endpos_i_ in - let _v : 'tv_not_eq = -# 1403 "parser_cocci_menhir.mly" - ( (if !Data.in_iso - then failwith "constraints not allowed in iso file"); - (if !Data.in_generating - (* pb: constraints not stored with metavars; too lazy to search for - them in the pattern *) - then failwith "constraints not allowed in a generated rule file"); - [Ast0.wrap(Ast0.Id(P.id2mcode i))] ) -# 19031 "parser_cocci_menhir.ml" + let b : 'tv_ctype = Obj.magic b in + let a : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 21131 "parser_cocci_menhir.ml" + ) = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_mzl_ctype_ = +# 1972 "parser_cocci_menhir.mly" + ( (P.clt2mcode "|" a, b) ) +# 21138 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19039,35 +21146,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let l : 'tv_comma_list_pure_ident_ = Obj.magic l in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_not_eq = -# 1411 "parser_cocci_menhir.mly" - ( (if !Data.in_iso - then failwith "constraints not allowed in iso file"); - (if !Data.in_generating - then failwith "constraints not allowed in a generated rule file"); - List.map (function i -> Ast0.wrap(Ast0.Id(P.id2mcode i))) l ) -# 19071 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let b : 'tv_eexpr = Obj.magic b in + let a : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 21165 "parser_cocci_menhir.ml" + ) = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_mzl_eexpr_ = +# 1972 "parser_cocci_menhir.mly" + ( (P.clt2mcode "|" a, b) ) +# 21172 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19079,27 +21180,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let i : 'tv_pure_ident = Obj.magic i in - let _startpos = _startpos__1_ in - let _endpos = _endpos_i_ in - let _v : 'tv_not_eqe = -# 1419 "parser_cocci_menhir.mly" - ( (if !Data.in_iso - then failwith "constraints not allowed in iso file"); - (if !Data.in_generating - then failwith "constraints not allowed in a generated rule file"); - [Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))] ) -# 19103 "parser_cocci_menhir.ml" + let b : 'tv_fun_after_dots_or = Obj.magic b in + let a : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 21199 "parser_cocci_menhir.ml" + ) = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_mzl_fun_after_dots_or_ = +# 1972 "parser_cocci_menhir.mly" + ( (P.clt2mcode "|" a, b) ) +# 21206 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19111,38 +21214,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let l : 'tv_comma_list_pure_ident_ = Obj.magic l in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_not_eqe = -# 1425 "parser_cocci_menhir.mly" - ( (if !Data.in_iso - then failwith "constraints not allowed in iso file"); - (if !Data.in_generating - then failwith "constraints not allowed in a generated rule file"); - List.map - (function i -> - Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))) - l ) -# 19146 "parser_cocci_menhir.ml" + let b : 'tv_fun_start = Obj.magic b in + let a : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 21233 "parser_cocci_menhir.ml" + ) = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_mzl_fun_start_ = +# 1972 "parser_cocci_menhir.mly" + ( (P.clt2mcode "|" a, b) ) +# 21240 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19154,32 +21248,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let i : 'tv_meta_ident = Obj.magic i in - let _startpos = _startpos__1_ in - let _endpos = _endpos_i_ in - let _v : 'tv_not_pos = -# 1456 "parser_cocci_menhir.mly" - ( (if !Data.in_iso - then failwith "constraints not allowed in iso file"); - (if !Data.in_generating - then failwith "constraints not allowed in a generated rule file"); - match i with - (None,_) -> failwith "constraint must be an inherited variable" - | (Some rule,name) -> - let i = (rule,name) in - P.check_meta(Ast.MetaPosDecl(Ast.NONE,i)); - [i] ) -# 19183 "parser_cocci_menhir.ml" + let b : 'tv_rule_elem_statement = Obj.magic b in + let a : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 21267 "parser_cocci_menhir.ml" + ) = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_mzl_rule_elem_statement_ = +# 1972 "parser_cocci_menhir.mly" + ( (P.clt2mcode "|" a, b) ) +# 21274 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19191,43 +21282,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let l : 'tv_comma_list_meta_ident_ = Obj.magic l in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_not_pos = -# 1467 "parser_cocci_menhir.mly" - ( (if !Data.in_iso - then failwith "constraints not allowed in iso file"); - (if !Data.in_generating - then failwith "constraints not allowed in a generated rule file"); - List.map - (function - (None,_) -> - failwith "constraint must be an inherited variable" - | (Some rule,name) -> - let i = (rule,name) in - P.check_meta(Ast.MetaPosDecl(Ast.NONE,i)); - i) - l ) -# 19231 "parser_cocci_menhir.ml" + let b : 'tv_statement = Obj.magic b in + let a : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 21301 "parser_cocci_menhir.ml" + ) = Obj.magic a in + let _startpos = _startpos_a_ in + let _endpos = _endpos_b_ in + let _v : 'tv_mzl_statement_ = +# 1972 "parser_cocci_menhir.mly" + ( (P.clt2mcode "|" a, b) ) +# 21308 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19248,10 +21325,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _1 : 'tv_decl = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_one_dec_decl_ = -# 1541 "parser_cocci_menhir.mly" - ( _1 ) -# 19255 "parser_cocci_menhir.ml" + let _v : 'tv_name_opt_decl = +# 853 "parser_cocci_menhir.mly" + ( _1 ) +# 21332 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19263,29 +21340,80 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp; + MenhirLib.EngineTypes.startp = _startpos_rp_; + MenhirLib.EngineTypes.endp = _endpos_rp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp; + MenhirLib.EngineTypes.startp = _startpos_lp_; + MenhirLib.EngineTypes.endp = _endpos_lp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 66 "parser_cocci_menhir.mly" - (Parse_aux.list_info) -# 19276 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_one_dec_decl_ = -# 1543 "parser_cocci_menhir.mly" - ( let (nm,lenname,pure,clt) = _1 in - let nm = P.clt2mcode nm clt in - let lenname = - match lenname with - Some nm -> Some(P.clt2mcode nm clt) - | None -> None in - Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) ) -# 19289 "parser_cocci_menhir.ml" + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 21383 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 21389 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let rp : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 21394 "parser_cocci_menhir.ml" + ) = Obj.magic rp in + let s : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 21399 "parser_cocci_menhir.ml" + ) = Obj.magic s in + let lp : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 21404 "parser_cocci_menhir.ml" + ) = Obj.magic lp in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_rp1_ in + let _v : 'tv_name_opt_decl = +# 856 "parser_cocci_menhir.mly" + ( let fnptr = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp, + P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in + Ast0.wrap(Ast0.Param(fnptr, None)) ) +# 21417 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19297,20 +21425,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_name_opt_decl = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_one_dec_name_opt_decl_ = -# 1541 "parser_cocci_menhir.mly" - ( _1 ) -# 19313 "parser_cocci_menhir.ml" - in + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_nest_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_nest_after_dots = +# 1892 "parser_cocci_menhir.mly" + (_1@_2) +# 21447 "parser_cocci_menhir.ml" + in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19321,29 +21455,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : ( -# 66 "parser_cocci_menhir.mly" - (Parse_aux.list_info) -# 19334 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : 'tv_nest_after_exp = Obj.magic _2 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_one_dec_name_opt_decl_ = -# 1543 "parser_cocci_menhir.mly" - ( let (nm,lenname,pure,clt) = _1 in - let nm = P.clt2mcode nm clt in - let lenname = - match lenname with - Some nm -> Some(P.clt2mcode nm clt) - | None -> None in - Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) ) -# 19347 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_nest_after_dots = +# 1893 "parser_cocci_menhir.mly" + (_2) +# 21475 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19355,29 +21483,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19373 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = -# 1000 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) ) -# 19381 "parser_cocci_menhir.ml" + let _2 : 'tv_nest_after_exp = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_nest_after_dots = +# 1894 "parser_cocci_menhir.mly" + ((Ast0.wrap(Ast0.Exp(_1)))::_2) +# 21505 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19388,44 +21512,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19412 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let s = - -# 39 "standard.mly" - ( None ) -# 19422 "parser_cocci_menhir.ml" - - in - -# 1002 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 19429 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_nest_after_exp = +# 1902 "parser_cocci_menhir.mly" + ([]) +# 21522 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19437,50 +21530,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19465 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 19477 "parser_cocci_menhir.ml" - - in - -# 1002 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 19484 "parser_cocci_menhir.ml" + let _2 : 'tv_nest_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_nest_after_exp = +# 1903 "parser_cocci_menhir.mly" + (_1::_2) +# 21552 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19491,20 +21559,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = f; - MenhirLib.EngineTypes.startp = _startpos_f_; - MenhirLib.EngineTypes.endp = _endpos_f_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let f : 'tv_funproto = Obj.magic f in - let _startpos = _startpos_f_ in - let _endpos = _endpos_f_ in - let _v : 'tv_one_decl_var = -# 1004 "parser_cocci_menhir.mly" - ( f ) -# 19508 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_nest_after_stm = +# 1897 "parser_cocci_menhir.mly" + ([]) +# 21569 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19516,59 +21577,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19549 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19555 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let s = - -# 39 "standard.mly" - ( None ) -# 19565 "parser_cocci_menhir.ml" - - in - -# 1006 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) -# 19572 "parser_cocci_menhir.ml" + let _2 : 'tv_nest_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_nest_after_stm = +# 1898 "parser_cocci_menhir.mly" + (_1::_2) +# 21599 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19580,66 +21607,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19618 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19624 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 19636 "parser_cocci_menhir.ml" - - in - -# 1006 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) -# 19643 "parser_cocci_menhir.ml" + let _2 : 'tv_nest_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_nest_after_stm = +# 1899 "parser_cocci_menhir.mly" + (_1@_2) +# 21629 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19651,51 +21637,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = c; + MenhirLib.EngineTypes.startp = _startpos_c_; + MenhirLib.EngineTypes.endp = _endpos_c_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" + let c : ( +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 19674 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let cv = - -# 39 "standard.mly" - ( None ) -# 19684 "parser_cocci_menhir.ml" - - in - let s = - -# 39 "standard.mly" - ( None ) -# 19691 "parser_cocci_menhir.ml" - - in - -# 1011 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) -# 19699 "parser_cocci_menhir.ml" +# 21660 "parser_cocci_menhir.ml" + ) = Obj.magic c in + let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in + let _1 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 21666 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos_c_ in + let _v : 'tv_nest_expressions = +# 1248 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1, + Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), + P.clt2mcode "...>" c, None, false)) ) +# 21675 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19707,58 +21683,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = c; + MenhirLib.EngineTypes.startp = _startpos_c_; + MenhirLib.EngineTypes.endp = _endpos_c_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" + let c : ( +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 19735 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x0 : 'tv_const_vol = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let cv = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 19747 "parser_cocci_menhir.ml" - - in - let s = - -# 39 "standard.mly" - ( None ) -# 19754 "parser_cocci_menhir.ml" - - in - -# 1011 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) -# 19762 "parser_cocci_menhir.ml" +# 21706 "parser_cocci_menhir.ml" + ) = Obj.magic c in + let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in + let _1 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 21712 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos_c_ in + let _v : 'tv_nest_expressions = +# 1252 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1, + Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), + P.clt2mcode "...+>" c, None, true)) ) +# 21721 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19770,58 +21729,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19798 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let cv = - -# 39 "standard.mly" - ( None ) -# 19809 "parser_cocci_menhir.ml" - - in - let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 19817 "parser_cocci_menhir.ml" - - in - -# 1011 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) -# 19825 "parser_cocci_menhir.ml" + let _1 : 'tv_nest_after_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_nest_start = +# 1889 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DOTS(_1)) ) +# 21745 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19833,65 +21753,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = x1; - MenhirLib.EngineTypes.startp = _startpos_x1_; - MenhirLib.EngineTypes.endp = _endpos_x1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19866 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x1 : 'tv_const_vol = Obj.magic x1 in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let cv = - let x = x1 in - -# 41 "standard.mly" - ( Some x ) -# 19879 "parser_cocci_menhir.ml" - - in - let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 19887 "parser_cocci_menhir.ml" - - in - -# 1011 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) -# 19895 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : ( +# 149 "parser_cocci_menhir.mly" + (unit) +# 21767 "parser_cocci_menhir.ml" + ) = +# 2039 "parser_cocci_menhir.mly" + ( () ) +# 21771 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19903,69 +21779,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19936 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 19942 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let cv = - -# 39 "standard.mly" - ( None ) -# 19952 "parser_cocci_menhir.ml" - - in - let s = - -# 39 "standard.mly" - ( None ) -# 19959 "parser_cocci_menhir.ml" - - in - -# 1016 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - !Data.add_type_name (P.id2name i); - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, - P.clt2mcode ";" pv)) ) -# 19969 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : ( +# 149 "parser_cocci_menhir.mly" + (unit) +# 21797 "parser_cocci_menhir.ml" + ) = +# 2040 "parser_cocci_menhir.mly" + ( () ) +# 21801 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19977,76 +21809,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20015 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20021 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x0 : 'tv_const_vol = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let cv = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 20033 "parser_cocci_menhir.ml" - - in - let s = - -# 39 "standard.mly" - ( None ) -# 20040 "parser_cocci_menhir.ml" - - in - -# 1016 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - !Data.add_type_name (P.id2name i); - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, - P.clt2mcode ";" pv)) ) -# 20050 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : ( +# 149 "parser_cocci_menhir.mly" + (unit) +# 21823 "parser_cocci_menhir.ml" + ) = +# 2041 "parser_cocci_menhir.mly" + ( () ) +# 21827 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20058,76 +21835,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = dg; + MenhirLib.EngineTypes.startp = _startpos_dg_; + MenhirLib.EngineTypes.endp = _endpos_dg_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = g; + MenhirLib.EngineTypes.startp = _startpos_g_; + MenhirLib.EngineTypes.endp = _endpos_g_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20096 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20102 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let cv = - -# 39 "standard.mly" - ( None ) -# 20113 "parser_cocci_menhir.ml" - - in - let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 20121 "parser_cocci_menhir.ml" - - in - -# 1016 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - !Data.add_type_name (P.id2name i); - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, - P.clt2mcode ";" pv)) ) -# 20131 "parser_cocci_menhir.ml" + let dg : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = Obj.magic dg in + let g : 'tv_dexpr = Obj.magic g in + let _startpos = _startpos_g_ in + let _endpos = _endpos_dg_ in + let _v : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = +# 1418 "parser_cocci_menhir.mly" + ( function dot_builder -> + g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) ) +# 21858 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20139,83 +21866,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = x1; - MenhirLib.EngineTypes.startp = _startpos_x1_; - MenhirLib.EngineTypes.endp = _endpos_x1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20182 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" + let x : ( +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 20188 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let x1 : 'tv_const_vol = Obj.magic x1 in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let cv = - let x = x1 in - -# 41 "standard.mly" - ( Some x ) -# 20201 "parser_cocci_menhir.ml" - - in - let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 20209 "parser_cocci_menhir.ml" - - in - -# 1016 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - !Data.add_type_name (P.id2name i); - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, - P.clt2mcode ";" pv)) ) -# 20219 "parser_cocci_menhir.ml" +# 21879 "parser_cocci_menhir.ml" + ) = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_nonempty_list_TMul_ = +# 124 "standard.mly" + ( [ x ] ) +# 21886 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20227,104 +21894,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20280 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20285 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 20291 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20296 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 20302 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" + let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in + let x : ( +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 20307 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let s = - -# 39 "standard.mly" - ( None ) -# 20316 "parser_cocci_menhir.ml" - - in - -# 1026 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 20328 "parser_cocci_menhir.ml" +# 21913 "parser_cocci_menhir.ml" + ) = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_nonempty_list_TMul_ = +# 126 "standard.mly" + ( x :: xs ) +# 21920 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20336,111 +21928,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let i : 'tv_ident_or_const = Obj.magic i in + let _startpos = _startpos__1_ in + let _endpos = _endpos_i_ in + let _v : 'tv_not_ceq = +# 1591 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + [i] ) +# 21952 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l; + MenhirLib.EngineTypes.startp = _startpos_l_; + MenhirLib.EngineTypes.endp = _endpos_l_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20394 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20399 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 20405 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20410 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 20416 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 20421 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 20432 "parser_cocci_menhir.ml" - - in - -# 1026 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 20444 "parser_cocci_menhir.ml" + let l : 'tv_comma_list_ident_or_const_ = Obj.magic l in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_not_ceq = +# 1597 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + l ) +# 21992 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20452,56 +22000,76 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ceq; + MenhirLib.EngineTypes.startp = _startpos_ceq_; + MenhirLib.EngineTypes.endp = _endpos_ceq_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let ceq : 'tv_not_ceq = Obj.magic ceq in + let _startpos = _startpos_ceq_ in + let _endpos = _endpos_ceq_ in + let _v : 'tv_not_ceq_or_sub = +# 1567 "parser_cocci_menhir.mly" + (Ast0.NotExpCstrt ceq) +# 22016 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let s : 'tv_sub = Obj.magic s in + let _startpos = _startpos_s_ in + let _endpos = _endpos_s_ in + let _v : 'tv_not_ceq_or_sub = +# 1568 "parser_cocci_menhir.mly" + (Ast0.SubExpCstrt s) +# 22040 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _5 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20485 "parser_cocci_menhir.ml" - ) = Obj.magic _5 in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20490 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr_list_option = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 20496 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_decl_ident = Obj.magic _1 in + let i : 'tv_pure_ident = Obj.magic i in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : 'tv_one_decl_var = -# 1034 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, - P.clt2mcode ")" _4,P.clt2mcode ";" _5)) ) -# 20505 "parser_cocci_menhir.ml" + let _endpos = _endpos_i_ in + let _v : 'tv_not_eqe = +# 1572 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + [Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))] + ) +# 22073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20513,120 +22081,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = l; + MenhirLib.EngineTypes.startp = _startpos_l_; + MenhirLib.EngineTypes.endp = _endpos_l_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20576 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20582 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20587 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 20593 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20598 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 20604 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 20609 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let s = - -# 39 "standard.mly" - ( None ) -# 20618 "parser_cocci_menhir.ml" - - in - -# 1040 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))) -# 20630 "parser_cocci_menhir.ml" + let l : 'tv_comma_list_pure_ident_ = Obj.magic l in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_not_eqe = +# 1579 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + List.map + (function i -> + Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))) + l + ) +# 22117 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20638,127 +22125,5386 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = q; - MenhirLib.EngineTypes.startp = _startpos_q_; - MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in + let _startpos = _startpos__1_ in + let _endpos = _endpos_i_ in + let _v : 'tv_not_eqid = +# 1529 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + (* pb: constraints not stored with metavars; too lazy to search for + them in the pattern *) + then failwith "constraints not allowed in a generated rule file"); + (match i with + (Some rn,id) -> + let i = + P.check_inherited_constraint i + (function mv -> Ast.MetaIdDecl(Ast.NONE,mv)) in + Ast.IdNegIdSet([],[i]) + | (None,i) -> Ast.IdNegIdSet([i],[])) ) +# 22157 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l; + MenhirLib.EngineTypes.startp = _startpos_l_; + MenhirLib.EngineTypes.endp = _endpos_l_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20706 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let e : 'tv_initialize = Obj.magic e in - let q : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 20712 "parser_cocci_menhir.ml" - ) = Obj.magic q in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20717 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 20723 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 20728 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 20734 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 20739 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let x0 : 'tv_storage = Obj.magic x0 in - let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_one_decl_var = let s = - let x = x0 in - -# 41 "standard.mly" - ( Some x ) -# 20750 "parser_cocci_menhir.ml" - - in - -# 1040 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))) -# 20762 "parser_cocci_menhir.ml" + let l : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic l in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_not_eqid = +# 1543 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + let (str,meta) = + List.fold_left + (function (str,meta) -> + function + (Some rn,id) as i -> + let i = + P.check_inherited_constraint i + (function mv -> Ast.MetaIdDecl(Ast.NONE,mv)) in + (str,i::meta) + | (None,i) -> (i::str,meta)) + ([],[]) l in + Ast.IdNegIdSet(str,meta) + ) +# 22209 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let i : 'tv_meta_ident = Obj.magic i in + let _startpos = _startpos__1_ in + let _endpos = _endpos_i_ in + let _v : 'tv_not_pos = +# 1635 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + let i = + P.check_inherited_constraint i + (function mv -> Ast.MetaPosDecl(Ast.NONE,mv)) in + [i] ) +# 22244 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l; + MenhirLib.EngineTypes.startp = _startpos_l_; + MenhirLib.EngineTypes.endp = _endpos_l_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let l : 'tv_comma_list_meta_ident_ = Obj.magic l in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_not_pos = +# 1644 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + List.map + (function i -> + P.check_inherited_constraint i + (function mv -> Ast.MetaPosDecl(Ast.NONE,mv))) + l ) +# 22288 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_decl = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_one_dec_decl_ = +# 1714 "parser_cocci_menhir.mly" + ( _1 ) +# 22312 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 45 "parser_cocci_menhir.mly" + (Parse_aux.list_info) +# 22333 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_one_dec_decl_ = +# 1716 "parser_cocci_menhir.mly" + ( let (nm,lenname,pure,clt) = _1 in + let nm = P.clt2mcode nm clt in + let lenname = + match lenname with + Ast.AnyLen -> Ast0.AnyListLen + | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt) + | Ast.CstLen n -> Ast0.CstListLen n in + Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) ) +# 22347 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_name_opt_decl = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_one_dec_name_opt_decl_ = +# 1714 "parser_cocci_menhir.mly" + ( _1 ) +# 22371 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 45 "parser_cocci_menhir.mly" + (Parse_aux.list_info) +# 22392 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_one_dec_name_opt_decl_ = +# 1716 "parser_cocci_menhir.mly" + ( let (nm,lenname,pure,clt) = _1 in + let nm = P.clt2mcode nm clt in + let lenname = + match lenname with + Ast.AnyLen -> Ast0.AnyListLen + | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt) + | Ast.CstLen n -> Ast0.CstListLen n in + Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) ) +# 22406 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22432 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = +# 1032 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) ) +# 22440 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 44 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 22461 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_one_decl_var = +# 1033 "parser_cocci_menhir.mly" + ( P.meta_decl _1 ) +# 22468 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22499 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let s = + +# 39 "standard.mly" + ( None ) +# 22509 "parser_cocci_menhir.ml" + + in + +# 1035 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) +# 22516 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22552 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 22564 "parser_cocci_menhir.ml" + + in + +# 1035 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) +# 22571 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = f; + MenhirLib.EngineTypes.startp = _startpos_f_; + MenhirLib.EngineTypes.endp = _endpos_f_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let f : 'tv_funproto = Obj.magic f in + let _startpos = _startpos_f_ in + let _endpos = _endpos_f_ in + let _v : 'tv_one_decl_var = +# 1037 "parser_cocci_menhir.mly" + ( f ) +# 22595 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22636 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22642 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let s = + +# 39 "standard.mly" + ( None ) +# 22652 "parser_cocci_menhir.ml" + + in + +# 1039 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) +# 22659 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22705 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22711 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 22723 "parser_cocci_menhir.ml" + + in + +# 1039 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) +# 22730 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22761 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let cv = + +# 39 "standard.mly" + ( None ) +# 22771 "parser_cocci_menhir.ml" + + in + let s = + +# 39 "standard.mly" + ( None ) +# 22778 "parser_cocci_menhir.ml" + + in + +# 1044 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) +# 22786 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22822 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 22834 "parser_cocci_menhir.ml" + + in + let s = + +# 39 "standard.mly" + ( None ) +# 22841 "parser_cocci_menhir.ml" + + in + +# 1044 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) +# 22849 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22885 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let cv = + +# 39 "standard.mly" + ( None ) +# 22896 "parser_cocci_menhir.ml" + + in + let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 22904 "parser_cocci_menhir.ml" + + in + +# 1044 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) +# 22912 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x1; + MenhirLib.EngineTypes.startp = _startpos_x1_; + MenhirLib.EngineTypes.endp = _endpos_x1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 22953 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x1 : 'tv_const_vol = Obj.magic x1 in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let cv = + let x = x1 in + +# 41 "standard.mly" + ( Some x ) +# 22966 "parser_cocci_menhir.ml" + + in + let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 22974 "parser_cocci_menhir.ml" + + in + +# 1044 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) +# 22982 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23023 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23029 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let cv = + +# 39 "standard.mly" + ( None ) +# 23039 "parser_cocci_menhir.ml" + + in + let s = + +# 39 "standard.mly" + ( None ) +# 23046 "parser_cocci_menhir.ml" + + in + +# 1049 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + !Data.add_type_name (P.id2name i); + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, + P.clt2mcode ";" pv)) ) +# 23056 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23102 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23108 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 23120 "parser_cocci_menhir.ml" + + in + let s = + +# 39 "standard.mly" + ( None ) +# 23127 "parser_cocci_menhir.ml" + + in + +# 1049 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + !Data.add_type_name (P.id2name i); + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, + P.clt2mcode ";" pv)) ) +# 23137 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23183 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23189 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let cv = + +# 39 "standard.mly" + ( None ) +# 23200 "parser_cocci_menhir.ml" + + in + let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 23208 "parser_cocci_menhir.ml" + + in + +# 1049 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + !Data.add_type_name (P.id2name i); + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, + P.clt2mcode ";" pv)) ) +# 23218 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x1; + MenhirLib.EngineTypes.startp = _startpos_x1_; + MenhirLib.EngineTypes.endp = _endpos_x1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23269 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23275 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x1 : 'tv_const_vol = Obj.magic x1 in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let cv = + let x = x1 in + +# 41 "standard.mly" + ( Some x ) +# 23288 "parser_cocci_menhir.ml" + + in + let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 23296 "parser_cocci_menhir.ml" + + in + +# 1049 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + !Data.add_type_name (P.id2name i); + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, + P.clt2mcode ";" pv)) ) +# 23306 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23367 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23372 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23378 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23383 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 23389 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23394 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let s = + +# 39 "standard.mly" + ( None ) +# 23403 "parser_cocci_menhir.ml" + + in + +# 1059 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) +# 23415 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23481 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23486 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23492 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23497 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 23503 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23508 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 23519 "parser_cocci_menhir.ml" + + in + +# 1059 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) +# 23531 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23572 "parser_cocci_menhir.ml" + ) = Obj.magic _5 in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23577 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23583 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_decl_ident = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : 'tv_one_decl_var = +# 1067 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, + P.clt2mcode ")" _4,P.clt2mcode ";" _5)) ) +# 23592 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23663 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23669 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23674 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23680 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23685 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 23691 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23696 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let s = + +# 39 "standard.mly" + ( None ) +# 23705 "parser_cocci_menhir.ml" + + in + +# 1073 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))) +# 23717 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = q; + MenhirLib.EngineTypes.startp = _startpos_q_; + MenhirLib.EngineTypes.endp = _endpos_q_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23793 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let e : 'tv_initialize = Obj.magic e in + let q : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 23799 "parser_cocci_menhir.ml" + ) = Obj.magic q in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23804 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23810 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 23815 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 23821 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 23826 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let x0 : 'tv_storage = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_one_decl_var = let s = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 23837 "parser_cocci_menhir.ml" + + in + +# 1073 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))) +# 23849 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_option_TLocal_ = +# 29 "standard.mly" + ( None ) +# 23866 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : unit = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_option_TLocal_ = +# 31 "standard.mly" + ( Some x ) +# 23890 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_option_TPosAny_ = +# 29 "standard.mly" + ( None ) +# 23907 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : unit = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_option_TPosAny_ = +# 31 "standard.mly" + ( Some x ) +# 23931 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_option_eexpr_ = +# 29 "standard.mly" + ( None ) +# 23948 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : 'tv_eexpr = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_option_eexpr_ = +# 31 "standard.mly" + ( Some x ) +# 23972 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_option_not_ceq_or_sub_ = +# 29 "standard.mly" + ( None ) +# 23989 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : 'tv_not_ceq_or_sub = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_option_not_ceq_or_sub_ = +# 31 "standard.mly" + ( Some x ) +# 24013 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_option_re_or_not_eqe_or_sub_ = +# 29 "standard.mly" + ( None ) +# 24030 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : 'tv_re_or_not_eqe_or_sub = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_option_re_or_not_eqe_or_sub_ = +# 31 "standard.mly" + ( Some x ) +# 24054 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_option_re_or_not_eqid_ = +# 29 "standard.mly" + ( None ) +# 24071 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : 'tv_re_or_not_eqid = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_option_re_or_not_eqid_ = +# 31 "standard.mly" + ( Some x ) +# 24095 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_plus_after_dots = +# 1839 "parser_cocci_menhir.mly" + ([]) +# 24112 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_exp = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_after_dots = +# 1840 "parser_cocci_menhir.mly" + (_2) +# 24140 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_exp = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_after_dots = +# 1842 "parser_cocci_menhir.mly" + ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) +# 24170 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_stm = Obj.magic _2 in + let _1 : 'tv_fundecl = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_after_dots = +# 1843 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DECL(_1))::_2 ) +# 24200 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_after_dots = +# 1845 "parser_cocci_menhir.mly" + ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) +# 24230 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_plus_after_exp = +# 1835 "parser_cocci_menhir.mly" + ([]) +# 24247 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_after_exp = +# 1836 "parser_cocci_menhir.mly" + ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) +# 24277 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_plus_after_stm = +# 1848 "parser_cocci_menhir.mly" + ([]) +# 24294 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_after_stm = +# 1849 "parser_cocci_menhir.mly" + ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) +# 24324 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_stm = Obj.magic _2 in + let _1 : 'tv_fundecl = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_after_stm = +# 1850 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DECL(_1))::_2 ) +# 24354 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_after_stm = +# 1852 "parser_cocci_menhir.mly" + ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) +# 24384 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = f; + MenhirLib.EngineTypes.startp = _startpos_f_; + MenhirLib.EngineTypes.endp = _endpos_f_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let b : 'tv_loption_plus_start_ = Obj.magic b in + let f : 'tv_loption_filespec_ = Obj.magic f in + let _startpos = _startpos_f_ in + let _endpos = _endpos_b_ in + let _v : 'tv_plus_body = +# 636 "parser_cocci_menhir.mly" + ( Top_level.top_level (f@b(*@ew*)) ) +# 24414 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = f; + MenhirLib.EngineTypes.startp = _startpos_f_; + MenhirLib.EngineTypes.endp = _endpos_f_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let b : 'tv_top_eexpr = Obj.magic b in + let f : 'tv_loption_filespec_ = Obj.magic f in + let _startpos = _startpos_f_ in + let _endpos = _endpos_b_ in + let _v : 'tv_plus_exp_body = +# 650 "parser_cocci_menhir.mly" + ( Top_level.top_level (f@[b](*@ew*)) ) +# 24444 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _1 : 'tv_plus_exp_body = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : ( +# 124 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 24472 "parser_cocci_menhir.ml" + ) = +# 160 "parser_cocci_menhir.mly" + ( _1 ) +# 24476 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let p : 'tv_plus_exp_body = Obj.magic p in + let _startpos = _startpos_p_ in + let _endpos = _endpos__2_ in + let _v : ( +# 124 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 24504 "parser_cocci_menhir.ml" + ) = +# 160 "parser_cocci_menhir.mly" + ( p ) +# 24508 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let p : 'tv_plus_exp_body = Obj.magic p in + let _startpos = _startpos_p_ in + let _endpos = _endpos__2_ in + let _v : ( +# 124 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 24536 "parser_cocci_menhir.ml" + ) = +# 161 "parser_cocci_menhir.mly" + ( p ) +# 24540 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _1 : 'tv_plus_body = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : ( +# 121 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 24568 "parser_cocci_menhir.ml" + ) = +# 156 "parser_cocci_menhir.mly" + ( _1 ) +# 24572 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let p : 'tv_plus_body = Obj.magic p in + let _startpos = _startpos_p_ in + let _endpos = _endpos__2_ in + let _v : ( +# 121 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 24600 "parser_cocci_menhir.ml" + ) = +# 156 "parser_cocci_menhir.mly" + ( p ) +# 24604 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let p : 'tv_plus_body = Obj.magic p in + let _startpos = _startpos_p_ in + let _endpos = _endpos__2_ in + let _v : ( +# 121 "parser_cocci_menhir.mly" + (Ast0_cocci.rule) +# 24632 "parser_cocci_menhir.ml" + ) = +# 157 "parser_cocci_menhir.mly" + ( p ) +# 24636 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_ctype = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_plus_start = +# 1824 "parser_cocci_menhir.mly" + ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) +# 24660 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_top_init = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_plus_start = +# 1825 "parser_cocci_menhir.mly" + ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) +# 24684 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_start = +# 1827 "parser_cocci_menhir.mly" + ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) +# 24714 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_exp = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_start = +# 1829 "parser_cocci_menhir.mly" + ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) +# 24744 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_stm = Obj.magic _2 in + let _1 : 'tv_fundecl = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_start = +# 1830 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DECL(_1))::_2 ) +# 24774 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_plus_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_plus_start = +# 1832 "parser_cocci_menhir.mly" + ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) +# 24804 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 24825 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pnrule = +# 211 "parser_cocci_menhir.mly" + ( Ast.Dep _1 ) +# 24832 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 24857 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_pnrule = +# 212 "parser_cocci_menhir.mly" + ( Ast.AntiDep _2 ) +# 24864 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 24889 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_pnrule = +# 213 "parser_cocci_menhir.mly" + ( Ast.EverDep _2 ) +# 24896 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 24921 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_pnrule = +# 214 "parser_cocci_menhir.mly" + ( Ast.NeverDep _2 ) +# 24928 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _2 : 'tv_dep = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_pnrule = +# 215 "parser_cocci_menhir.mly" + ( _2 ) +# 24960 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_primary_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = +# 1351 "parser_cocci_menhir.mly" + ( _1 ) +# 24984 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 25020 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr = Obj.magic _3 in + let _2 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 25026 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = +# 1353 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, + P.clt2mcode "]" _4)) ) +# 25035 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_ident = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 25067 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = +# 1356 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) +# 25075 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_ident = Obj.magic _3 in + let _2 : ( +# 83 "parser_cocci_menhir.mly" + (Data.clt) +# 25107 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = +# 1358 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, + _3)) ) +# 25116 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 64 "parser_cocci_menhir.mly" + (Data.clt) +# 25142 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = +# 1361 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) +# 25150 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 64 "parser_cocci_menhir.mly" + (Data.clt) +# 25176 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = +# 1363 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) +# 25184 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 25220 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 25226 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = +# 1365 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, + _3, + P.clt2mcode ")" _4)) ) +# 25236 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_primary_expr_eexpr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_postfix_expr_eexpr_invalid_ = +# 1351 "parser_cocci_menhir.mly" + ( _1 ) +# 25260 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 25296 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr = Obj.magic _3 in + let _2 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 25302 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_postfix_expr_eexpr_invalid_ = +# 1353 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, + P.clt2mcode "]" _4)) ) +# 25311 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_ident = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 25343 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_postfix_expr_eexpr_invalid_ = +# 1356 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) +# 25351 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_ident = Obj.magic _3 in + let _2 : ( +# 83 "parser_cocci_menhir.mly" + (Data.clt) +# 25383 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_postfix_expr_eexpr_invalid_ = +# 1358 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, + _3)) ) +# 25392 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 64 "parser_cocci_menhir.mly" + (Data.clt) +# 25418 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_postfix_expr_eexpr_invalid_ = +# 1361 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) +# 25426 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 64 "parser_cocci_menhir.mly" + (Data.clt) +# 25452 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_postfix_expr_eexpr_invalid_ = +# 1363 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) +# 25460 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 25496 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 25502 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_postfix_expr_eexpr_invalid_ = +# 1365 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, + _3, + P.clt2mcode ")" _4)) ) +# 25512 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_primary_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = +# 1351 "parser_cocci_menhir.mly" + ( _1 ) +# 25536 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 25572 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr = Obj.magic _3 in + let _2 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 25578 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = +# 1353 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, + P.clt2mcode "]" _4)) ) +# 25587 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_ident = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 25619 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = +# 1356 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) +# 25627 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_ident = Obj.magic _3 in + let _2 : ( +# 83 "parser_cocci_menhir.mly" + (Data.clt) +# 25659 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = +# 1358 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, + _3)) ) +# 25668 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 64 "parser_cocci_menhir.mly" + (Data.clt) +# 25694 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = +# 1361 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) +# 25702 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 64 "parser_cocci_menhir.mly" + (Data.clt) +# 25728 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = +# 1363 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) +# 25736 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 25772 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 25778 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = +# 1365 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, + _3, + P.clt2mcode ")" _4)) ) +# 25788 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_primary_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_postfix_expr_expr_invalid_ = +# 1351 "parser_cocci_menhir.mly" + ( _1 ) +# 25812 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 25848 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr = Obj.magic _3 in + let _2 : ( +# 81 "parser_cocci_menhir.mly" + (Data.clt) +# 25854 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_postfix_expr_expr_invalid_ = +# 1353 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, + P.clt2mcode "]" _4)) ) +# 25863 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_ident = Obj.magic _3 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 25895 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_postfix_expr_expr_invalid_ = +# 1356 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) +# 25903 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : 'tv_ident = Obj.magic _3 in + let _2 : ( +# 83 "parser_cocci_menhir.mly" + (Data.clt) +# 25935 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_postfix_expr_expr_invalid_ = +# 1358 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, + _3)) ) +# 25944 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 64 "parser_cocci_menhir.mly" + (Data.clt) +# 25970 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_postfix_expr_expr_invalid_ = +# 1361 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) +# 25978 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : ( +# 64 "parser_cocci_menhir.mly" + (Data.clt) +# 26004 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_postfix_expr_expr_invalid_ = +# 1363 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) +# 26012 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 26048 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 26054 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_postfix_expr_expr_invalid_ = +# 1365 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, + _3, + P.clt2mcode ")" _4)) ) +# 26064 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_func_ident = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1370 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Ident(_1)) ) +# 26088 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26109 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1372 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) +# 26117 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26138 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1375 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) +# 26146 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26167 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1378 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) +# 26175 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26196 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1381 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) +# 26204 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 26225 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1384 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) +# 26234 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 42 "parser_cocci_menhir.mly" + (Parse_aux.expinfo) +# 26255 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1388 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) +# 26263 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 26284 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1391 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) +# 26293 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 26314 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1395 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) +# 26323 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 26344 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1399 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) +# 26353 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 26384 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_eexpr = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 26390 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1403 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, + P.clt2mcode ")" _3)) ) +# 26398 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 26429 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 26435 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1406 "parser_cocci_menhir.mly" + ( let (mids,code) = _2 in + Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, + code, mids, + P.clt2mcode ")" _3)) ) +# 26445 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_dot_expressions = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_dot_expressions_ = +# 1410 "parser_cocci_menhir.mly" + ( _1 ) +# 26469 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_func_ident = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1370 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Ident(_1)) ) +# 26493 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26514 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1372 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) +# 26522 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26543 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1375 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) +# 26551 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26572 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1378 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) +# 26580 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26601 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1381 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) +# 26609 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 26630 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1384 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) +# 26639 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 42 "parser_cocci_menhir.mly" + (Parse_aux.expinfo) +# 26660 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1388 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) +# 26668 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 26689 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1391 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) +# 26698 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 26719 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1395 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) +# 26728 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 26749 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1399 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) +# 26758 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 26789 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_eexpr = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 26795 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1403 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, + P.clt2mcode ")" _3)) ) +# 26803 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 26834 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 26840 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1406 "parser_cocci_menhir.mly" + ( let (mids,code) = _2 in + Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, + code, mids, + P.clt2mcode ")" _3)) ) +# 26850 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_invalid = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_invalid_ = +# 1410 "parser_cocci_menhir.mly" + ( _1 ) +# 26874 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_func_ident = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1370 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Ident(_1)) ) +# 26898 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26919 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1372 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) +# 26927 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26948 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1375 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) +# 26956 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 26977 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1378 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) +# 26985 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 27006 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1381 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) +# 27014 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 27035 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1384 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) +# 27044 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 42 "parser_cocci_menhir.mly" + (Parse_aux.expinfo) +# 27065 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1388 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) +# 27073 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 27094 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1391 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) +# 27103 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 27124 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1395 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) +# 27133 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 27154 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1399 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) +# 27163 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 27194 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_eexpr = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 27200 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1403 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, + P.clt2mcode ")" _3)) ) +# 27208 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 27239 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 27245 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1406 "parser_cocci_menhir.mly" + ( let (mids,code) = _2 in + Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, + code, mids, + P.clt2mcode ")" _3)) ) +# 27255 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_nest_expressions = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_eexpr_nest_expressions_ = +# 1410 "parser_cocci_menhir.mly" + ( _1 ) +# 27279 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_func_ident = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1370 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Ident(_1)) ) +# 27303 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 27324 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1372 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) +# 27332 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 27353 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1375 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) +# 27361 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 27382 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1378 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) +# 27390 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 27411 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1381 "parser_cocci_menhir.mly" + ( let (x,clt) = _1 in + Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) +# 27419 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 27440 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1384 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) +# 27449 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 42 "parser_cocci_menhir.mly" + (Parse_aux.expinfo) +# 27470 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1388 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,clt) = _1 in + Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) +# 27478 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 27499 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1391 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) +# 27508 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20769,13 +27515,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_option_TLocal_ = -# 29 "standard.mly" - ( None ) -# 20779 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 27529 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1395 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) +# 27538 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20788,18 +27547,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : unit = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_option_TLocal_ = -# 31 "standard.mly" - ( Some x ) -# 20803 "parser_cocci_menhir.ml" + let _1 : ( +# 46 "parser_cocci_menhir.mly" + (Parse_aux.typed_expinfo) +# 27559 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1399 "parser_cocci_menhir.mly" + ( let (nm,constraints,pure,ty,clt) = _1 in + Ast0.wrap + (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) +# 27568 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20810,13 +27575,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_option_TPosAny_ = -# 29 "standard.mly" - ( None ) -# 20820 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 27599 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_eexpr = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 27605 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1403 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, + P.clt2mcode ")" _3)) ) +# 27613 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20828,19 +27621,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let x : unit = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_option_TPosAny_ = -# 31 "standard.mly" - ( Some x ) -# 20844 "parser_cocci_menhir.ml" + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 27644 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 27650 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1406 "parser_cocci_menhir.mly" + ( let (mids,code) = _2 in + Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, + code, mids, + P.clt2mcode ")" _3)) ) +# 27660 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20851,13 +27667,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_option_eexpr_ = -# 29 "standard.mly" - ( None ) -# 20861 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_invalid = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_primary_expr_expr_invalid_ = +# 1410 "parser_cocci_menhir.mly" + ( _1 ) +# 27684 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20870,18 +27693,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : 'tv_eexpr = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_option_eexpr_ = -# 31 "standard.mly" - ( Some x ) -# 20885 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure = +# 171 "parser_cocci_menhir.mly" + ( Ast0.Pure ) +# 27706 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20892,13 +27713,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_plus_after_dots = -# 1659 "parser_cocci_menhir.mly" - ([]) -# 20902 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure = +# 172 "parser_cocci_menhir.mly" + ( Ast0.Context ) +# 27728 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20910,7 +27736,6 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { @@ -20920,13 +27745,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_plus_after_exp = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_plus_after_dots = -# 1660 "parser_cocci_menhir.mly" - (_2) -# 20930 "parser_cocci_menhir.ml" + let _v : 'tv_pure = +# 173 "parser_cocci_menhir.mly" + ( Ast0.PureContext ) +# 27754 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20938,25 +27762,38 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_plus_after_exp = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_plus_after_dots = -# 1662 "parser_cocci_menhir.mly" - ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) -# 20960 "parser_cocci_menhir.ml" + let _v : 'tv_pure = +# 174 "parser_cocci_menhir.mly" + ( Ast0.PureContext ) +# 27780 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_pure = +# 175 "parser_cocci_menhir.mly" + ( Ast0.Impure ) +# 27797 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20968,25 +27805,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_stm = Obj.magic _2 in - let _1 : 'tv_fundecl = Obj.magic _1 in + let _1 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 27818 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_after_dots = -# 1663 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DECL(_1))::_2 ) -# 20990 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident = +# 1424 "parser_cocci_menhir.mly" + ( _1 ) +# 27825 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20998,25 +27833,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : 'tv_plus_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_after_dots = -# 1665 "parser_cocci_menhir.mly" - ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 21020 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1427 "parser_cocci_menhir.mly" + ( "identifier" ) +# 27847 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21027,13 +27854,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_plus_after_exp = -# 1655 "parser_cocci_menhir.mly" - ([]) -# 21037 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1428 "parser_cocci_menhir.mly" + ( "expression" ) +# 27869 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21045,25 +27877,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_after_exp = -# 1656 "parser_cocci_menhir.mly" - ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 21067 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1429 "parser_cocci_menhir.mly" + ( "statement" ) +# 27891 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21074,13 +27898,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_plus_after_stm = -# 1668 "parser_cocci_menhir.mly" - ([]) -# 21084 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1430 "parser_cocci_menhir.mly" + ( "function" ) +# 27913 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21092,25 +27921,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_after_stm = -# 1669 "parser_cocci_menhir.mly" - ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 21114 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1431 "parser_cocci_menhir.mly" + ( "local" ) +# 27935 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21122,25 +27943,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_stm = Obj.magic _2 in - let _1 : 'tv_fundecl = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_after_stm = -# 1670 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DECL(_1))::_2 ) -# 21144 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1432 "parser_cocci_menhir.mly" + ( "type" ) +# 27957 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21152,25 +27965,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_after_stm = -# 1672 "parser_cocci_menhir.mly" - ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 21174 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1433 "parser_cocci_menhir.mly" + ( "parameter" ) +# 27979 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21182,31 +27987,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ew; - MenhirLib.EngineTypes.startp = _startpos_ew_; - MenhirLib.EngineTypes.endp = _endpos_ew_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = f; - MenhirLib.EngineTypes.startp = _startpos_f_; - MenhirLib.EngineTypes.endp = _endpos_f_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ew : 'tv_loption_error_words_ = Obj.magic ew in - let b : 'tv_loption_plus_start_ = Obj.magic b in - let f : 'tv_loption_filespec_ = Obj.magic f in - let _startpos = _startpos_f_ in - let _endpos = _endpos_ew_ in - let _v : 'tv_plus_body = -# 605 "parser_cocci_menhir.mly" - ( Top_level.top_level (f@b@ew) ) -# 21210 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1434 "parser_cocci_menhir.mly" + ( "idexpression" ) +# 28001 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21218,31 +28009,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = ew; - MenhirLib.EngineTypes.startp = _startpos_ew_; - MenhirLib.EngineTypes.endp = _endpos_ew_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = f; - MenhirLib.EngineTypes.startp = _startpos_f_; - MenhirLib.EngineTypes.endp = _endpos_f_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ew : 'tv_loption_error_words_ = Obj.magic ew in - let b : 'tv_top_eexpr = Obj.magic b in - let f : 'tv_loption_filespec_ = Obj.magic f in - let _startpos = _startpos_f_ in - let _endpos = _endpos_ew_ in - let _v : 'tv_plus_exp_body = -# 619 "parser_cocci_menhir.mly" - ( Top_level.top_level (f@[b]@ew) ) -# 21246 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1435 "parser_cocci_menhir.mly" + ( "initialiser" ) +# 28023 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21254,27 +28031,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_plus_exp_body = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : ( -# 143 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 21274 "parser_cocci_menhir.ml" - ) = -# 179 "parser_cocci_menhir.mly" - ( _1 ) -# 21278 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1436 "parser_cocci_menhir.mly" + ( "list" ) +# 28045 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21286,27 +28053,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let p : 'tv_plus_exp_body = Obj.magic p in - let _startpos = _startpos_p_ in - let _endpos = _endpos__2_ in - let _v : ( -# 143 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 21306 "parser_cocci_menhir.ml" - ) = -# 179 "parser_cocci_menhir.mly" - ( p ) -# 21310 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1437 "parser_cocci_menhir.mly" + ( "fresh" ) +# 28067 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21318,27 +28075,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let p : 'tv_plus_exp_body = Obj.magic p in - let _startpos = _startpos_p_ in - let _endpos = _endpos__2_ in - let _v : ( -# 143 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 21338 "parser_cocci_menhir.ml" - ) = -# 180 "parser_cocci_menhir.mly" - ( p ) -# 21342 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1438 "parser_cocci_menhir.mly" + ( "constant" ) +# 28089 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21350,27 +28097,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_plus_body = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : ( -# 140 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 21370 "parser_cocci_menhir.ml" - ) = -# 175 "parser_cocci_menhir.mly" - ( _1 ) -# 21374 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1439 "parser_cocci_menhir.mly" + ( "error" ) +# 28111 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1440 "parser_cocci_menhir.mly" + ( "words" ) +# 28133 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21382,27 +28141,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let p : 'tv_plus_body = Obj.magic p in - let _startpos = _startpos_p_ in - let _endpos = _endpos__2_ in - let _v : ( -# 140 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 21402 "parser_cocci_menhir.ml" - ) = -# 175 "parser_cocci_menhir.mly" - ( p ) -# 21406 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1441 "parser_cocci_menhir.mly" + ( "pure" ) +# 28155 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21414,27 +28163,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let p : 'tv_plus_body = Obj.magic p in - let _startpos = _startpos_p_ in - let _endpos = _endpos__2_ in - let _v : ( -# 140 "parser_cocci_menhir.mly" - (Ast0_cocci.rule) -# 21434 "parser_cocci_menhir.ml" - ) = -# 176 "parser_cocci_menhir.mly" - ( p ) -# 21438 "parser_cocci_menhir.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1442 "parser_cocci_menhir.mly" + ( "context" ) +# 28177 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21447,18 +28186,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_ctype = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_plus_start = -# 1644 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) -# 21462 "parser_cocci_menhir.ml" + let _v : 'tv_pure_ident_kwd = +# 1443 "parser_cocci_menhir.mly" + ( "generated" ) +# 28199 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21471,18 +28208,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_top_init = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_plus_start = -# 1645 "parser_cocci_menhir.mly" - ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) -# 21486 "parser_cocci_menhir.ml" + let _v : 'tv_pure_ident_kwd = +# 1444 "parser_cocci_menhir.mly" + ( "typedef" ) +# 28221 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21494,25 +28229,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_start = -# 1647 "parser_cocci_menhir.mly" - ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 21516 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1445 "parser_cocci_menhir.mly" + ( "declarer" ) +# 28243 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21524,25 +28251,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_exp = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_start = -# 1649 "parser_cocci_menhir.mly" - ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) -# 21546 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1446 "parser_cocci_menhir.mly" + ( "iterator" ) +# 28265 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21554,25 +28273,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_stm = Obj.magic _2 in - let _1 : 'tv_fundecl = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_start = -# 1650 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DECL(_1))::_2 ) -# 21576 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1447 "parser_cocci_menhir.mly" + ( "name" ) +# 28287 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21584,25 +28295,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : 'tv_plus_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_plus_start = -# 1652 "parser_cocci_menhir.mly" - ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 21606 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_kwd = +# 1448 "parser_cocci_menhir.mly" + ( "position" ) +# 28309 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21620,17 +28323,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 47 "parser_cocci_menhir.mly" - (string) -# 21627 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _1 : 'tv_pure_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_pnrule = -# 226 "parser_cocci_menhir.mly" - ( Ast.Dep _1 ) -# 21634 "parser_cocci_menhir.ml" + let _v : 'tv_pure_ident_or_meta_ident = +# 1455 "parser_cocci_menhir.mly" + ( (None,P.id2name _1) ) +# 28333 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21642,27 +28341,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : ( -# 47 "parser_cocci_menhir.mly" - (string) -# 21659 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in + let _1 : 'tv_pure_ident_kwd = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_pnrule = -# 227 "parser_cocci_menhir.mly" - ( Ast.AntiDep _2 ) -# 21666 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_or_meta_ident = +# 1456 "parser_cocci_menhir.mly" + ( (None,_1) ) +# 28357 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21674,27 +28365,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : ( -# 47 "parser_cocci_menhir.mly" - (string) -# 21691 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in + let _1 : 'tv_meta_ident = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_pnrule = -# 228 "parser_cocci_menhir.mly" - ( Ast.EverDep _2 ) -# 21698 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_or_meta_ident = +# 1457 "parser_cocci_menhir.mly" + ( _1 ) +# 28381 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21706,27 +28389,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = optc; + MenhirLib.EngineTypes.startp = _startpos_optc_; + MenhirLib.EngineTypes.endp = _endpos_optc_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 47 "parser_cocci_menhir.mly" - (string) -# 21723 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_pnrule = -# 229 "parser_cocci_menhir.mly" - ( Ast.NeverDep _2 ) -# 21730 "parser_cocci_menhir.ml" + let optc : 'tv_option_not_ceq_or_sub_ = Obj.magic optc in + let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_optc_ in + let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub_ = +# 1483 "parser_cocci_menhir.mly" + ( + match optc with + None -> (i, Ast0.NoConstraint) + | Some c -> (i, c) + ) +# 28415 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21738,27 +28423,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = optc; + MenhirLib.EngineTypes.startp = _startpos_optc_; + MenhirLib.EngineTypes.endp = _endpos_optc_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_dep = Obj.magic _2 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_pnrule = -# 230 "parser_cocci_menhir.mly" - ( _2 ) -# 21762 "parser_cocci_menhir.ml" + let optc : 'tv_option_re_or_not_eqe_or_sub_ = Obj.magic optc in + let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_optc_ in + let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub_ = +# 1483 "parser_cocci_menhir.mly" + ( + match optc with + None -> (i, Ast0.NoConstraint) + | Some c -> (i, c) + ) +# 28449 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21770,19 +28457,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = c; + MenhirLib.EngineTypes.startp = _startpos_c_; + MenhirLib.EngineTypes.endp = _endpos_c_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : 'tv_primary_expr_eexpr_dot_expressions_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1312 "parser_cocci_menhir.mly" - ( _1 ) -# 21786 "parser_cocci_menhir.ml" + let c : 'tv_option_re_or_not_eqid_ = Obj.magic c in + let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_c_ in + let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = +# 1501 "parser_cocci_menhir.mly" + ( + match c with + None -> (i, Ast.IdNoConstraint) + | Some constraint_ -> (i,constraint_) + ) +# 28483 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21794,46 +28491,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = c; + MenhirLib.EngineTypes.startp = _startpos_c_; + MenhirLib.EngineTypes.endp = _endpos_c_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _4 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 21822 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr = Obj.magic _3 in - let _2 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 21828 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1314 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, - P.clt2mcode "]" _4)) ) -# 21837 "parser_cocci_menhir.ml" + let c : 'tv_option_re_or_not_eqid_ = Obj.magic c in + let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_c_ in + let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = +# 1491 "parser_cocci_menhir.mly" + ( + Common.Left + (match c with + None -> (i, Ast.IdNoConstraint) + | Some constraint_ -> (i,constraint_)) + ) +# 28518 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21849,31 +28530,47 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos__3_; MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : 'tv_ident = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 21869 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _3 : 'tv_pure_ident = Obj.magic _3 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1317 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 21877 "parser_cocci_menhir.ml" + let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = +# 1497 "parser_cocci_menhir.mly" + ( Common.Right (P.id2name _3) ) +# 28550 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_pure_ident_or_meta_ident = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_pure_ident_or_meta_ident_with_seed = +# 1460 "parser_cocci_menhir.mly" + ( (_1,Ast.NoVal) ) +# 28574 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21889,7 +28586,6 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.startp = _startpos__3_; MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { @@ -21901,20 +28597,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let _3 : 'tv_ident = Obj.magic _3 in - let _2 : ( -# 104 "parser_cocci_menhir.mly" - (Data.clt) -# 21909 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in + let _3 : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = Obj.magic _3 in + let _1 : 'tv_pure_ident_or_meta_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1319 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, - _3)) ) -# 21918 "parser_cocci_menhir.ml" + let _v : 'tv_pure_ident_or_meta_ident_with_seed = +# 1463 "parser_cocci_menhir.mly" + ( match _3 with + [Ast.SeedString s] -> (_1,Ast.StringSeed s) + | _ -> (_1,Ast.ListSeed _3) ) +# 28610 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21926,29 +28618,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = l; + MenhirLib.EngineTypes.startp = _startpos_l_; + MenhirLib.EngineTypes.endp = _endpos_l_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 85 "parser_cocci_menhir.mly" - (Data.clt) -# 21944 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1322 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 21952 "parser_cocci_menhir.ml" + let l : 'tv_loption_not_pos_ = Obj.magic l in + let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_l_ in + let _v : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = +# 1477 "parser_cocci_menhir.mly" + ( + (i, l) + ) +# 28642 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21960,29 +28650,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = re; + MenhirLib.EngineTypes.startp = _startpos_re_; + MenhirLib.EngineTypes.endp = _endpos_re_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : ( -# 85 "parser_cocci_menhir.mly" - (Data.clt) -# 21978 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1324 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 21986 "parser_cocci_menhir.ml" + let re : 'tv_regexp_eqid = Obj.magic re in + let _startpos = _startpos_re_ in + let _endpos = _endpos_re_ in + let _v : 'tv_re_or_not_eqe_or_sub = +# 1562 "parser_cocci_menhir.mly" + (Ast0.NotIdCstrt re) +# 28666 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21994,47 +28674,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ne; + MenhirLib.EngineTypes.startp = _startpos_ne_; + MenhirLib.EngineTypes.endp = _endpos_ne_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 22022 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr_list_option = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 22028 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1326 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, - _3, - P.clt2mcode ")" _4)) ) -# 22038 "parser_cocci_menhir.ml" + let ne : 'tv_not_eqe = Obj.magic ne in + let _startpos = _startpos_ne_ in + let _endpos = _endpos_ne_ in + let _v : 'tv_re_or_not_eqe_or_sub = +# 1563 "parser_cocci_menhir.mly" + (Ast0.NotExpCstrt ne) +# 28690 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22047,18 +28699,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_primary_expr_eexpr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1312 "parser_cocci_menhir.mly" - ( _1 ) -# 22062 "parser_cocci_menhir.ml" + let s : 'tv_sub = Obj.magic s in + let _startpos = _startpos_s_ in + let _endpos = _endpos_s_ in + let _v : 'tv_re_or_not_eqe_or_sub = +# 1564 "parser_cocci_menhir.mly" + (Ast0.SubExpCstrt s) +# 28714 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22070,46 +28722,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = re; + MenhirLib.EngineTypes.startp = _startpos_re_; + MenhirLib.EngineTypes.endp = _endpos_re_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 22098 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr = Obj.magic _3 in - let _2 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 22104 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1314 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, - P.clt2mcode "]" _4)) ) -# 22113 "parser_cocci_menhir.ml" + let re : 'tv_regexp_eqid = Obj.magic re in + let _startpos = _startpos_re_ in + let _endpos = _endpos_re_ in + let _v : 'tv_re_or_not_eqid = +# 1508 "parser_cocci_menhir.mly" + (Ast.IdRegExpConstraint re) +# 28738 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22121,35 +28746,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : 'tv_ident = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 22145 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1317 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 22153 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ne; + MenhirLib.EngineTypes.startp = _startpos_ne_; + MenhirLib.EngineTypes.endp = _endpos_ne_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let ne : 'tv_not_eqid = Obj.magic ne in + let _startpos = _startpos_ne_ in + let _endpos = _endpos_ne_ in + let _v : 'tv_re_or_not_eqid = +# 1509 "parser_cocci_menhir.mly" + (ne) +# 28762 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22161,36 +28770,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = re; + MenhirLib.EngineTypes.startp = _startpos_re_; + MenhirLib.EngineTypes.endp = _endpos_re_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : 'tv_ident = Obj.magic _3 in - let _2 : ( -# 104 "parser_cocci_menhir.mly" - (Data.clt) -# 22185 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let re : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 28787 "parser_cocci_menhir.ml" + ) = Obj.magic re in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1319 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, - _3)) ) -# 22194 "parser_cocci_menhir.ml" + let _endpos = _endpos_re_ in + let _v : 'tv_regexp_eqid = +# 1513 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + let (s,_) = re in Ast.IdRegExp (s,Str.regexp s) + ) +# 28799 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22202,29 +28807,77 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = re; + MenhirLib.EngineTypes.startp = _startpos_re_; + MenhirLib.EngineTypes.endp = _endpos_re_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 85 "parser_cocci_menhir.mly" - (Data.clt) -# 22220 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let re : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 28824 "parser_cocci_menhir.ml" + ) = Obj.magic re in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1322 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 22228 "parser_cocci_menhir.ml" + let _endpos = _endpos_re_ in + let _v : 'tv_regexp_eqid = +# 1520 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + let (s,_) = re in Ast.IdNotRegExp (s,Str.regexp s) + ) +# 28836 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : ( +# 112 "parser_cocci_menhir.mly" + (unit) +# 28853 "parser_cocci_menhir.ml" + ) = +# 153 "parser_cocci_menhir.mly" + ( ) +# 28857 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_one_decl_var = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_rule_elem_statement = +# 928 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) ) +# 28881 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22248,17 +28901,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 22254 "parser_cocci_menhir.ml" +# 28907 "parser_cocci_menhir.ml" ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in + let _1 : 'tv_expr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1324 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 22262 "parser_cocci_menhir.ml" + let _v : 'tv_rule_elem_statement = +# 929 "parser_cocci_menhir.mly" + ( P.exp_stm _1 _2 ) +# 28915 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22270,47 +28923,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _4 : ( -# 77 "parser_cocci_menhir.mly" + let _3 : ( +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 22298 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr_list_option = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 28946 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_eexpr = Obj.magic _2 in + let _1 : ( +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 22304 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in +# 28952 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1326 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, - _3, - P.clt2mcode ")" _4)) ) -# 22314 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_rule_elem_statement = +# 930 "parser_cocci_menhir.mly" + ( P.ret_exp _1 _2 _3 ) +# 28959 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22322,19 +28967,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : 'tv_primary_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 28985 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : ( +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 28990 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1312 "parser_cocci_menhir.mly" - ( _1 ) -# 22338 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_rule_elem_statement = +# 931 "parser_cocci_menhir.mly" + ( P.ret _1 _2 ) +# 28997 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22346,46 +29005,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _4 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 22374 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 102 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 22380 "parser_cocci_menhir.ml" +# 29023 "parser_cocci_menhir.ml" ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _1 : ( +# 36 "parser_cocci_menhir.mly" + (Data.clt) +# 29028 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1314 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, - P.clt2mcode "]" _4)) ) -# 22389 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_rule_elem_statement = +# 932 "parser_cocci_menhir.mly" + ( P.break _1 _2 ) +# 29035 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22397,35 +29043,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 107 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 22421 "parser_cocci_menhir.ml" +# 29061 "parser_cocci_menhir.ml" ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let _1 : ( +# 36 "parser_cocci_menhir.mly" + (Data.clt) +# 29066 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1317 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 22429 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_rule_elem_statement = +# 933 "parser_cocci_menhir.mly" + ( P.cont _1 _2 ) +# 29073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22453,20 +29097,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let _3 : 'tv_ident = Obj.magic _3 in - let _2 : ( -# 104 "parser_cocci_menhir.mly" + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 29104 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 22461 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in +# 29110 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1319 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, - _3)) ) -# 22470 "parser_cocci_menhir.ml" + let _v : 'tv_rule_elem_statement = +# 935 "parser_cocci_menhir.mly" + ( let (mids,code) = _2 in + Ast0.wrap + (Ast0.Disj(P.clt2mcode "(" _1, + List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code, + mids, P.clt2mcode ")" _3)) ) +# 29121 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22478,29 +29129,62 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ee; + MenhirLib.EngineTypes.startp = _startpos_ee_; + MenhirLib.EngineTypes.endp = _endpos_ee_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : ( -# 85 "parser_cocci_menhir.mly" - (Data.clt) -# 22496 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let ee : 'tv_is_expression = Obj.magic ee in + let e : 'tv_exists = Obj.magic e in + let a : 'tv_loption_disable_ = Obj.magic a in + let i : 'tv_loption_choose_iso_ = Obj.magic i in + let d : 'tv_depends = Obj.magic d in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1322 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 22504 "parser_cocci_menhir.ml" + let _endpos = _endpos__7_ in + let _v : ( +# 134 "parser_cocci_menhir.mly" + (Ast_cocci.rulename) +# 29177 "parser_cocci_menhir.ml" + ) = let nm = + +# 39 "standard.mly" + ( None ) +# 29182 "parser_cocci_menhir.ml" + + in + +# 183 "parser_cocci_menhir.mly" + ( P.make_cocci_rule_name_result nm d i a e ee ) +# 29188 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22512,29 +29196,69 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ee; + MenhirLib.EngineTypes.startp = _startpos_ee_; + MenhirLib.EngineTypes.endp = _endpos_ee_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : ( -# 85 "parser_cocci_menhir.mly" - (Data.clt) -# 22530 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1324 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 22538 "parser_cocci_menhir.ml" + let ee : 'tv_is_expression = Obj.magic ee in + let e : 'tv_exists = Obj.magic e in + let a : 'tv_loption_disable_ = Obj.magic a in + let i : 'tv_loption_choose_iso_ = Obj.magic i in + let d : 'tv_depends = Obj.magic d in + let x0 : 'tv_pure_ident = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos__8_ in + let _v : ( +# 134 "parser_cocci_menhir.mly" + (Ast_cocci.rulename) +# 29250 "parser_cocci_menhir.ml" + ) = let nm = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 29256 "parser_cocci_menhir.ml" + + in + +# 183 "parser_cocci_menhir.mly" + ( P.make_cocci_rule_name_result nm d i a e ee ) +# 29262 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22546,47 +29270,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = ee; + MenhirLib.EngineTypes.startp = _startpos_ee_; + MenhirLib.EngineTypes.endp = _endpos_ee_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = a; + MenhirLib.EngineTypes.startp = _startpos_a_; + MenhirLib.EngineTypes.endp = _endpos_a_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; }; } = _menhir_stack in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 22574 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr_list_option = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 22580 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in + let ee : 'tv_is_expression = Obj.magic ee in + let e : 'tv_exists = Obj.magic e in + let a : 'tv_loption_disable_ = Obj.magic a in + let i : 'tv_loption_choose_iso_ = Obj.magic i in + let d : 'tv_depends = Obj.magic d in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1326 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, - _3, - P.clt2mcode ")" _4)) ) -# 22590 "parser_cocci_menhir.ml" + let _endpos = _endpos__8_ in + let _v : ( +# 134 "parser_cocci_menhir.mly" + (Ast_cocci.rulename) +# 29322 "parser_cocci_menhir.ml" + ) = +# 188 "parser_cocci_menhir.mly" + ( P.make_generated_rule_name_result None d i a e ee ) +# 29326 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22598,19 +29334,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lang; + MenhirLib.EngineTypes.startp = _startpos_lang_; + MenhirLib.EngineTypes.endp = _endpos_lang_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_primary_expr_expr_invalid_ = Obj.magic _1 in + let d : 'tv_depends = Obj.magic d in + let lang : 'tv_pure_ident = Obj.magic lang in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_postfix_expr_expr_invalid_ = -# 1312 "parser_cocci_menhir.mly" - ( _1 ) -# 22614 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : ( +# 134 "parser_cocci_menhir.mly" + (Ast_cocci.rulename) +# 29368 "parser_cocci_menhir.ml" + ) = let nm = + +# 39 "standard.mly" + ( None ) +# 29373 "parser_cocci_menhir.ml" + + in + +# 190 "parser_cocci_menhir.mly" + ( P.make_script_rule_name_result lang nm d ) +# 29379 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22622,46 +29387,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = lang; + MenhirLib.EngineTypes.startp = _startpos_lang_; + MenhirLib.EngineTypes.endp = _endpos_lang_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; } = _menhir_stack in - let _4 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 22650 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr = Obj.magic _3 in - let _2 : ( -# 102 "parser_cocci_menhir.mly" - (Data.clt) -# 22656 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let d : 'tv_depends = Obj.magic d in + let x0 : 'tv_pure_ident = Obj.magic x0 in + let lang : 'tv_pure_ident = Obj.magic lang in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_postfix_expr_expr_invalid_ = -# 1314 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, - P.clt2mcode "]" _4)) ) -# 22665 "parser_cocci_menhir.ml" + let _endpos = _endpos__6_ in + let _v : ( +# 134 "parser_cocci_menhir.mly" + (Ast_cocci.rulename) +# 29427 "parser_cocci_menhir.ml" + ) = let nm = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 29433 "parser_cocci_menhir.ml" + + in + +# 190 "parser_cocci_menhir.mly" + ( P.make_script_rule_name_result lang nm d ) +# 29439 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22673,35 +29447,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = lang; + MenhirLib.EngineTypes.startp = _startpos_lang_; + MenhirLib.EngineTypes.endp = _endpos_lang_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let _3 : 'tv_ident = Obj.magic _3 in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 22697 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let d : 'tv_depends = Obj.magic d in + let lang : 'tv_pure_ident = Obj.magic lang in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_postfix_expr_expr_invalid_ = -# 1317 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 22705 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : ( +# 134 "parser_cocci_menhir.mly" + (Ast_cocci.rulename) +# 29481 "parser_cocci_menhir.ml" + ) = +# 192 "parser_cocci_menhir.mly" + ( P.make_initial_script_rule_name_result lang d ) +# 29485 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22713,36 +29493,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = lang; + MenhirLib.EngineTypes.startp = _startpos_lang_; + MenhirLib.EngineTypes.endp = _endpos_lang_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let _3 : 'tv_ident = Obj.magic _3 in - let _2 : ( -# 104 "parser_cocci_menhir.mly" - (Data.clt) -# 22737 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let d : 'tv_depends = Obj.magic d in + let lang : 'tv_pure_ident = Obj.magic lang in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_postfix_expr_expr_invalid_ = -# 1319 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, - _3)) ) -# 22746 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : ( +# 134 "parser_cocci_menhir.mly" + (Ast_cocci.rulename) +# 29527 "parser_cocci_menhir.ml" + ) = +# 194 "parser_cocci_menhir.mly" + ( P.make_final_script_rule_name_result lang d ) +# 29531 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22754,29 +29539,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = py; + MenhirLib.EngineTypes.startp = _startpos_py_; + MenhirLib.EngineTypes.endp = _endpos_py_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 85 "parser_cocci_menhir.mly" - (Data.clt) -# 22772 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in + let py : 'tv_pure_ident = Obj.magic py in + let _startpos = _startpos_py_ in let _endpos = _endpos__2_ in - let _v : 'tv_postfix_expr_expr_invalid_ = -# 1322 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 22780 "parser_cocci_menhir.ml" + let _v : ( +# 140 "parser_cocci_menhir.mly" + ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) +# 29559 "parser_cocci_menhir.ml" + ) = +# 2045 "parser_cocci_menhir.mly" + ( ((Some (P.id2name py), None), None) ) +# 29563 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22788,29 +29571,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = py; + MenhirLib.EngineTypes.startp = _startpos_py_; + MenhirLib.EngineTypes.endp = _endpos_py_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : ( -# 85 "parser_cocci_menhir.mly" - (Data.clt) -# 22806 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_postfix_expr_expr_invalid_ = -# 1324 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 22814 "parser_cocci_menhir.ml" + let _2 : 'tv_script_name_decl = Obj.magic _2 in + let py : 'tv_pure_ident = Obj.magic py in + let _startpos = _startpos_py_ in + let _endpos = _endpos__3_ in + let _v : ( +# 140 "parser_cocci_menhir.mly" + ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) +# 29597 "parser_cocci_menhir.ml" + ) = +# 2047 "parser_cocci_menhir.mly" + ( ((Some (P.id2name py), None), Some _2) ) +# 29601 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22822,47 +29609,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ast; + MenhirLib.EngineTypes.startp = _startpos_ast_; + MenhirLib.EngineTypes.endp = _endpos_ast_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; }; } = _menhir_stack in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 22850 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr_list_option = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 22856 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in + let _6 : 'tv_script_name_decl = Obj.magic _6 in + let ast : 'tv_pure_ident = Obj.magic ast in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : 'tv_postfix_expr_expr_invalid_ = -# 1326 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, - _3, - P.clt2mcode ")" _4)) ) -# 22866 "parser_cocci_menhir.ml" + let _endpos = _endpos__7_ in + let _v : ( +# 140 "parser_cocci_menhir.mly" + ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) +# 29651 "parser_cocci_menhir.ml" + ) = +# 2049 "parser_cocci_menhir.mly" + ( ((None, Some (P.id2name ast)), Some _6) ) +# 29655 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22874,19 +29663,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = str; + MenhirLib.EngineTypes.startp = _startpos_str_; + MenhirLib.EngineTypes.endp = _endpos_str_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_func_ident = Obj.magic _1 in + let _6 : 'tv_script_name_decl = Obj.magic _6 in + let str : 'tv_pure_ident = Obj.magic str in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1331 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Ident(_1)) ) -# 22890 "parser_cocci_menhir.ml" + let _endpos = _endpos__7_ in + let _v : ( +# 140 "parser_cocci_menhir.mly" + ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) +# 29705 "parser_cocci_menhir.ml" + ) = +# 2051 "parser_cocci_menhir.mly" + ( ((Some (P.id2name str), None), Some _6) ) +# 29709 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22898,24 +29717,51 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ast; + MenhirLib.EngineTypes.startp = _startpos_ast_; + MenhirLib.EngineTypes.endp = _endpos_ast_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = str; + MenhirLib.EngineTypes.startp = _startpos_str_; + MenhirLib.EngineTypes.endp = _endpos_str_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 22911 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _6 : 'tv_script_name_decl = Obj.magic _6 in + let ast : 'tv_pure_ident = Obj.magic ast in + let str : 'tv_pure_ident = Obj.magic str in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1333 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 22919 "parser_cocci_menhir.ml" + let _endpos = _endpos__7_ in + let _v : ( +# 140 "parser_cocci_menhir.mly" + ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) +# 29761 "parser_cocci_menhir.ml" + ) = +# 2053 "parser_cocci_menhir.mly" + ( ((Some (P.id2name str), Some (P.id2name ast)), Some _6) ) +# 29765 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22927,24 +29773,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = cocci; + MenhirLib.EngineTypes.startp = _startpos_cocci_; + MenhirLib.EngineTypes.endp = _endpos_cocci_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 22940 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let cocci : 'tv_pure_ident = Obj.magic cocci in + let _2 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 29800 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1336 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 22948 "parser_cocci_menhir.ml" + let _endpos = _endpos_cocci_ in + let _v : 'tv_script_name_decl = +# 2057 "parser_cocci_menhir.mly" + ( let nm = P.id2name cocci in + let mv = Parse_aux.lookup _2 nm in + ((_2, nm), mv) ) +# 29809 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22956,24 +29817,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = cocci; + MenhirLib.EngineTypes.startp = _startpos_cocci_; + MenhirLib.EngineTypes.endp = _endpos_cocci_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 22969 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let cocci : 'tv_pure_ident = Obj.magic cocci in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1339 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 22977 "parser_cocci_menhir.ml" + let _endpos = _endpos_cocci_ in + let _v : 'tv_script_name_decl = +# 2061 "parser_cocci_menhir.mly" + ( let nm = P.id2name cocci in + let name = ("virtual", nm) in + let mv = Ast.MetaIdDecl(Ast.NONE,name) in + (name,mv) ) +# 29848 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22992,17 +29863,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 87 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (string * Data.clt) -# 22998 "parser_cocci_menhir.ml" +# 29869 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1342 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 23006 "parser_cocci_menhir.ml" + let _v : 'tv_seed_elem = +# 1468 "parser_cocci_menhir.mly" + ( let (x,_) = _1 in Ast.SeedString x ) +# 29876 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23021,18 +29891,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23027 "parser_cocci_menhir.ml" +# 40 "parser_cocci_menhir.mly" + (Parse_aux.idinfo) +# 29897 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1345 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) -# 23036 "parser_cocci_menhir.ml" + let _v : 'tv_seed_elem = +# 1469 "parser_cocci_menhir.mly" + ( let (x,_,_,_) = _1 in Ast.SeedId x ) +# 29904 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23044,24 +29912,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in + let _3 : 'tv_pure_ident = Obj.magic _3 in let _1 : ( -# 63 "parser_cocci_menhir.mly" - (Parse_aux.expinfo) -# 23057 "parser_cocci_menhir.ml" +# 25 "parser_cocci_menhir.mly" + (string) +# 29935 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1349 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 23065 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_seed_elem = +# 1471 "parser_cocci_menhir.mly" + ( let nm = (_1,P.id2name _3) in + P.check_meta(Ast.MetaIdDecl(Ast.NONE,nm)); + Ast.SeedId nm ) +# 29944 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23074,24 +29953,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23086 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1352 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) -# 23095 "parser_cocci_menhir.ml" + let x : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 29965 "parser_cocci_menhir.ml" + ) = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_TString_ = +# 144 "standard.mly" + ( [ x ] ) +# 29972 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23103,25 +29980,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23116 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1356 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) -# 23125 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in + let x : ( +# 66 "parser_cocci_menhir.mly" + (string * Data.clt) +# 30003 "parser_cocci_menhir.ml" + ) = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_TString_ = +# 146 "standard.mly" + ( x :: xs ) +# 30010 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23134,24 +30019,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23146 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1360 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) -# 23155 "parser_cocci_menhir.ml" + let x : 'tv_any_strict = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = +# 144 "standard.mly" + ( [ x ] ) +# 30034 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23163,40 +30042,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 23186 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_eexpr = Obj.magic _2 in - let _1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 23192 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1364 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, - P.clt2mcode ")" _3)) ) -# 23200 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_any_strict_ = Obj.magic xs in + let x : 'tv_any_strict = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = +# 146 "standard.mly" + ( x :: xs ) +# 30068 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23208,42 +30076,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 23231 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in - let _1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 23237 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1367 "parser_cocci_menhir.mly" - ( let (mids,code) = _2 in - Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, - code, mids, - P.clt2mcode ")" _3)) ) -# 23247 "parser_cocci_menhir.ml" + let x : 'tv_ctype = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_ctype_ = +# 144 "standard.mly" + ( [ x ] ) +# 30092 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23255,19 +30100,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_dot_expressions = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1371 "parser_cocci_menhir.mly" - ( _1 ) -# 23271 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_ctype_ = Obj.magic xs in + let x : 'tv_ctype = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_ctype_ = +# 146 "standard.mly" + ( x :: xs ) +# 30126 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23280,18 +30135,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_func_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1331 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Ident(_1)) ) -# 23295 "parser_cocci_menhir.ml" + let x : 'tv_d_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = +# 144 "standard.mly" + ( [ x ] ) +# 30150 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23303,24 +30158,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 23316 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1333 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 23324 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_d_ident_ = Obj.magic xs in + let x : 'tv_d_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = +# 146 "standard.mly" + ( x :: xs ) +# 30184 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23333,23 +30193,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 23345 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1336 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 23353 "parser_cocci_menhir.ml" + let x : 'tv_ident_or_const = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = +# 144 "standard.mly" + ( [ x ] ) +# 30208 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23361,24 +30216,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 23374 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1339 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 23382 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_ident_or_const_ = Obj.magic xs in + let x : 'tv_ident_or_const = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = +# 146 "standard.mly" + ( x :: xs ) +# 30242 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23391,23 +30251,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 23403 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1342 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 23411 "parser_cocci_menhir.ml" + let x : 'tv_meta_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = +# 144 "standard.mly" + ( [ x ] ) +# 30266 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23419,25 +30274,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23432 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1345 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) -# 23441 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_meta_ident_ = Obj.magic xs in + let x : 'tv_meta_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = +# 146 "standard.mly" + ( x :: xs ) +# 30300 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23450,23 +30309,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 63 "parser_cocci_menhir.mly" - (Parse_aux.expinfo) -# 23462 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1349 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 23470 "parser_cocci_menhir.ml" + let x : 'tv_pure_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = +# 144 "standard.mly" + ( [ x ] ) +# 30324 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23478,25 +30332,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23491 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1352 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) -# 23500 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic xs in + let x : 'tv_pure_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = +# 146 "standard.mly" + ( x :: xs ) +# 30358 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23509,24 +30367,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23521 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1356 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) -# 23530 "parser_cocci_menhir.ml" + let x : 'tv_pure_ident_or_meta_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = +# 144 "standard.mly" + ( [ x ] ) +# 30382 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23538,25 +30390,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23551 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1360 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) -# 23560 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = Obj.magic xs in + let x : 'tv_pure_ident_or_meta_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = +# 146 "standard.mly" + ( x :: xs ) +# 30416 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23568,40 +30424,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 23591 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_eexpr = Obj.magic _2 in - let _1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 23597 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1364 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, - P.clt2mcode ")" _3)) ) -# 23605 "parser_cocci_menhir.ml" + let x : 'tv_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = +# 144 "standard.mly" + ( [ x ] ) +# 30440 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23613,42 +30448,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 23636 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in - let _1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 23642 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1367 "parser_cocci_menhir.mly" - ( let (mids,code) = _2 in - Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, - code, mids, - P.clt2mcode ")" _3)) ) -# 23652 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = Obj.magic xs in + let x : 'tv_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = +# 146 "standard.mly" + ( x :: xs ) +# 30474 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23661,18 +30483,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_invalid = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1371 "parser_cocci_menhir.mly" - ( _1 ) -# 23676 "parser_cocci_menhir.ml" + let x : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = +# 144 "standard.mly" + ( [ x ] ) +# 30498 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23684,19 +30506,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_func_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1331 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Ident(_1)) ) -# 23700 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic xs in + let x : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = +# 146 "standard.mly" + ( x :: xs ) +# 30532 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23709,23 +30541,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 23721 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1333 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 23729 "parser_cocci_menhir.ml" + let x : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = +# 144 "standard.mly" + ( [ x ] ) +# 30556 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23737,24 +30564,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 23750 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1336 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 23758 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic xs in + let x : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = +# 146 "standard.mly" + ( x :: xs ) +# 30590 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23767,23 +30599,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 23779 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1339 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 23787 "parser_cocci_menhir.ml" + let x : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = +# 144 "standard.mly" + ( [ x ] ) +# 30614 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23795,24 +30622,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 23808 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1342 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 23816 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = Obj.magic xs in + let x : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = +# 146 "standard.mly" + ( x :: xs ) +# 30648 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23825,24 +30657,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23837 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1345 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) -# 23846 "parser_cocci_menhir.ml" + let x : 'tv_pure_ident_or_meta_ident_with_seed = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = +# 144 "standard.mly" + ( [ x ] ) +# 30672 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23854,24 +30680,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 63 "parser_cocci_menhir.mly" - (Parse_aux.expinfo) -# 23867 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1349 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 23875 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = Obj.magic xs in + let x : 'tv_pure_ident_or_meta_ident_with_seed = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = +# 146 "standard.mly" + ( x :: xs ) +# 30706 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23884,24 +30715,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23896 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1352 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) -# 23905 "parser_cocci_menhir.ml" + let x : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = +# 144 "standard.mly" + ( [ x ] ) +# 30730 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23913,25 +30738,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23926 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1356 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) -# 23935 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = Obj.magic xs in + let x : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = +# 146 "standard.mly" + ( x :: xs ) +# 30764 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23944,24 +30773,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 23956 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1360 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) -# 23965 "parser_cocci_menhir.ml" + let x : 'tv_typedef_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = +# 144 "standard.mly" + ( [ x ] ) +# 30788 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23973,40 +30796,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 23996 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_eexpr = Obj.magic _2 in - let _1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 24002 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1364 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, - P.clt2mcode ")" _3)) ) -# 24010 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TComma_typedef_ident_ = Obj.magic xs in + let x : 'tv_typedef_ident = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = +# 146 "standard.mly" + ( x :: xs ) +# 30822 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : 'tv_seed_elem = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = +# 144 "standard.mly" + ( [ x ] ) +# 30846 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24018,42 +30854,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 24041 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in - let _1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 24047 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1367 "parser_cocci_menhir.mly" - ( let (mids,code) = _2 in - Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, - code, mids, - P.clt2mcode ")" _3)) ) -# 24057 "parser_cocci_menhir.ml" + let xs : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = Obj.magic xs in + let x : 'tv_seed_elem = Obj.magic x in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = +# 146 "standard.mly" + ( x :: xs ) +# 30880 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24071,13 +30894,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_nest_expressions = Obj.magic _1 in + let _1 : 'tv_statement = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1371 "parser_cocci_menhir.mly" - ( _1 ) -# 24081 "parser_cocci_menhir.ml" + let _v : 'tv_single_statement = +# 943 "parser_cocci_menhir.mly" + ( _1 ) +# 30904 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24089,19 +30912,43 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_func_ident = Obj.magic _1 in + let _3 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 30935 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in + let _1 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 30941 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1331 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Ident(_1)) ) -# 24105 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_single_statement = +# 947 "parser_cocci_menhir.mly" + ( let (mids,code) = _2 in + Ast0.wrap + (Ast0.Disj(P.clt2mcode "(" _1, + List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code, + mids, P.clt2mcode ")" _3)) ) +# 30952 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24119,18 +30966,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 24126 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _1 : 'tv_includes = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1333 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 24134 "parser_cocci_menhir.ml" + let _v : 'tv_statement = +# 870 "parser_cocci_menhir.mly" + ( _1 ) +# 30976 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24149,17 +30991,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 24155 "parser_cocci_menhir.ml" +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 30997 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1336 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 24163 "parser_cocci_menhir.ml" + let _v : 'tv_statement = +# 872 "parser_cocci_menhir.mly" + ( P.meta_stm _1 ) +# 31004 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24171,24 +31012,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 24184 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 31030 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1339 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 24192 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_statement = +# 874 "parser_cocci_menhir.mly" + ( P.exp_stm _1 _2 ) +# 31038 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24200,24 +31046,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in + let _5 : 'tv_single_statement = Obj.magic _5 in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 31080 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 31086 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _1 : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 24213 "parser_cocci_menhir.ml" +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 31091 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1342 "parser_cocci_menhir.mly" - ( let (x,clt) = _1 in - Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 24221 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : 'tv_statement = +# 876 "parser_cocci_menhir.mly" + ( P.ifthen _1 _2 _3 _4 _5 ) +# 31098 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24229,25 +31106,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; } = _menhir_stack in + let _7 : 'tv_single_statement = Obj.magic _7 in + let _6 : ( +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 31150 "parser_cocci_menhir.ml" + ) = Obj.magic _6 in + let _5 : 'tv_single_statement = Obj.magic _5 in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 31156 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 31162 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 24242 "parser_cocci_menhir.ml" +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 31167 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1345 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) -# 24251 "parser_cocci_menhir.ml" + let _endpos = _endpos__7_ in + let _v : 'tv_statement = +# 878 "parser_cocci_menhir.mly" + ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 ) +# 31174 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24259,24 +31182,87 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _9; + MenhirLib.EngineTypes.startp = _startpos__9_; + MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; } = _menhir_stack in + let _9 : 'tv_single_statement = Obj.magic _9 in + let _8 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 31236 "parser_cocci_menhir.ml" + ) = Obj.magic _8 in + let _7 : 'tv_option_eexpr_ = Obj.magic _7 in + let _6 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 31242 "parser_cocci_menhir.ml" + ) = Obj.magic _6 in + let _5 : 'tv_option_eexpr_ = Obj.magic _5 in + let _4 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 31248 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_option_eexpr_ = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 31254 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" - (Parse_aux.expinfo) -# 24272 "parser_cocci_menhir.ml" +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 31259 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1349 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,clt) = _1 in - Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 24280 "parser_cocci_menhir.ml" + let _endpos = _endpos__9_ in + let _v : 'tv_statement = +# 881 "parser_cocci_menhir.mly" + ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 ) +# 31266 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24288,25 +31274,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in + let _5 : 'tv_single_statement = Obj.magic _5 in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 31308 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 31314 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 24301 "parser_cocci_menhir.ml" +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 31319 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1352 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) -# 24310 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : 'tv_statement = +# 883 "parser_cocci_menhir.mly" + ( P.whileloop _1 _2 _3 _4 _5 ) +# 31326 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24318,25 +31334,75 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; } = _menhir_stack in + let _7 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 31377 "parser_cocci_menhir.ml" + ) = Obj.magic _7 in + let _6 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 31382 "parser_cocci_menhir.ml" + ) = Obj.magic _6 in + let _5 : 'tv_eexpr = Obj.magic _5 in + let _4 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 31388 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : ( +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 31393 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_single_statement = Obj.magic _2 in let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 24331 "parser_cocci_menhir.ml" +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 31399 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1356 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) -# 24340 "parser_cocci_menhir.ml" + let _endpos = _endpos__7_ in + let _v : 'tv_statement = +# 885 "parser_cocci_menhir.mly" + ( P.doloop _1 _2 _3 _4 _5 _6 _7 ) +# 31406 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24348,25 +31414,51 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 67 "parser_cocci_menhir.mly" - (Parse_aux.typed_info) -# 24361 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in + let _5 : 'tv_single_statement = Obj.magic _5 in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 31448 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr_list_option = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 31454 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_iter_ident = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1360 "parser_cocci_menhir.mly" - ( let (nm,constraints,pure,ty,clt) = _1 in - Ast0.wrap - (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) -# 24370 "parser_cocci_menhir.ml" + let _endpos = _endpos__5_ in + let _v : 'tv_statement = +# 887 "parser_cocci_menhir.mly" + ( P.iterator _1 _2 _3 _4 _5 ) +# 31462 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24378,40 +31470,81 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" + let _8 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 24401 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_eexpr = Obj.magic _2 in +# 31518 "parser_cocci_menhir.ml" + ) = Obj.magic _8 in + let _7 : 'tv_list_case_line_ = Obj.magic _7 in + let _6 : 'tv_list_decl_var_ = Obj.magic _6 in + let _5 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 31525 "parser_cocci_menhir.ml" + ) = Obj.magic _5 in + let _4 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 31530 "parser_cocci_menhir.ml" + ) = Obj.magic _4 in + let _3 : 'tv_eexpr = Obj.magic _3 in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 31536 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 24407 "parser_cocci_menhir.ml" +# 31541 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1364 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, - P.clt2mcode ")" _3)) ) -# 24415 "parser_cocci_menhir.ml" + let _endpos = _endpos__8_ in + let _v : 'tv_statement = +# 889 "parser_cocci_menhir.mly" + ( P.switch _1 _2 _3 _4 _5 (List.concat _6) _7 _8 ) +# 31548 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24440,93 +31573,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 77 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 24446 "parser_cocci_menhir.ml" +# 31579 "parser_cocci_menhir.ml" ) = Obj.magic _3 in - let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in + let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 35 "parser_cocci_menhir.mly" (Data.clt) -# 24452 "parser_cocci_menhir.ml" +# 31585 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1367 "parser_cocci_menhir.mly" - ( let (mids,code) = _2 in - Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, - code, mids, - P.clt2mcode ")" _3)) ) -# 24462 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_invalid = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_primary_expr_expr_invalid_ = -# 1371 "parser_cocci_menhir.mly" - ( _1 ) -# 24486 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure = -# 190 "parser_cocci_menhir.mly" - ( Ast0.Pure ) -# 24508 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure = -# 191 "parser_cocci_menhir.mly" - ( Ast0.Context ) -# 24530 "parser_cocci_menhir.ml" + let _v : 'tv_statement = +# 890 "parser_cocci_menhir.mly" + ( P.ret_exp _1 _2 _3 ) +# 31592 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24538,21 +31600,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { + MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 31618 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : ( +# 35 "parser_cocci_menhir.mly" + (Data.clt) +# 31623 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : 'tv_pure = -# 192 "parser_cocci_menhir.mly" - ( Ast0.PureContext ) -# 24556 "parser_cocci_menhir.ml" + let _v : 'tv_statement = +# 891 "parser_cocci_menhir.mly" + ( P.ret _1 _2 ) +# 31630 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24564,114 +31638,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { + MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_pure = -# 193 "parser_cocci_menhir.mly" - ( Ast0.PureContext ) -# 24582 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_pure = -# 194 "parser_cocci_menhir.mly" - ( Ast0.Impure ) -# 24599 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 31656 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in let _1 : ( -# 59 "parser_cocci_menhir.mly" - (string * Data.clt) -# 24620 "parser_cocci_menhir.ml" +# 36 "parser_cocci_menhir.mly" + (Data.clt) +# 31661 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure_ident = -# 1385 "parser_cocci_menhir.mly" - ( _1 ) -# 24627 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_pure_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure_ident_or_meta_ident = -# 1391 "parser_cocci_menhir.mly" - ( (None,P.id2name _1) ) -# 24651 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_meta_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure_ident_or_meta_ident = -# 1392 "parser_cocci_menhir.mly" - ( _1 ) -# 24675 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_statement = +# 892 "parser_cocci_menhir.mly" + ( P.break _1 _2 ) +# 31668 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24683,17 +31676,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in + let _2 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 31694 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : ( +# 36 "parser_cocci_menhir.mly" + (Data.clt) +# 31699 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure_ident_or_meta_ident = -# 1393 "parser_cocci_menhir.mly" - ( (None,"list") ) -# 24697 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_statement = +# 893 "parser_cocci_menhir.mly" + ( P.cont _1 _2 ) +# 31706 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24705,17 +31714,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in + let _2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 31732 "parser_cocci_menhir.ml" + ) = Obj.magic _2 in + let _1 : 'tv_ident = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure_ident_or_meta_ident = -# 1394 "parser_cocci_menhir.mly" - ( (None,"error") ) -# 24719 "parser_cocci_menhir.ml" + let _endpos = _endpos__2_ in + let _v : 'tv_statement = +# 894 "parser_cocci_menhir.mly" + ( P.label _1 _2 ) +# 31740 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24727,17 +31748,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in + let _3 : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 31771 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_ident = Obj.magic _2 in + let _1 : ( +# 36 "parser_cocci_menhir.mly" + (Data.clt) +# 31777 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure_ident_or_meta_ident = -# 1395 "parser_cocci_menhir.mly" - ( (None,"type") ) -# 24741 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_statement = +# 895 "parser_cocci_menhir.mly" + ( P.goto _1 _2 _3 ) +# 31784 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24749,17 +31792,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in + let _3 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 31815 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_fun_start = Obj.magic _2 in + let _1 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 31821 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_pure_ident_or_meta_ident = -# 1396 "parser_cocci_menhir.mly" - ( (None,"name") ) -# 24763 "parser_cocci_menhir.ml" + let _endpos = _endpos__3_ in + let _v : 'tv_statement = +# 897 "parser_cocci_menhir.mly" + ( P.seq _1 _2 _3 ) +# 31828 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24771,25 +31836,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; + MenhirLib.EngineTypes.semv = w; + MenhirLib.EngineTypes.startp = _startpos_w_; + MenhirLib.EngineTypes.endp = _endpos_w_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let l : 'tv_loption_not_ceq_ = Obj.magic l in - let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_l_ in - let _v : 'tv_pure_ident_or_meta_ident_with_not_eq_not_ceq_ = -# 1399 "parser_cocci_menhir.mly" - ( (i,l) ) -# 24793 "parser_cocci_menhir.ml" + let w : 'tv_list_whenppdecs_ = Obj.magic w in + let _1 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 31855 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos_w_ in + let _v : 'tv_stm_dots = +# 901 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) ) +# 31862 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24801,25 +31870,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; + MenhirLib.EngineTypes.semv = c; + MenhirLib.EngineTypes.startp = _startpos_c_; + MenhirLib.EngineTypes.endp = _endpos_c_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = w; + MenhirLib.EngineTypes.startp = _startpos_w_; + MenhirLib.EngineTypes.endp = _endpos_w_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let l : 'tv_loption_not_eq_ = Obj.magic l in - let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_l_ in - let _v : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eq_ = -# 1399 "parser_cocci_menhir.mly" - ( (i,l) ) -# 24823 "parser_cocci_menhir.ml" + let c : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 31898 "parser_cocci_menhir.ml" + ) = Obj.magic c in + let b : 'tv_nest_start = Obj.magic b in + let w : 'tv_list_whenppdecs_ = Obj.magic w in + let _1 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 31905 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos_c_ in + let _v : 'tv_stm_dots = +# 903 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b, + P.clt2mcode "...>" c, List.concat w, false)) ) +# 31913 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24831,25 +31921,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; + MenhirLib.EngineTypes.semv = c; + MenhirLib.EngineTypes.startp = _startpos_c_; + MenhirLib.EngineTypes.endp = _endpos_c_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = w; + MenhirLib.EngineTypes.startp = _startpos_w_; + MenhirLib.EngineTypes.endp = _endpos_w_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let l : 'tv_loption_not_eqe_ = Obj.magic l in - let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_l_ in - let _v : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eqe_ = -# 1399 "parser_cocci_menhir.mly" - ( (i,l) ) -# 24853 "parser_cocci_menhir.ml" + let c : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 31949 "parser_cocci_menhir.ml" + ) = Obj.magic c in + let b : 'tv_nest_start = Obj.magic b in + let w : 'tv_list_whenppdecs_ = Obj.magic w in + let _1 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 31956 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos_c_ in + let _v : 'tv_stm_dots = +# 906 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b, + P.clt2mcode "...+>" c, List.concat w, true)) ) +# 31964 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24861,25 +31972,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = l; - MenhirLib.EngineTypes.startp = _startpos_l_; - MenhirLib.EngineTypes.endp = _endpos_l_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let l : 'tv_loption_not_pos_ = Obj.magic l in - let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_l_ in - let _v : 'tv_pure_ident_or_meta_ident_with_not_eq_not_pos_ = -# 1399 "parser_cocci_menhir.mly" - ( (i,l) ) -# 24883 "parser_cocci_menhir.ml" + let s : ( +# 31 "parser_cocci_menhir.mly" + (Data.clt) +# 31985 "parser_cocci_menhir.ml" + ) = Obj.magic s in + let _startpos = _startpos_s_ in + let _endpos = _endpos_s_ in + let _v : 'tv_storage = +# 832 "parser_cocci_menhir.mly" + ( P.clt2mcode Ast.Static s ) +# 31992 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24890,17 +31999,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : ( -# 131 "parser_cocci_menhir.mly" - (unit) -# 24900 "parser_cocci_menhir.ml" - ) = -# 172 "parser_cocci_menhir.mly" - ( ) -# 24904 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let s : ( +# 31 "parser_cocci_menhir.mly" + (Data.clt) +# 32013 "parser_cocci_menhir.ml" + ) = Obj.magic s in + let _startpos = _startpos_s_ in + let _endpos = _endpos_s_ in + let _v : 'tv_storage = +# 833 "parser_cocci_menhir.mly" + ( P.clt2mcode Ast.Auto s ) +# 32020 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24913,18 +32029,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : 'tv_one_decl_var = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_rule_elem_statement = -# 905 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) ) -# 24928 "parser_cocci_menhir.ml" + let s : ( +# 31 "parser_cocci_menhir.mly" + (Data.clt) +# 32041 "parser_cocci_menhir.ml" + ) = Obj.magic s in + let _startpos = _startpos_s_ in + let _endpos = _endpos_s_ in + let _v : 'tv_storage = +# 834 "parser_cocci_menhir.mly" + ( P.clt2mcode Ast.Register s ) +# 32048 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24936,73 +32056,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 24954 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_rule_elem_statement = -# 906 "parser_cocci_menhir.mly" - ( P.exp_stm _1 _2 ) -# 24962 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; } = _menhir_stack in - let _3 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 24993 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_eexpr = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 24999 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_rule_elem_statement = -# 907 "parser_cocci_menhir.mly" - ( P.ret_exp _1 _2 _3 ) -# 25006 "parser_cocci_menhir.ml" + let s : ( +# 31 "parser_cocci_menhir.mly" + (Data.clt) +# 32069 "parser_cocci_menhir.ml" + ) = Obj.magic s in + let _startpos = _startpos_s_ in + let _endpos = _endpos_s_ in + let _v : 'tv_storage = +# 835 "parser_cocci_menhir.mly" + ( P.clt2mcode Ast.Extern s ) +# 32076 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25014,33 +32084,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 25032 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 25037 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_rule_elem_statement = -# 908 "parser_cocci_menhir.mly" - ( P.ret _1 _2 ) -# 25044 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_struct_decl = +# 585 "parser_cocci_menhir.mly" + ( [] ) +# 32098 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25052,33 +32106,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 25070 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in let _1 : ( -# 58 "parser_cocci_menhir.mly" - (Data.clt) -# 25075 "parser_cocci_menhir.ml" +# 44 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 32119 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_rule_elem_statement = -# 909 "parser_cocci_menhir.mly" - ( P.break _1 _2 ) -# 25082 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_struct_decl = +# 586 "parser_cocci_menhir.mly" + ( [P.meta_field _1] ) +# 32126 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25090,33 +32134,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 25108 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 58 "parser_cocci_menhir.mly" + let pv : ( +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 25113 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_rule_elem_statement = -# 910 "parser_cocci_menhir.mly" - ( P.cont _1 _2 ) -# 25120 "parser_cocci_menhir.ml" +# 32157 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_struct_decl = +# 588 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] ) +# 32167 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25128,43 +32175,97 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = rp2; + MenhirLib.EngineTypes.startp = _startpos_rp2_; + MenhirLib.EngineTypes.endp = _endpos_rp2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = p; + MenhirLib.EngineTypes.startp = _startpos_p_; + MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp2; + MenhirLib.EngineTypes.startp = _startpos_lp2_; + MenhirLib.EngineTypes.endp = _endpos_lp2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = rp1; + MenhirLib.EngineTypes.startp = _startpos_rp1_; + MenhirLib.EngineTypes.endp = _endpos_rp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = st; + MenhirLib.EngineTypes.startp = _startpos_st_; + MenhirLib.EngineTypes.endp = _endpos_st_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = lp1; + MenhirLib.EngineTypes.startp = _startpos_lp1_; + MenhirLib.EngineTypes.endp = _endpos_lp1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" + let pv : ( +# 86 "parser_cocci_menhir.mly" (Data.clt) -# 25151 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = Obj.magic _2 in - let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 32228 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let rp2 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 32233 "parser_cocci_menhir.ml" + ) = Obj.magic rp2 in + let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in + let lp2 : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 32239 "parser_cocci_menhir.ml" + ) = Obj.magic lp2 in + let rp1 : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 32244 "parser_cocci_menhir.ml" + ) = Obj.magic rp1 in + let d : 'tv_d_ident = Obj.magic d in + let st : ( +# 78 "parser_cocci_menhir.mly" + (Data.clt) +# 32250 "parser_cocci_menhir.ml" + ) = Obj.magic st in + let lp1 : ( +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 25157 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_rule_elem_statement = -# 912 "parser_cocci_menhir.mly" - ( let (mids,code) = _2 in - Ast0.wrap - (Ast0.Disj(P.clt2mcode "(" _1, - List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code, - mids, P.clt2mcode ")" _3)) ) -# 25168 "parser_cocci_menhir.ml" +# 32255 "parser_cocci_menhir.ml" + ) = Obj.magic lp1 in + let t : 'tv_ctype = Obj.magic t in + let _startpos = _startpos_t_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_struct_decl = +# 592 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let t = + Ast0.wrap + (Ast0.FunctionPointer + (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, + P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in + [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] ) +# 32269 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25176,62 +32277,44 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ee; - MenhirLib.EngineTypes.startp = _startpos_ee_; - MenhirLib.EngineTypes.endp = _endpos_ee_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let ee : 'tv_is_expression = Obj.magic ee in - let e : 'tv_exists = Obj.magic e in - let a : 'tv_loption_disable_ = Obj.magic a in - let i : 'tv_loption_choose_iso_ = Obj.magic i in - let d : 'tv_depends = Obj.magic d in - let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : ( -# 153 "parser_cocci_menhir.mly" - (Ast_cocci.rulename) -# 25224 "parser_cocci_menhir.ml" - ) = let nm = + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 32300 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let _startpos = _startpos_i_ in + let _endpos = _endpos_pv_ in + let _v : 'tv_struct_decl = let cv = # 39 "standard.mly" ( None ) -# 25229 "parser_cocci_menhir.ml" +# 32310 "parser_cocci_menhir.ml" in -# 202 "parser_cocci_menhir.mly" - ( P.make_cocci_rule_name_result nm d i a e ee ) -# 25235 "parser_cocci_menhir.ml" +# 600 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] ) +# 32318 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25243,69 +32326,51 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.semv = pv; + MenhirLib.EngineTypes.startp = _startpos_pv_; + MenhirLib.EngineTypes.endp = _endpos_pv_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ee; - MenhirLib.EngineTypes.startp = _startpos_ee_; - MenhirLib.EngineTypes.endp = _endpos_ee_; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x0; - MenhirLib.EngineTypes.startp = _startpos_x0_; - MenhirLib.EngineTypes.endp = _endpos_x0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let ee : 'tv_is_expression = Obj.magic ee in - let e : 'tv_exists = Obj.magic e in - let a : 'tv_loption_disable_ = Obj.magic a in - let i : 'tv_loption_choose_iso_ = Obj.magic i in - let d : 'tv_depends = Obj.magic d in - let x0 : 'tv_pure_ident = Obj.magic x0 in + let pv : ( +# 86 "parser_cocci_menhir.mly" + (Data.clt) +# 32354 "parser_cocci_menhir.ml" + ) = Obj.magic pv in + let d : 'tv_d_ident = Obj.magic d in + let i : 'tv_pure_ident = Obj.magic i in + let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos__8_ in - let _v : ( -# 153 "parser_cocci_menhir.mly" - (Ast_cocci.rulename) -# 25297 "parser_cocci_menhir.ml" - ) = let nm = + let _endpos = _endpos_pv_ in + let _v : 'tv_struct_decl = let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 25303 "parser_cocci_menhir.ml" +# 32366 "parser_cocci_menhir.ml" in -# 202 "parser_cocci_menhir.mly" - ( P.make_cocci_rule_name_result nm d i a e ee ) -# 25309 "parser_cocci_menhir.ml" +# 600 "parser_cocci_menhir.mly" + ( let (id,fn) = d in + let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in + [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] ) +# 32374 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25317,59 +32382,73 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = ee; - MenhirLib.EngineTypes.startp = _startpos_ee_; - MenhirLib.EngineTypes.endp = _endpos_ee_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = a; - MenhirLib.EngineTypes.startp = _startpos_a_; - MenhirLib.EngineTypes.endp = _endpos_a_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ee : 'tv_is_expression = Obj.magic ee in - let e : 'tv_exists = Obj.magic e in - let a : 'tv_loption_disable_ = Obj.magic a in - let i : 'tv_loption_choose_iso_ = Obj.magic i in - let d : 'tv_depends = Obj.magic d in + let _1 : 'tv_struct_decl_list_start = Obj.magic _1 in let _startpos = _startpos__1_ in - let _endpos = _endpos__8_ in - let _v : ( -# 153 "parser_cocci_menhir.mly" - (Ast_cocci.rulename) -# 25369 "parser_cocci_menhir.ml" - ) = -# 207 "parser_cocci_menhir.mly" - ( P.make_generated_rule_name_result None d i a e ee ) -# 25373 "parser_cocci_menhir.ml" + let _endpos = _endpos__1_ in + let _v : 'tv_struct_decl_list = +# 605 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.DOTS(_1)) ) +# 32398 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : 'tv_struct_decl = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_struct_decl_list_start = +# 608 "parser_cocci_menhir.mly" + ( _1 ) +# 32422 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_struct_decl_list_start = Obj.magic _2 in + let _1 : 'tv_struct_decl = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_struct_decl_list_start = +# 609 "parser_cocci_menhir.mly" + ( _1@_2 ) +# 32452 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25381,41 +32460,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = d; MenhirLib.EngineTypes.startp = _startpos_d_; MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lang; - MenhirLib.EngineTypes.startp = _startpos_lang_; - MenhirLib.EngineTypes.endp = _endpos_lang_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let d : 'tv_depends = Obj.magic d in - let lang : 'tv_pure_ident = Obj.magic lang in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : ( -# 153 "parser_cocci_menhir.mly" - (Ast_cocci.rulename) -# 25415 "parser_cocci_menhir.ml" - ) = -# 209 "parser_cocci_menhir.mly" - ( P.make_script_rule_name_result lang d ) -# 25419 "parser_cocci_menhir.ml" + let r : 'tv_continue_struct_decl_list = Obj.magic r in + let d : 'tv_edots_when_TEllipsis_struct_decl_ = Obj.magic d in + let _startpos = _startpos_d_ in + let _endpos = _endpos_r_ in + let _v : 'tv_struct_decl_list_start = +# 611 "parser_cocci_menhir.mly" + ( (P.mkddots "..." d)::r ) +# 32482 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25427,51 +32490,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = cocci; - MenhirLib.EngineTypes.startp = _startpos_cocci_; - MenhirLib.EngineTypes.endp = _endpos_cocci_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = py; - MenhirLib.EngineTypes.startp = _startpos_py_; - MenhirLib.EngineTypes.endp = _endpos_py_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let cocci : 'tv_pure_ident = Obj.magic cocci in - let _3 : ( -# 47 "parser_cocci_menhir.mly" - (string) -# 25463 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let py : 'tv_pure_ident = Obj.magic py in - let _startpos = _startpos_py_ in - let _endpos = _endpos__6_ in - let _v : ( -# 159 "parser_cocci_menhir.mly" - (string * (string * string)) -# 25471 "parser_cocci_menhir.ml" - ) = -# 1859 "parser_cocci_menhir.mly" - ( (P.id2name py, (_3, P.id2name cocci)) ) -# 25475 "parser_cocci_menhir.ml" + let s : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 32503 "parser_cocci_menhir.ml" + ) = Obj.magic s in + let _startpos = _startpos_s_ in + let _endpos = _endpos_s_ in + let _v : 'tv_struct_or_union = +# 581 "parser_cocci_menhir.mly" + ( P.clt2mcode Ast.Struct s ) +# 32510 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25484,22 +32519,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = u; + MenhirLib.EngineTypes.startp = _startpos_u_; + MenhirLib.EngineTypes.endp = _endpos_u_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 25496 "parser_cocci_menhir.ml" - ) = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_TString_ = -# 144 "standard.mly" - ( [ x ] ) -# 25503 "parser_cocci_menhir.ml" + let u : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 32531 "parser_cocci_menhir.ml" + ) = Obj.magic u in + let _startpos = _startpos_u_ in + let _endpos = _endpos_u_ in + let _v : 'tv_struct_or_union = +# 582 "parser_cocci_menhir.mly" + ( P.clt2mcode Ast.Union u ) +# 32538 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25511,33 +32546,74 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let i : 'tv_meta_ident = Obj.magic i in + let _startpos = _startpos__1_ in + let _endpos = _endpos_i_ in + let _v : 'tv_sub = +# 1608 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + let i = + P.check_inherited_constraint i + (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None)) in + [i] ) +# 32573 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l; + MenhirLib.EngineTypes.startp = _startpos_l_; + MenhirLib.EngineTypes.endp = _endpos_l_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in - let x : ( -# 87 "parser_cocci_menhir.mly" - (string * Data.clt) -# 25534 "parser_cocci_menhir.ml" - ) = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_TString_ = -# 146 "standard.mly" - ( x :: xs ) -# 25541 "parser_cocci_menhir.ml" + let l : 'tv_comma_list_meta_ident_ = Obj.magic l in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : 'tv_sub = +# 1617 "parser_cocci_menhir.mly" + ( (if !Data.in_iso + then failwith "constraints not allowed in iso file"); + (if !Data.in_generating + then failwith "constraints not allowed in a generated rule file"); + List.map + (function i -> + P.check_inherited_constraint i + (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None))) + l) +# 32617 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25550,18 +32626,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : 'tv_any_strict = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = -# 144 "standard.mly" - ( [ x ] ) -# 25565 "parser_cocci_menhir.ml" + let _1 : 'tv_eexpr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : 'tv_top_eexpr = +# 1236 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) ) +# 32641 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25573,29 +32649,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_any_strict_ = Obj.magic xs in - let x : 'tv_any_strict = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = -# 146 "standard.mly" - ( x :: xs ) -# 25599 "parser_cocci_menhir.ml" + let _3 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 32672 "parser_cocci_menhir.ml" + ) = Obj.magic _3 in + let _2 : 'tv_initialize_list = Obj.magic _2 in + let _1 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 32678 "parser_cocci_menhir.ml" + ) = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : 'tv_top_init = +# 1817 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) +# 32685 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25606,20 +32692,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_toplevel_after_dots = +# 1805 "parser_cocci_menhir.mly" + ([]) +# 32702 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_ctype = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_ctype_ = -# 144 "standard.mly" - ( [ x ] ) -# 25623 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_dots = +# 1806 "parser_cocci_menhir.mly" + (_2) +# 32730 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25631,29 +32738,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_ctype_ = Obj.magic xs in - let x : 'tv_ctype = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_ctype_ = -# 146 "standard.mly" - ( x :: xs ) -# 25657 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_dots = +# 1807 "parser_cocci_menhir.mly" + ((Ast0.wrap(Ast0.Exp(_1)))::_2) +# 32760 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25665,19 +32768,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_d_ident = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = -# 144 "standard.mly" - ( [ x ] ) -# 25681 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_dots = +# 1808 "parser_cocci_menhir.mly" + (_1@_2) +# 32790 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25689,29 +32798,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_d_ident_ = Obj.magic xs in - let x : 'tv_d_ident = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = -# 146 "standard.mly" - ( x :: xs ) -# 25715 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_dots_init = +# 1796 "parser_cocci_menhir.mly" + (_2) +# 32818 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25723,19 +32826,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_dexpr = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_dexpr_ = -# 144 "standard.mly" - ( [ x ] ) -# 25739 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_dots_init = +# 1797 "parser_cocci_menhir.mly" + ((Ast0.wrap(Ast0.Exp(_1)))::_2) +# 32848 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25747,29 +32856,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_dexpr_ = Obj.magic xs in - let x : 'tv_dexpr = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_dexpr_ = -# 146 "standard.mly" - ( x :: xs ) -# 25773 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_dots_init = +# 1798 "parser_cocci_menhir.mly" + (_1@_2) +# 32878 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25780,20 +32885,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let x : 'tv_ident_or_const = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = -# 144 "standard.mly" - ( [ x ] ) -# 25797 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_toplevel_after_exp = +# 1801 "parser_cocci_menhir.mly" + ([]) +# 32895 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25805,29 +32903,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_ident_or_const_ = Obj.magic xs in - let x : 'tv_ident_or_const = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = -# 146 "standard.mly" - ( x :: xs ) -# 25831 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_exp = +# 1802 "parser_cocci_menhir.mly" + (_1::_2) +# 32925 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25838,20 +32932,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let x : 'tv_meta_ident = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = -# 144 "standard.mly" - ( [ x ] ) -# 25855 "parser_cocci_menhir.ml" + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in + let _endpos = _startpos in + let _v : 'tv_toplevel_after_stm = +# 1811 "parser_cocci_menhir.mly" + ([]) +# 32942 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25863,29 +32950,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_meta_ident_ = Obj.magic xs in - let x : 'tv_meta_ident = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = -# 146 "standard.mly" - ( x :: xs ) -# 25889 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_stm = +# 1812 "parser_cocci_menhir.mly" + (_1::_2) +# 32972 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25897,19 +32980,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_pure_ident = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = -# 144 "standard.mly" - ( [ x ] ) -# 25913 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_after_stm = +# 1813 "parser_cocci_menhir.mly" + (_1@_2) +# 33002 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25921,29 +33010,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic xs in - let x : 'tv_pure_ident = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = -# 146 "standard.mly" - ( x :: xs ) -# 25947 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in + let _1 : 'tv_stm_dots = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = +# 1791 "parser_cocci_menhir.mly" + ( _1::_2 ) +# 33032 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25955,19 +33040,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_pure_ident_or_meta_ident = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = -# 144 "standard.mly" - ( [ x ] ) -# 25971 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = +# 1792 "parser_cocci_menhir.mly" + ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) +# 33062 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25979,29 +33070,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = Obj.magic xs in - let x : 'tv_pure_ident_or_meta_ident = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = -# 146 "standard.mly" - ( x :: xs ) -# 26005 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = +# 1793 "parser_cocci_menhir.mly" + ( _1@_2 ) +# 33092 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26013,19 +33100,44 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = w0; + MenhirLib.EngineTypes.startp = _startpos_w0_; + MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a0; + MenhirLib.EngineTypes.startp = _startpos_a0_; + MenhirLib.EngineTypes.endp = _endpos_a0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_ceq_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = -# 144 "standard.mly" - ( [ x ] ) -# 26029 "parser_cocci_menhir.ml" + let b : 'tv_toplevel_after_dots_init = Obj.magic b in + let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in + let a0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33125 "parser_cocci_menhir.ml" + ) = Obj.magic a0 in + let _startpos = _startpos_a0_ in + let _endpos = _endpos_b_ in + let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = + let w = w0 in + let a = a0 in + +# 911 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) ) +# 33135 "parser_cocci_menhir.ml" + + in + +# 1784 "parser_cocci_menhir.mly" + ( a::b ) +# 33141 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26037,29 +33149,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = c0; + MenhirLib.EngineTypes.startp = _startpos_c0_; + MenhirLib.EngineTypes.endp = _endpos_c0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = b0; + MenhirLib.EngineTypes.startp = _startpos_b0_; + MenhirLib.EngineTypes.endp = _endpos_b0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = w0; + MenhirLib.EngineTypes.startp = _startpos_w0_; + MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a0; + MenhirLib.EngineTypes.startp = _startpos_a0_; + MenhirLib.EngineTypes.endp = _endpos_a0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = Obj.magic xs in - let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_ceq_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = -# 146 "standard.mly" - ( x :: xs ) -# 26063 "parser_cocci_menhir.ml" + let b : 'tv_toplevel_after_dots_init = Obj.magic b in + let c0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33183 "parser_cocci_menhir.ml" + ) = Obj.magic c0 in + let b0 : 'tv_nest_start = Obj.magic b0 in + let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in + let a0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33190 "parser_cocci_menhir.ml" + ) = Obj.magic a0 in + let _startpos = _startpos_a0_ in + let _endpos = _endpos_b_ in + let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = + let c = c0 in + let b = b0 in + let w = w0 in + let a = a0 in + +# 915 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, + P.clt2mcode "...>" c, List.concat w, false)) ) +# 33203 "parser_cocci_menhir.ml" + + in + +# 1785 "parser_cocci_menhir.mly" + ( a::b ) +# 33209 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26071,19 +33217,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = b; + MenhirLib.EngineTypes.startp = _startpos_b_; + MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = c0; + MenhirLib.EngineTypes.startp = _startpos_c0_; + MenhirLib.EngineTypes.endp = _endpos_c0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = b0; + MenhirLib.EngineTypes.startp = _startpos_b0_; + MenhirLib.EngineTypes.endp = _endpos_b0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = w0; + MenhirLib.EngineTypes.startp = _startpos_w0_; + MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a0; + MenhirLib.EngineTypes.startp = _startpos_a0_; + MenhirLib.EngineTypes.endp = _endpos_a0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eq_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eq__ = -# 144 "standard.mly" - ( [ x ] ) -# 26087 "parser_cocci_menhir.ml" + let b : 'tv_toplevel_after_dots_init = Obj.magic b in + let c0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33251 "parser_cocci_menhir.ml" + ) = Obj.magic c0 in + let b0 : 'tv_nest_start = Obj.magic b0 in + let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in + let a0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33258 "parser_cocci_menhir.ml" + ) = Obj.magic a0 in + let _startpos = _startpos_a0_ in + let _endpos = _endpos_b_ in + let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = + let c = c0 in + let b = b0 in + let w = w0 in + let a = a0 in + +# 918 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, + P.clt2mcode "...+>" c, List.concat w, true)) ) +# 33271 "parser_cocci_menhir.ml" + + in + +# 1785 "parser_cocci_menhir.mly" + ( a::b ) +# 33277 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26095,29 +33285,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = c0; + MenhirLib.EngineTypes.startp = _startpos_c0_; + MenhirLib.EngineTypes.endp = _endpos_c0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = b0; + MenhirLib.EngineTypes.startp = _startpos_b0_; + MenhirLib.EngineTypes.endp = _endpos_b0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = w0; + MenhirLib.EngineTypes.startp = _startpos_w0_; + MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a0; + MenhirLib.EngineTypes.startp = _startpos_a0_; + MenhirLib.EngineTypes.endp = _endpos_a0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic xs in - let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eq_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eq__ = -# 146 "standard.mly" - ( x :: xs ) -# 26121 "parser_cocci_menhir.ml" + let c0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33313 "parser_cocci_menhir.ml" + ) = Obj.magic c0 in + let b0 : 'tv_nest_start = Obj.magic b0 in + let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in + let a0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33320 "parser_cocci_menhir.ml" + ) = Obj.magic a0 in + let _startpos = _startpos_a0_ in + let _endpos = _endpos_c0_ in + let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = + let c = c0 in + let b = b0 in + let w = w0 in + let a = a0 in + +# 915 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, + P.clt2mcode "...>" c, List.concat w, false)) ) +# 33333 "parser_cocci_menhir.ml" + + in + +# 1786 "parser_cocci_menhir.mly" + ( [a] ) +# 33339 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26129,19 +33347,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = c0; + MenhirLib.EngineTypes.startp = _startpos_c0_; + MenhirLib.EngineTypes.endp = _endpos_c0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = b0; + MenhirLib.EngineTypes.startp = _startpos_b0_; + MenhirLib.EngineTypes.endp = _endpos_b0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = w0; + MenhirLib.EngineTypes.startp = _startpos_w0_; + MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = a0; + MenhirLib.EngineTypes.startp = _startpos_a0_; + MenhirLib.EngineTypes.endp = _endpos_a0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eqe_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = -# 144 "standard.mly" - ( [ x ] ) -# 26145 "parser_cocci_menhir.ml" + let c0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33375 "parser_cocci_menhir.ml" + ) = Obj.magic c0 in + let b0 : 'tv_nest_start = Obj.magic b0 in + let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in + let a0 : ( +# 52 "parser_cocci_menhir.mly" + (Data.clt) +# 33382 "parser_cocci_menhir.ml" + ) = Obj.magic a0 in + let _startpos = _startpos_a0_ in + let _endpos = _endpos_c0_ in + let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = + let c = c0 in + let b = b0 in + let w = w0 in + let a = a0 in + +# 918 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, + P.clt2mcode "...+>" c, List.concat w, true)) ) +# 33395 "parser_cocci_menhir.ml" + + in + +# 1786 "parser_cocci_menhir.mly" + ( [a] ) +# 33401 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26153,29 +33409,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic xs in - let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eqe_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = -# 146 "standard.mly" - ( x :: xs ) -# 26179 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in + let _1 : 'tv_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = +# 1787 "parser_cocci_menhir.mly" + ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) +# 33431 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26187,19 +33439,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_pos_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_pos__ = -# 144 "standard.mly" - ( [ x ] ) -# 26203 "parser_cocci_menhir.ml" + let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in + let _1 : 'tv_decl_statement_expr = Obj.magic _1 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = +# 1788 "parser_cocci_menhir.mly" + ( _1@_2 ) +# 33461 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26211,29 +33469,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_pos__ = Obj.magic xs in - let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_pos_ = Obj.magic x in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_pos__ = -# 146 "standard.mly" - ( x :: xs ) -# 26237 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 33493 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 33498 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 33510 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 33516 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 33523 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 33529 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26245,19 +33537,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_statement = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_single_statement = -# 920 "parser_cocci_menhir.mly" - ( _1 ) -# 26261 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 33561 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 33566 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 33578 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 33584 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 33591 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 33597 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26269,43 +33605,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 26292 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in - let _1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 26298 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_single_statement = -# 924 "parser_cocci_menhir.mly" - ( let (mids,code) = _2 in - Ast0.wrap - (Ast0.Disj(P.clt2mcode "(" _1, - List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code, - mids, P.clt2mcode ")" _3)) ) -# 26309 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 33629 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 33634 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 33646 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 33652 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 33659 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 33665 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26317,19 +33673,64 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : 'tv_includes = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_statement = -# 847 "parser_cocci_menhir.mly" - ( _1 ) -# 26333 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 33697 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 33702 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r = r0 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 33715 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 33721 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 33728 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 33734 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26341,23 +33742,84 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r1; + MenhirLib.EngineTypes.startp = _startpos_r1_; + MenhirLib.EngineTypes.endp = _endpos_r1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : ( -# 64 "parser_cocci_menhir.mly" - (Parse_aux.info) -# 26354 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_statement = -# 849 "parser_cocci_menhir.mly" - ( P.meta_stm _1 ) -# 26361 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 33775 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 33780 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let r1 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 33785 "parser_cocci_menhir.ml" + ) = Obj.magic r1 in + let _startpos = _startpos_r1_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let r = r1 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 33804 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 33810 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 33817 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 33823 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26369,29 +33831,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 26387 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_statement = -# 851 "parser_cocci_menhir.mly" - ( P.exp_stm _1 _2 ) -# 26395 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 33855 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 33860 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 33872 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 33878 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 33885 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 33891 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26403,55 +33899,78 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _5 : 'tv_single_statement = Obj.magic _5 in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 26437 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 26443 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26448 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : 'tv_statement = -# 853 "parser_cocci_menhir.mly" - ( P.ifthen _1 _2 _3 _4 _5 ) -# 26455 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 33928 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 33933 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 33938 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let r = r0 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 33955 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 33961 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 33968 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 33974 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26463,71 +33982,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _7 : 'tv_single_statement = Obj.magic _7 in - let _6 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26507 "parser_cocci_menhir.ml" - ) = Obj.magic _6 in - let _5 : 'tv_single_statement = Obj.magic _5 in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 26513 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 26519 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26524 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : 'tv_statement = -# 855 "parser_cocci_menhir.mly" - ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 ) -# 26531 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34006 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 34011 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 34023 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 34029 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34036 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34042 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26539,87 +34050,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _9; - MenhirLib.EngineTypes.startp = _startpos__9_; - MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _9 : 'tv_single_statement = Obj.magic _9 in - let _8 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 26593 "parser_cocci_menhir.ml" - ) = Obj.magic _8 in - let _7 : 'tv_option_eexpr_ = Obj.magic _7 in - let _6 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 26599 "parser_cocci_menhir.ml" - ) = Obj.magic _6 in - let _5 : 'tv_option_eexpr_ = Obj.magic _5 in - let _4 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 26605 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_option_eexpr_ = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 26611 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26616 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__9_ in - let _v : 'tv_statement = -# 858 "parser_cocci_menhir.mly" - ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 ) -# 26623 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34074 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 34079 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 34091 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 34097 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34104 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34110 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26631,55 +34118,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _5 : 'tv_single_statement = Obj.magic _5 in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 26665 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 26671 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26676 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : 'tv_statement = -# 860 "parser_cocci_menhir.mly" - ( P.whileloop _1 _2 _3 _4 _5 ) -# 26683 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34142 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 34147 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 34159 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 34165 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34172 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34178 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26691,75 +34186,64 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _7 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 26734 "parser_cocci_menhir.ml" - ) = Obj.magic _7 in - let _6 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 26739 "parser_cocci_menhir.ml" - ) = Obj.magic _6 in - let _5 : 'tv_eexpr = Obj.magic _5 in - let _4 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 26745 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26750 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_single_statement = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26756 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : 'tv_statement = -# 862 "parser_cocci_menhir.mly" - ( P.doloop _1 _2 _3 _4 _5 _6 _7 ) -# 26763 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 34210 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 34215 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r = r0 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 34228 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 34234 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34241 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34247 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26771,51 +34255,84 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; MenhirLib.EngineTypes.startp = _startpos__3_; MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = r1; + MenhirLib.EngineTypes.startp = _startpos_r1_; + MenhirLib.EngineTypes.endp = _endpos_r1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _5 : 'tv_single_statement = Obj.magic _5 in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 26805 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr_list_option = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 26811 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_iter_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : 'tv_statement = -# 864 "parser_cocci_menhir.mly" - ( P.iterator _1 _2 _3 _4 _5 ) -# 26819 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 34288 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 34293 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let r1 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 34298 "parser_cocci_menhir.ml" + ) = Obj.magic r1 in + let _startpos = _startpos_r1_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let r = r1 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 34317 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 34323 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34330 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34336 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26827,75 +34344,146 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34368 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 34373 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 34385 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 34391 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34398 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34404 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _7 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 26870 "parser_cocci_menhir.ml" - ) = Obj.magic _7 in - let _6 : 'tv_list_case_line_ = Obj.magic _6 in - let _5 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 26876 "parser_cocci_menhir.ml" - ) = Obj.magic _5 in - let _4 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 26881 "parser_cocci_menhir.ml" - ) = Obj.magic _4 in - let _3 : 'tv_eexpr = Obj.magic _3 in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 26887 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26892 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : 'tv_statement = -# 866 "parser_cocci_menhir.mly" - ( P.switch _1 _2 _3 _4 _5 _6 _7 ) -# 26899 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34441 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34446 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 34451 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let _startpos = _startpos_r0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let r = r0 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 34468 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 34474 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34481 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34487 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26907,39 +34495,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 26930 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_eexpr = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26936 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_statement = -# 867 "parser_cocci_menhir.mly" - ( P.ret_exp _1 _2 _3 ) -# 26943 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34514 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 34525 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 34531 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34538 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34544 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26951,33 +34552,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 26969 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 57 "parser_cocci_menhir.mly" - (Data.clt) -# 26974 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_statement = -# 868 "parser_cocci_menhir.mly" - ( P.ret _1 _2 ) -# 26981 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34571 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 34582 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 34588 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34595 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34601 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26989,33 +34609,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 27007 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 58 "parser_cocci_menhir.mly" - (Data.clt) -# 27012 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_statement = -# 869 "parser_cocci_menhir.mly" - ( P.break _1 _2 ) -# 27019 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34628 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 34639 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 34645 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34652 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34658 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27027,33 +34666,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 27045 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : ( -# 58 "parser_cocci_menhir.mly" - (Data.clt) -# 27050 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_statement = -# 870 "parser_cocci_menhir.mly" - ( P.cont _1 _2 ) -# 27057 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 34685 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let _startpos = _startpos_p00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 34697 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 34703 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34710 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34716 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27065,29 +34724,130 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 34752 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 34757 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let _startpos = _startpos_r00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 34775 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 34781 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34788 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34794 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 27083 "parser_cocci_menhir.ml" - ) = Obj.magic _2 in - let _1 : 'tv_ident = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_statement = -# 871 "parser_cocci_menhir.mly" - ( P.label _1 _2 ) -# 27091 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34821 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 34832 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 34838 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34845 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34851 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27099,39 +34859,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 27122 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_ident = Obj.magic _2 in - let _1 : ( -# 58 "parser_cocci_menhir.mly" - (Data.clt) -# 27128 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_statement = -# 872 "parser_cocci_menhir.mly" - ( P.goto _1 _2 _3 ) -# 27135 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34883 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 34888 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let _startpos = _startpos_ty100_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 34904 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 34910 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34917 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34923 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27143,39 +34931,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 27166 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_fun_start = Obj.magic _2 in - let _1 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 27172 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_statement = -# 874 "parser_cocci_menhir.mly" - ( P.seq _1 _2 _3 ) -# 27179 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 34950 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 525 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) +# 34961 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 34967 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 34974 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 34980 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27187,29 +34988,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = w; - MenhirLib.EngineTypes.startp = _startpos_w_; - MenhirLib.EngineTypes.endp = _endpos_w_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let w : 'tv_list_whenppdecs_ = Obj.magic w in - let _1 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 27206 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos_w_ in - let _v : 'tv_stm_dots = -# 878 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) ) -# 27213 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 35007 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 527 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) +# 35018 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 35024 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 35031 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35037 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27221,46 +35045,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = c; - MenhirLib.EngineTypes.startp = _startpos_c_; - MenhirLib.EngineTypes.endp = _endpos_c_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w; - MenhirLib.EngineTypes.startp = _startpos_w_; - MenhirLib.EngineTypes.endp = _endpos_w_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let c : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 27249 "parser_cocci_menhir.ml" - ) = Obj.magic c in - let b : 'tv_nest_start = Obj.magic b in - let w : 'tv_list_whenppdecs_ = Obj.magic w in - let _1 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 27256 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos_c_ in - let _v : 'tv_stm_dots = -# 880 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b, - P.clt2mcode "...>" c, List.concat w, false)) ) -# 27264 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 35064 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let _startpos = _startpos_ty00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 529 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) +# 35075 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 35081 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 35088 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35094 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27272,74 +35102,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = c; - MenhirLib.EngineTypes.startp = _startpos_c_; - MenhirLib.EngineTypes.endp = _endpos_c_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.semv = i00; + MenhirLib.EngineTypes.startp = _startpos_i00_; + MenhirLib.EngineTypes.endp = _endpos_i00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w; - MenhirLib.EngineTypes.startp = _startpos_w_; - MenhirLib.EngineTypes.endp = _endpos_w_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let c : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 27300 "parser_cocci_menhir.ml" - ) = Obj.magic c in - let b : 'tv_nest_start = Obj.magic b in - let w : 'tv_list_whenppdecs_ = Obj.magic w in - let _1 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 27307 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos_c_ in - let _v : 'tv_stm_dots = -# 883 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b, - P.clt2mcode "...+>" c, List.concat w, true)) ) -# 27315 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let s : ( -# 53 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let i00 : 'tv_ident = Obj.magic i00 in + let s00 : ( +# 28 "parser_cocci_menhir.mly" (Data.clt) -# 27336 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_s_ in - let _v : 'tv_storage = -# 805 "parser_cocci_menhir.mly" - ( P.clt2mcode Ast.Static s ) -# 27343 "parser_cocci_menhir.ml" +# 35127 "parser_cocci_menhir.ml" + ) = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let i0 = i00 in + let s0 = s00 in + let ty = + let i = i0 in + let s = s0 in + +# 531 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) +# 35140 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 35146 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 35153 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35159 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27351,23 +35167,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = i00; + MenhirLib.EngineTypes.startp = _startpos_i00_; + MenhirLib.EngineTypes.endp = _endpos_i00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let s : ( -# 53 "parser_cocci_menhir.mly" - (Data.clt) -# 27364 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_s_ in - let _v : 'tv_storage = -# 806 "parser_cocci_menhir.mly" - ( P.clt2mcode Ast.Auto s ) -# 27371 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let i00 : 'tv_ident = Obj.magic i00 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let i0 = i00 in + let s0 = s00 in + let ty = + let i = i0 in + let s = s0 in + +# 533 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) +# 35201 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 35207 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 35214 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35220 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27379,23 +35228,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let s : ( -# 53 "parser_cocci_menhir.mly" - (Data.clt) -# 27392 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_s_ in - let _v : 'tv_storage = -# 807 "parser_cocci_menhir.mly" - ( P.clt2mcode Ast.Register s ) -# 27399 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 35262 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 35268 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let s = s0 in + let i = + +# 39 "standard.mly" + ( None ) +# 35287 "parser_cocci_menhir.ml" + + in + +# 536 "parser_cocci_menhir.mly" + ( (if i = None && !Data.in_iso + then failwith "structures must be named in the iso file"); + Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), + P.clt2mcode "{" l, + d, P.clt2mcode "}" r)) ) +# 35297 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 35303 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 35310 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35316 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27407,23 +35324,100 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x000; + MenhirLib.EngineTypes.startp = _startpos_x000_; + MenhirLib.EngineTypes.endp = _endpos_x000_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; } = _menhir_stack in - let s : ( -# 53 "parser_cocci_menhir.mly" - (Data.clt) -# 27420 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_s_ in - let _v : 'tv_storage = -# 808 "parser_cocci_menhir.mly" - ( P.clt2mcode Ast.Extern s ) -# 27427 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 35363 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 35369 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let x000 : 'tv_ident = Obj.magic x000 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let x00 = x000 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let x0 = x00 in + let s = s0 in + let i = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 35392 "parser_cocci_menhir.ml" + + in + +# 536 "parser_cocci_menhir.mly" + ( (if i = None && !Data.in_iso + then failwith "structures must be named in the iso file"); + Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), + P.clt2mcode "{" l, + d, P.clt2mcode "}" r)) ) +# 35402 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 35408 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 35415 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35421 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27435,17 +35429,86 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_struct_decl = -# 512 "parser_cocci_menhir.mly" - ( [] ) -# 27449 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 35463 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" + (Data.clt) +# 35469 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let s00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 35474 "parser_cocci_menhir.ml" + ) = Obj.magic s00 in + let _startpos = _startpos_s00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let s = s0 in + +# 542 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = s in + let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in + Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) +# 35493 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 35499 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 35506 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35512 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27457,36 +35520,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 27480 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let t : 'tv_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_struct_decl = -# 514 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] ) -# 27490 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 35539 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let _startpos = _startpos_p00_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let ty = + let p = p0 in + +# 546 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) +# 35550 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 35556 "parser_cocci_menhir.ml" + + in + let cv = + +# 39 "standard.mly" + ( None ) +# 35563 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35569 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27498,97 +35577,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp2; - MenhirLib.EngineTypes.startp = _startpos_rp2_; - MenhirLib.EngineTypes.endp = _endpos_rp2_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = p; - MenhirLib.EngineTypes.startp = _startpos_p_; - MenhirLib.EngineTypes.endp = _endpos_p_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp2; - MenhirLib.EngineTypes.startp = _startpos_lp2_; - MenhirLib.EngineTypes.endp = _endpos_lp2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = rp1; - MenhirLib.EngineTypes.startp = _startpos_rp1_; - MenhirLib.EngineTypes.endp = _endpos_rp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = st; - MenhirLib.EngineTypes.startp = _startpos_st_; - MenhirLib.EngineTypes.endp = _endpos_st_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = lp1; - MenhirLib.EngineTypes.startp = _startpos_lp1_; - MenhirLib.EngineTypes.endp = _endpos_lp1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = t; - MenhirLib.EngineTypes.startp = _startpos_t_; - MenhirLib.EngineTypes.endp = _endpos_t_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 27551 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let rp2 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 27556 "parser_cocci_menhir.ml" - ) = Obj.magic rp2 in - let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in - let lp2 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 27562 "parser_cocci_menhir.ml" - ) = Obj.magic lp2 in - let rp1 : ( -# 77 "parser_cocci_menhir.mly" - (Data.clt) -# 27567 "parser_cocci_menhir.ml" - ) = Obj.magic rp1 in - let d : 'tv_d_ident = Obj.magic d in - let st : ( -# 99 "parser_cocci_menhir.mly" - (Data.clt) -# 27573 "parser_cocci_menhir.ml" - ) = Obj.magic st in - let lp1 : ( -# 76 "parser_cocci_menhir.mly" - (Data.clt) -# 27578 "parser_cocci_menhir.ml" - ) = Obj.magic lp1 in - let t : 'tv_fn_ctype = Obj.magic t in - let _startpos = _startpos_t_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_struct_decl = -# 518 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let t = - Ast0.wrap - (Ast0.FunctionPointer - (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, - P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in - [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] ) -# 27592 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 35606 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 35611 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 35624 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 35630 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 35638 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35644 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27600,44 +35652,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 27623 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in - let _startpos = _startpos_i_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_struct_decl = let cv = + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 35681 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 35686 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 35699 "parser_cocci_menhir.ml" + + in -# 39 "standard.mly" - ( None ) -# 27633 "parser_cocci_menhir.ml" +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 35705 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 35713 "parser_cocci_menhir.ml" in -# 526 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] ) -# 27641 "parser_cocci_menhir.ml" +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35719 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27649,17 +35727,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = pv; - MenhirLib.EngineTypes.startp = _startpos_pv_; - MenhirLib.EngineTypes.endp = _endpos_pv_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = x0; @@ -27670,54 +35748,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; }; } = _menhir_stack in - let pv : ( -# 107 "parser_cocci_menhir.mly" - (Data.clt) -# 27677 "parser_cocci_menhir.ml" - ) = Obj.magic pv in - let d : 'tv_d_ident = Obj.magic d in - let i : 'tv_pure_ident = Obj.magic i in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 35756 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 35761 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in - let _endpos = _endpos_pv_ in - let _v : 'tv_struct_decl = let cv = + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 35774 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 35780 "parser_cocci_menhir.ml" + + in + let cv = let x = x0 in # 41 "standard.mly" ( Some x ) -# 27689 "parser_cocci_menhir.ml" +# 35788 "parser_cocci_menhir.ml" in -# 526 "parser_cocci_menhir.mly" - ( let (id,fn) = d in - let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in - [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] ) -# 27697 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_struct_decl_list_start = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_struct_decl_list = -# 531 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 27721 "parser_cocci_menhir.ml" +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35794 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27729,19 +35802,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let _1 : 'tv_struct_decl = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_struct_decl_list_start = -# 534 "parser_cocci_menhir.mly" - ( _1 ) -# 27745 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 35831 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 35836 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r = r0 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 35850 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 35856 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 35864 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35870 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27753,25 +35878,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r1; + MenhirLib.EngineTypes.startp = _startpos_r1_; + MenhirLib.EngineTypes.endp = _endpos_r1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_struct_decl_list_start = Obj.magic _2 in - let _1 : 'tv_struct_decl = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_struct_decl_list_start = -# 535 "parser_cocci_menhir.mly" - ( _1@_2 ) -# 27775 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 35916 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 35921 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let r1 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 35926 "parser_cocci_menhir.ml" + ) = Obj.magic r1 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let r = r1 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 35946 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 35952 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 35960 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 35966 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27783,25 +35974,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = r; - MenhirLib.EngineTypes.startp = _startpos_r_; - MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let r : 'tv_continue_struct_decl_list = Obj.magic r in - let d : 'tv_edots_when_TEllipsis_struct_decl_ = Obj.magic d in - let _startpos = _startpos_d_ in - let _endpos = _endpos_r_ in - let _v : 'tv_struct_decl_list_start = -# 537 "parser_cocci_menhir.mly" - ( (P.mkddots "..." d)::r ) -# 27805 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36003 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36008 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 36021 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 36027 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36035 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36041 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27813,23 +36049,85 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let s : ( -# 50 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 27826 "parser_cocci_menhir.ml" - ) = Obj.magic s in - let _startpos = _startpos_s_ in - let _endpos = _endpos_s_ in - let _v : 'tv_struct_or_union = -# 508 "parser_cocci_menhir.mly" - ( P.clt2mcode Ast.Struct s ) -# 27833 "parser_cocci_menhir.ml" +# 36083 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36088 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36093 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let r = r0 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 36111 "parser_cocci_menhir.ml" + + in + +# 551 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) +# 36117 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36125 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36131 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27841,23 +36139,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = u; - MenhirLib.EngineTypes.startp = _startpos_u_; - MenhirLib.EngineTypes.endp = _endpos_u_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in - let u : ( -# 50 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" (Data.clt) -# 27854 "parser_cocci_menhir.ml" - ) = Obj.magic u in - let _startpos = _startpos_u_ in - let _endpos = _endpos_u_ in - let _v : 'tv_struct_or_union = -# 509 "parser_cocci_menhir.mly" - ( P.clt2mcode Ast.Union u ) -# 27861 "parser_cocci_menhir.ml" +# 36168 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36173 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 36186 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 36192 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36200 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36206 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27869,19 +36214,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : 'tv_eexpr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : 'tv_top_eexpr = -# 1199 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) ) -# 27885 "parser_cocci_menhir.ml" + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36243 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36248 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 36261 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 36267 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36275 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36281 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27893,56 +36289,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let _3 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 27916 "parser_cocci_menhir.ml" - ) = Obj.magic _3 in - let _2 : 'tv_initialize_list = Obj.magic _2 in - let _1 : ( -# 101 "parser_cocci_menhir.mly" - (Data.clt) -# 27922 "parser_cocci_menhir.ml" - ) = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : 'tv_top_init = -# 1637 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) -# 27929 "parser_cocci_menhir.ml" - in - _menhir_env.MenhirLib.EngineTypes.stack <- { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_toplevel_after_dots = -# 1625 "parser_cocci_menhir.mly" - ([]) -# 27946 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36318 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36323 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 36336 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 36342 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36350 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36356 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27954,23 +36364,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_dots = -# 1626 "parser_cocci_menhir.mly" - (_2) -# 27974 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 36393 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36398 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r = r0 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 36412 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 36418 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36426 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36432 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27982,25 +36440,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r1; + MenhirLib.EngineTypes.startp = _startpos_r1_; + MenhirLib.EngineTypes.endp = _endpos_r1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_dots = -# 1627 "parser_cocci_menhir.mly" - ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 28004 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 36478 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 36483 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let r1 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36488 "parser_cocci_menhir.ml" + ) = Obj.magic r1 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let r = r1 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 36508 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 36514 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36522 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36528 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28012,25 +36536,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_dots = -# 1628 "parser_cocci_menhir.mly" - (_1@_2) -# 28034 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36565 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36570 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let r = r0 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 36583 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 36589 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36597 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36603 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28042,23 +36611,85 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r0; + MenhirLib.EngineTypes.startp = _startpos_r0_; + MenhirLib.EngineTypes.endp = _endpos_r0_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_dots_init = -# 1616 "parser_cocci_menhir.mly" - (_2) -# 28062 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36645 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36650 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let r0 : ( +# 29 "parser_cocci_menhir.mly" + (Data.clt) +# 36655 "parser_cocci_menhir.ml" + ) = Obj.magic r0 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let r = r0 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 36673 "parser_cocci_menhir.ml" + + in + +# 553 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) +# 36679 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36687 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36693 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28070,25 +36701,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_dots_init = -# 1617 "parser_cocci_menhir.mly" - ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 28092 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36725 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 499 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) +# 36737 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 36743 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36751 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36757 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28100,25 +36765,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_dots_init = -# 1618 "parser_cocci_menhir.mly" - (_1@_2) -# 28122 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36789 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 501 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) +# 36801 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 36807 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36815 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36821 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28129,13 +36828,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_toplevel_after_exp = -# 1621 "parser_cocci_menhir.mly" - ([]) -# 28139 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 36853 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 503 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) +# 36865 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 36871 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36879 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36885 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28147,25 +36893,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_exp = -# 1622 "parser_cocci_menhir.mly" - (_1::_2) -# 28169 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 36917 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let ty = + let p = p0 in + +# 505 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = p in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) +# 36930 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 36936 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 36944 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 36950 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28176,13 +36957,81 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in - let _endpos = _startpos in - let _v : 'tv_toplevel_after_stm = -# 1631 "parser_cocci_menhir.mly" - ([]) -# 28186 "parser_cocci_menhir.ml" + let { + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 36991 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let r00 : ( +# 25 "parser_cocci_menhir.mly" + (string) +# 36996 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let r0 = r00 in + let ty = + let p = p0 in + let r = r0 in + +# 508 "parser_cocci_menhir.mly" + ( let nm = (r,P.id2name p) in + (* this is only possible when we are in a metavar decl. Otherwise, + it will be represented already as a MetaType *) + let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in + Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), + Ast0.Impure (*will be ignored*))) ) +# 37015 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 37021 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37029 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37035 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28194,25 +37043,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_stm = -# 1632 "parser_cocci_menhir.mly" - (_1::_2) -# 28216 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 37067 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 515 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) +# 37079 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 37085 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37093 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37099 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28224,25 +37107,74 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty200; + MenhirLib.EngineTypes.startp = _startpos_ty200_; + MenhirLib.EngineTypes.endp = _endpos_ty200_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = ty100; + MenhirLib.EngineTypes.startp = _startpos_ty100_; + MenhirLib.EngineTypes.endp = _endpos_ty100_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_after_stm = -# 1633 "parser_cocci_menhir.mly" - (_1@_2) -# 28246 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty200 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 37136 "parser_cocci_menhir.ml" + ) = Obj.magic ty200 in + let ty100 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 37141 "parser_cocci_menhir.ml" + ) = Obj.magic ty100 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty20 = ty200 in + let ty10 = ty100 in + let ty = + let ty2 = ty20 in + let ty1 = ty10 in + +# 517 "parser_cocci_menhir.mly" + ( Ast0.wrap + (Ast0.BaseType + (Ast.LongLongType, + [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) +# 37158 "parser_cocci_menhir.ml" + + in + +# 554 "parser_cocci_menhir.mly" + ( ty ) +# 37164 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37172 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37178 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28254,25 +37186,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in - let _1 : 'tv_stm_dots = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1611 "parser_cocci_menhir.mly" - ( _1::_2 ) -# 28276 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 37210 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 525 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) +# 37222 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37228 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37236 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37242 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28284,25 +37250,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1612 "parser_cocci_menhir.mly" - ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) -# 28306 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 37274 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 527 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) +# 37286 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37292 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37300 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37306 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28314,25 +37314,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = ty00; + MenhirLib.EngineTypes.startp = _startpos_ty00_; + MenhirLib.EngineTypes.endp = _endpos_ty00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1613 "parser_cocci_menhir.mly" - ( _1@_2 ) -# 28336 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let ty00 : ( +# 27 "parser_cocci_menhir.mly" + (Data.clt) +# 37338 "parser_cocci_menhir.ml" + ) = Obj.magic ty00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let ty0 = ty00 in + let ty = + let ty = ty0 in + +# 529 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) +# 37350 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37356 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37364 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37370 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28342,46 +37376,69 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }); (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w0; - MenhirLib.EngineTypes.startp = _startpos_w0_; - MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.semv = i00; + MenhirLib.EngineTypes.startp = _startpos_i00_; + MenhirLib.EngineTypes.endp = _endpos_i00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a0; - MenhirLib.EngineTypes.startp = _startpos_a0_; - MenhirLib.EngineTypes.endp = _endpos_a0_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let b : 'tv_toplevel_after_dots_init = Obj.magic b in - let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in - let a0 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 28369 "parser_cocci_menhir.ml" - ) = Obj.magic a0 in - let _startpos = _startpos_a0_ in - let _endpos = _endpos_b_ in - let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = - let w = w0 in - let a = a0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let i00 : 'tv_ident = Obj.magic i00 in + let s00 : ( +# 28 "parser_cocci_menhir.mly" + (Data.clt) +# 37408 "parser_cocci_menhir.ml" + ) = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let i0 = i00 in + let s0 = s00 in + let ty = + let i = i0 in + let s = s0 in + +# 531 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) +# 37422 "parser_cocci_menhir.ml" + + in -# 888 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) ) -# 28379 "parser_cocci_menhir.ml" +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37428 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37436 "parser_cocci_menhir.ml" in -# 1604 "parser_cocci_menhir.mly" - ( a::b ) -# 28385 "parser_cocci_menhir.ml" +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37442 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28393,63 +37450,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = c0; - MenhirLib.EngineTypes.startp = _startpos_c0_; - MenhirLib.EngineTypes.endp = _endpos_c0_; + MenhirLib.EngineTypes.semv = i00; + MenhirLib.EngineTypes.startp = _startpos_i00_; + MenhirLib.EngineTypes.endp = _endpos_i00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b0; - MenhirLib.EngineTypes.startp = _startpos_b0_; - MenhirLib.EngineTypes.endp = _endpos_b0_; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w0; - MenhirLib.EngineTypes.startp = _startpos_w0_; - MenhirLib.EngineTypes.endp = _endpos_w0_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a0; - MenhirLib.EngineTypes.startp = _startpos_a0_; - MenhirLib.EngineTypes.endp = _endpos_a0_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let b : 'tv_toplevel_after_dots_init = Obj.magic b in - let c0 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 28427 "parser_cocci_menhir.ml" - ) = Obj.magic c0 in - let b0 : 'tv_nest_start = Obj.magic b0 in - let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in - let a0 : ( -# 73 "parser_cocci_menhir.mly" - (Data.clt) -# 28434 "parser_cocci_menhir.ml" - ) = Obj.magic a0 in - let _startpos = _startpos_a0_ in - let _endpos = _endpos_b_ in - let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = - let c = c0 in - let b = b0 in - let w = w0 in - let a = a0 in + let m : 'tv_list_TMul_ = Obj.magic m in + let i00 : 'tv_ident = Obj.magic i00 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let i0 = i00 in + let s0 = s00 in + let ty = + let i = i0 in + let s = s0 in + +# 533 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) +# 37490 "parser_cocci_menhir.ml" + + in -# 892 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, - P.clt2mcode "...>" c, List.concat w, false)) ) -# 28447 "parser_cocci_menhir.ml" +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37496 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37504 "parser_cocci_menhir.ml" in -# 1605 "parser_cocci_menhir.mly" - ( a::b ) -# 28453 "parser_cocci_menhir.ml" +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37510 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28461,63 +37518,98 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = b; - MenhirLib.EngineTypes.startp = _startpos_b_; - MenhirLib.EngineTypes.endp = _endpos_b_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = c0; - MenhirLib.EngineTypes.startp = _startpos_c0_; - MenhirLib.EngineTypes.endp = _endpos_c0_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b0; - MenhirLib.EngineTypes.startp = _startpos_b0_; - MenhirLib.EngineTypes.endp = _endpos_b0_; + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w0; - MenhirLib.EngineTypes.startp = _startpos_w0_; - MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a0; - MenhirLib.EngineTypes.startp = _startpos_a0_; - MenhirLib.EngineTypes.endp = _endpos_a0_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; }; } = _menhir_stack in - let b : 'tv_toplevel_after_dots_init = Obj.magic b in - let c0 : ( -# 73 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 28495 "parser_cocci_menhir.ml" - ) = Obj.magic c0 in - let b0 : 'tv_nest_start = Obj.magic b0 in - let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in - let a0 : ( -# 73 "parser_cocci_menhir.mly" +# 37557 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 28502 "parser_cocci_menhir.ml" - ) = Obj.magic a0 in - let _startpos = _startpos_a0_ in - let _endpos = _endpos_b_ in - let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = - let c = c0 in - let b = b0 in - let w = w0 in - let a = a0 in +# 37563 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let s = s0 in + let i = + +# 39 "standard.mly" + ( None ) +# 37583 "parser_cocci_menhir.ml" + + in + +# 536 "parser_cocci_menhir.mly" + ( (if i = None && !Data.in_iso + then failwith "structures must be named in the iso file"); + Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), + P.clt2mcode "{" l, + d, P.clt2mcode "}" r)) ) +# 37593 "parser_cocci_menhir.ml" + + in -# 895 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, - P.clt2mcode "...+>" c, List.concat w, true)) ) -# 28515 "parser_cocci_menhir.ml" +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37599 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37607 "parser_cocci_menhir.ml" in -# 1605 "parser_cocci_menhir.mly" - ( a::b ) -# 28521 "parser_cocci_menhir.ml" +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37613 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28529,57 +37621,107 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = c0; - MenhirLib.EngineTypes.startp = _startpos_c0_; - MenhirLib.EngineTypes.endp = _endpos_c0_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b0; - MenhirLib.EngineTypes.startp = _startpos_b0_; - MenhirLib.EngineTypes.endp = _endpos_b0_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w0; - MenhirLib.EngineTypes.startp = _startpos_w0_; - MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a0; - MenhirLib.EngineTypes.startp = _startpos_a0_; - MenhirLib.EngineTypes.endp = _endpos_a0_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = x000; + MenhirLib.EngineTypes.startp = _startpos_x000_; + MenhirLib.EngineTypes.endp = _endpos_x000_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; }; } = _menhir_stack in - let c0 : ( -# 73 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 28557 "parser_cocci_menhir.ml" - ) = Obj.magic c0 in - let b0 : 'tv_nest_start = Obj.magic b0 in - let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in - let a0 : ( -# 73 "parser_cocci_menhir.mly" +# 37665 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 28564 "parser_cocci_menhir.ml" - ) = Obj.magic a0 in - let _startpos = _startpos_a0_ in - let _endpos = _endpos_c0_ in - let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = - let c = c0 in - let b = b0 in - let w = w0 in - let a = a0 in +# 37671 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let x000 : 'tv_ident = Obj.magic x000 in + let s00 : 'tv_struct_or_union = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let x00 = x000 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let x0 = x00 in + let s = s0 in + let i = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37695 "parser_cocci_menhir.ml" + + in + +# 536 "parser_cocci_menhir.mly" + ( (if i = None && !Data.in_iso + then failwith "structures must be named in the iso file"); + Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), + P.clt2mcode "{" l, + d, P.clt2mcode "}" r)) ) +# 37705 "parser_cocci_menhir.ml" + + in -# 892 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, - P.clt2mcode "...>" c, List.concat w, false)) ) -# 28577 "parser_cocci_menhir.ml" +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37711 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37719 "parser_cocci_menhir.ml" in -# 1606 "parser_cocci_menhir.mly" - ( [a] ) -# 28583 "parser_cocci_menhir.ml" +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37725 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28591,57 +37733,93 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = c0; - MenhirLib.EngineTypes.startp = _startpos_c0_; - MenhirLib.EngineTypes.endp = _endpos_c0_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = b0; - MenhirLib.EngineTypes.startp = _startpos_b0_; - MenhirLib.EngineTypes.endp = _endpos_b0_; + MenhirLib.EngineTypes.semv = r00; + MenhirLib.EngineTypes.startp = _startpos_r00_; + MenhirLib.EngineTypes.endp = _endpos_r00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.semv = w0; - MenhirLib.EngineTypes.startp = _startpos_w0_; - MenhirLib.EngineTypes.endp = _endpos_w0_; + MenhirLib.EngineTypes.semv = d00; + MenhirLib.EngineTypes.startp = _startpos_d00_; + MenhirLib.EngineTypes.endp = _endpos_d00_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = a0; - MenhirLib.EngineTypes.startp = _startpos_a0_; - MenhirLib.EngineTypes.endp = _endpos_a0_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = l00; + MenhirLib.EngineTypes.startp = _startpos_l00_; + MenhirLib.EngineTypes.endp = _endpos_l00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.semv = s00; + MenhirLib.EngineTypes.startp = _startpos_s00_; + MenhirLib.EngineTypes.endp = _endpos_s00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; } = _menhir_stack in - let c0 : ( -# 73 "parser_cocci_menhir.mly" + let m : 'tv_list_TMul_ = Obj.magic m in + let r00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 28619 "parser_cocci_menhir.ml" - ) = Obj.magic c0 in - let b0 : 'tv_nest_start = Obj.magic b0 in - let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in - let a0 : ( -# 73 "parser_cocci_menhir.mly" +# 37772 "parser_cocci_menhir.ml" + ) = Obj.magic r00 in + let d00 : 'tv_struct_decl_list = Obj.magic d00 in + let l00 : ( +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 28626 "parser_cocci_menhir.ml" - ) = Obj.magic a0 in - let _startpos = _startpos_a0_ in - let _endpos = _endpos_c0_ in - let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a = - let c = c0 in - let b = b0 in - let w = w0 in - let a = a0 in +# 37778 "parser_cocci_menhir.ml" + ) = Obj.magic l00 in + let s00 : ( +# 43 "parser_cocci_menhir.mly" + (Parse_aux.info) +# 37783 "parser_cocci_menhir.ml" + ) = Obj.magic s00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let r0 = r00 in + let d0 = d00 in + let l0 = l00 in + let s0 = s00 in + let ty = + let r = r0 in + let d = d0 in + let l = l0 in + let s = s0 in + +# 542 "parser_cocci_menhir.mly" + ( let (nm,pure,clt) = s in + let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in + Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) +# 37803 "parser_cocci_menhir.ml" + + in -# 895 "parser_cocci_menhir.mly" - ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, - P.clt2mcode "...+>" c, List.concat w, true)) ) -# 28639 "parser_cocci_menhir.ml" +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37809 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37817 "parser_cocci_menhir.ml" in -# 1606 "parser_cocci_menhir.mly" - ( [a] ) -# 28645 "parser_cocci_menhir.ml" +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37823 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28653,25 +37831,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = m; + MenhirLib.EngineTypes.startp = _startpos_m_; + MenhirLib.EngineTypes.endp = _endpos_m_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = p00; + MenhirLib.EngineTypes.startp = _startpos_p00_; + MenhirLib.EngineTypes.endp = _endpos_p00_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x0; + MenhirLib.EngineTypes.startp = _startpos_x0_; + MenhirLib.EngineTypes.endp = _endpos_x0_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in - let _1 : 'tv_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = -# 1607 "parser_cocci_menhir.mly" - ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) -# 28675 "parser_cocci_menhir.ml" + let m : 'tv_list_TMul_ = Obj.magic m in + let p00 : ( +# 37 "parser_cocci_menhir.mly" + (string * Data.clt) +# 37855 "parser_cocci_menhir.ml" + ) = Obj.magic p00 in + let x0 : 'tv_const_vol = Obj.magic x0 in + let _startpos = _startpos_x0_ in + let _endpos = _endpos_m_ in + let _v : 'tv_typedef_ctype = let ty = + let p0 = p00 in + let ty = + let p = p0 in + +# 546 "parser_cocci_menhir.mly" + ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) +# 37867 "parser_cocci_menhir.ml" + + in + +# 555 "parser_cocci_menhir.mly" + ( ty ) +# 37873 "parser_cocci_menhir.ml" + + in + let cv = + let x = x0 in + +# 41 "standard.mly" + ( Some x ) +# 37881 "parser_cocci_menhir.ml" + + in + +# 572 "parser_cocci_menhir.mly" + ( P.pointerify (P.make_cv cv ty) m ) +# 37887 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28683,25 +37895,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = rp; + MenhirLib.EngineTypes.startp = _startpos_rp_; + MenhirLib.EngineTypes.endp = _endpos_rp_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = t; + MenhirLib.EngineTypes.startp = _startpos_t_; + MenhirLib.EngineTypes.endp = _endpos_t_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = lp; + MenhirLib.EngineTypes.startp = _startpos_lp_; + MenhirLib.EngineTypes.endp = _endpos_lp_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in - let _1 : 'tv_decl_statement_expr = Obj.magic _1 in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = -# 1608 "parser_cocci_menhir.mly" - ( _1@_2 ) -# 28705 "parser_cocci_menhir.ml" + let rp : ( +# 56 "parser_cocci_menhir.mly" + (Data.clt) +# 37918 "parser_cocci_menhir.ml" + ) = Obj.magic rp in + let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in + let lp : ( +# 55 "parser_cocci_menhir.mly" + (Data.clt) +# 37924 "parser_cocci_menhir.ml" + ) = Obj.magic lp in + let _startpos = _startpos_lp_ in + let _endpos = _endpos_rp_ in + let _v : 'tv_typedef_ctype = +# 574 "parser_cocci_menhir.mly" + ( let (mids,code) = t in + Ast0.wrap + (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) +# 37933 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28723,9 +37951,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 1516 "parser_cocci_menhir.mly" +# 1689 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode _1)) ) -# 28729 "parser_cocci_menhir.ml" +# 37957 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28744,17 +37972,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 64 "parser_cocci_menhir.mly" +# 43 "parser_cocci_menhir.mly" (Parse_aux.info) -# 28750 "parser_cocci_menhir.ml" +# 37978 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 1518 "parser_cocci_menhir.mly" +# 1691 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 28758 "parser_cocci_menhir.ml" +# 37986 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28776,9 +38004,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1288 "parser_cocci_menhir.mly" +# 1327 "parser_cocci_menhir.mly" ( _1 ) -# 28782 "parser_cocci_menhir.ml" +# 38010 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28803,16 +38031,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 28809 "parser_cocci_menhir.ml" +# 38037 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1290 "parser_cocci_menhir.mly" +# 1329 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 28816 "parser_cocci_menhir.ml" +# 38044 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28837,16 +38065,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 28843 "parser_cocci_menhir.ml" +# 38071 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1292 "parser_cocci_menhir.mly" +# 1331 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 28850 "parser_cocci_menhir.ml" +# 38078 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28869,14 +38097,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in + let _2 : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : 'tv_unary_op = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1294 "parser_cocci_menhir.mly" +# 1333 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 28880 "parser_cocci_menhir.ml" +# 38108 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28901,17 +38129,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 28907 "parser_cocci_menhir.ml" +# 38135 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1296 "parser_cocci_menhir.mly" +# 1335 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 28915 "parser_cocci_menhir.ml" +# 38143 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28936,16 +38164,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 28942 "parser_cocci_menhir.ml" +# 38170 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1299 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 28949 "parser_cocci_menhir.ml" +# 38177 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28979,29 +38207,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 28985 "parser_cocci_menhir.ml" +# 38213 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 28991 "parser_cocci_menhir.ml" +# 38219 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 28996 "parser_cocci_menhir.ml" +# 38224 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1301 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 29005 "parser_cocci_menhir.ml" +# 38233 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29023,9 +38251,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1288 "parser_cocci_menhir.mly" +# 1327 "parser_cocci_menhir.mly" ( _1 ) -# 29029 "parser_cocci_menhir.ml" +# 38257 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29050,16 +38278,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 29056 "parser_cocci_menhir.ml" +# 38284 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1290 "parser_cocci_menhir.mly" +# 1329 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 29063 "parser_cocci_menhir.ml" +# 38291 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29084,16 +38312,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 29090 "parser_cocci_menhir.ml" +# 38318 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1292 "parser_cocci_menhir.mly" +# 1331 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 29097 "parser_cocci_menhir.ml" +# 38325 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29116,14 +38344,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in + let _2 : 'tv_cast_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : 'tv_unary_op = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1294 "parser_cocci_menhir.mly" +# 1333 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 29127 "parser_cocci_menhir.ml" +# 38355 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29148,17 +38376,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 29154 "parser_cocci_menhir.ml" +# 38382 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1296 "parser_cocci_menhir.mly" +# 1335 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 29162 "parser_cocci_menhir.ml" +# 38390 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29183,16 +38411,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 29189 "parser_cocci_menhir.ml" +# 38417 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1299 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 29196 "parser_cocci_menhir.ml" +# 38424 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29226,29 +38454,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 29232 "parser_cocci_menhir.ml" +# 38460 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 29238 "parser_cocci_menhir.ml" +# 38466 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 29243 "parser_cocci_menhir.ml" +# 38471 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1301 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 29252 "parser_cocci_menhir.ml" +# 38480 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29270,9 +38498,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1288 "parser_cocci_menhir.mly" +# 1327 "parser_cocci_menhir.mly" ( _1 ) -# 29276 "parser_cocci_menhir.ml" +# 38504 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29297,16 +38525,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 29303 "parser_cocci_menhir.ml" +# 38531 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1290 "parser_cocci_menhir.mly" +# 1329 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 29310 "parser_cocci_menhir.ml" +# 38538 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29331,16 +38559,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 29337 "parser_cocci_menhir.ml" +# 38565 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1292 "parser_cocci_menhir.mly" +# 1331 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 29344 "parser_cocci_menhir.ml" +# 38572 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29363,14 +38591,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in + let _2 : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : 'tv_unary_op = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1294 "parser_cocci_menhir.mly" +# 1333 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 29374 "parser_cocci_menhir.ml" +# 38602 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29395,17 +38623,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 29401 "parser_cocci_menhir.ml" +# 38629 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1296 "parser_cocci_menhir.mly" +# 1335 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 29409 "parser_cocci_menhir.ml" +# 38637 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29430,16 +38658,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 29436 "parser_cocci_menhir.ml" +# 38664 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1299 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 29443 "parser_cocci_menhir.ml" +# 38671 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29473,29 +38701,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 29479 "parser_cocci_menhir.ml" +# 38707 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 29485 "parser_cocci_menhir.ml" +# 38713 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 29490 "parser_cocci_menhir.ml" +# 38718 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1301 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 29499 "parser_cocci_menhir.ml" +# 38727 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29517,9 +38745,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1288 "parser_cocci_menhir.mly" +# 1327 "parser_cocci_menhir.mly" ( _1 ) -# 29523 "parser_cocci_menhir.ml" +# 38751 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29544,16 +38772,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 29550 "parser_cocci_menhir.ml" +# 38778 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1290 "parser_cocci_menhir.mly" +# 1329 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 29557 "parser_cocci_menhir.ml" +# 38785 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29578,16 +38806,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Data.clt) -# 29584 "parser_cocci_menhir.ml" +# 38812 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1292 "parser_cocci_menhir.mly" +# 1331 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 29591 "parser_cocci_menhir.ml" +# 38819 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29610,14 +38838,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in + let _2 : 'tv_cast_expr_expr_invalid_ = Obj.magic _2 in let _1 : 'tv_unary_op = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1294 "parser_cocci_menhir.mly" +# 1333 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 29621 "parser_cocci_menhir.ml" +# 38849 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29642,17 +38870,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 29648 "parser_cocci_menhir.ml" +# 38876 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1296 "parser_cocci_menhir.mly" +# 1335 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 29656 "parser_cocci_menhir.ml" +# 38884 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29677,16 +38905,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 29683 "parser_cocci_menhir.ml" +# 38911 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1299 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 29690 "parser_cocci_menhir.ml" +# 38918 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29720,29 +38948,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 77 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 29726 "parser_cocci_menhir.ml" +# 38954 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 76 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 29732 "parser_cocci_menhir.ml" +# 38960 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 58 "parser_cocci_menhir.mly" +# 36 "parser_cocci_menhir.mly" (Data.clt) -# 29737 "parser_cocci_menhir.ml" +# 38965 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1301 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 29746 "parser_cocci_menhir.ml" +# 38974 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29761,16 +38989,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 93 "parser_cocci_menhir.mly" +# 72 "parser_cocci_menhir.mly" (Data.clt) -# 29767 "parser_cocci_menhir.ml" +# 38995 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1305 "parser_cocci_menhir.mly" +# 1344 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.GetRef _1 ) -# 29774 "parser_cocci_menhir.ml" +# 39002 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29789,16 +39017,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 29795 "parser_cocci_menhir.ml" +# 39023 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1306 "parser_cocci_menhir.mly" +# 1345 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.DeRef _1 ) -# 29802 "parser_cocci_menhir.ml" +# 39030 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29817,16 +39045,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 29823 "parser_cocci_menhir.ml" +# 39051 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1307 "parser_cocci_menhir.mly" +# 1346 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.UnPlus _1 ) -# 29830 "parser_cocci_menhir.ml" +# 39058 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29845,16 +39073,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 98 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) -# 29851 "parser_cocci_menhir.ml" +# 39079 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1308 "parser_cocci_menhir.mly" +# 1347 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.UnMinus _1 ) -# 29858 "parser_cocci_menhir.ml" +# 39086 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29873,16 +39101,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 78 "parser_cocci_menhir.mly" (Data.clt) -# 29879 "parser_cocci_menhir.ml" +# 39107 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1309 "parser_cocci_menhir.mly" +# 1348 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Tilde _1 ) -# 29886 "parser_cocci_menhir.ml" +# 39114 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29910,9 +39138,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_when_start = -# 1730 "parser_cocci_menhir.mly" +# 1910 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS((Ast0.wrap(Ast0.Exp(_1)))::_2)) ) -# 29916 "parser_cocci_menhir.ml" +# 39144 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29940,9 +39168,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_when_start = -# 1732 "parser_cocci_menhir.mly" +# 1912 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1@_2)) ) -# 29946 "parser_cocci_menhir.ml" +# 39174 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29960,13 +39188,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.endp = _endpos_w_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let w : 'tv_whens_when_start_rule_elem_statement_ = Obj.magic w in + let w : 'tv_whens_when_start_rule_elem_statement_any_strict_ = Obj.magic w in let _startpos = _startpos_w_ in let _endpos = _endpos_w_ in let _v : 'tv_whenppdecs = -# 899 "parser_cocci_menhir.mly" +# 922 "parser_cocci_menhir.mly" ( w ) -# 29970 "parser_cocci_menhir.ml" +# 39198 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29999,10 +39227,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w : 'tv_when_start = Obj.magic w in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : 'tv_whens_when_start_rule_elem_statement_ = -# 1798 "parser_cocci_menhir.mly" + let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = +# 1979 "parser_cocci_menhir.mly" ( [Ast0.WhenNot w] ) -# 30006 "parser_cocci_menhir.ml" +# 39234 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30035,10 +39263,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w : 'tv_rule_elem_statement = Obj.magic w in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : 'tv_whens_when_start_rule_elem_statement_ = -# 1799 "parser_cocci_menhir.mly" + let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = +# 1980 "parser_cocci_menhir.mly" ( [Ast0.WhenAlways w] ) -# 30042 "parser_cocci_menhir.ml" +# 39270 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30067,10 +39295,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _2 : 'tv_comma_list_any_strict_ = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : 'tv_whens_when_start_rule_elem_statement_ = -# 1801 "parser_cocci_menhir.mly" + let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = +# 1982 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.WhenModifier(x)) _2 ) -# 30074 "parser_cocci_menhir.ml" +# 39302 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30103,10 +39331,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let e : 'tv_eexpr = Obj.magic e in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : 'tv_whens_when_start_rule_elem_statement_ = -# 1802 "parser_cocci_menhir.mly" + let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = +# 1983 "parser_cocci_menhir.mly" ( [Ast0.WhenNotTrue e] ) -# 30110 "parser_cocci_menhir.ml" +# 39338 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30139,10 +39367,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let e : 'tv_eexpr = Obj.magic e in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : 'tv_whens_when_start_rule_elem_statement_ = -# 1803 "parser_cocci_menhir.mly" + let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = +# 1984 "parser_cocci_menhir.mly" ( [Ast0.WhenNotFalse e] ) -# 30146 "parser_cocci_menhir.ml" +# 39374 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30163,106 +39391,106 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let rec script_meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1534 lexer lexbuf) : ( -# 159 "parser_cocci_menhir.mly" - (string * (string * string)) -# 30170 "parser_cocci_menhir.ml" + (Obj.magic (MenhirInterpreter.entry 1848 lexer lexbuf) : ( +# 140 "parser_cocci_menhir.mly" + ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option) +# 39398 "parser_cocci_menhir.ml" )) and rule_name = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1470 lexer lexbuf) : ( -# 153 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1773 lexer lexbuf) : ( +# 134 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 30178 "parser_cocci_menhir.ml" +# 39406 "parser_cocci_menhir.ml" )) and reinit = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1468 lexer lexbuf) : ( -# 131 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1771 lexer lexbuf) : ( +# 112 "parser_cocci_menhir.mly" (unit) -# 30186 "parser_cocci_menhir.ml" +# 39414 "parser_cocci_menhir.ml" )) and plus_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1432 lexer lexbuf) : ( -# 140 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1735 lexer lexbuf) : ( +# 121 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30194 "parser_cocci_menhir.ml" +# 39422 "parser_cocci_menhir.ml" )) and plus_exp_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1423 lexer lexbuf) : ( -# 143 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1727 lexer lexbuf) : ( +# 124 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30202 "parser_cocci_menhir.ml" +# 39430 "parser_cocci_menhir.ml" )) and never_used = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1417 lexer lexbuf) : ( -# 168 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1721 lexer lexbuf) : ( +# 149 "parser_cocci_menhir.mly" (unit) -# 30210 "parser_cocci_menhir.ml" +# 39438 "parser_cocci_menhir.ml" )) and minus_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1331 lexer lexbuf) : ( -# 134 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1641 lexer lexbuf) : ( +# 115 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30218 "parser_cocci_menhir.ml" +# 39446 "parser_cocci_menhir.ml" )) and minus_exp_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1307 lexer lexbuf) : ( -# 137 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1629 lexer lexbuf) : ( +# 118 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 30226 "parser_cocci_menhir.ml" +# 39454 "parser_cocci_menhir.ml" )) and meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1304 lexer lexbuf) : ( -# 157 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1626 lexer lexbuf) : ( +# 138 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 30234 "parser_cocci_menhir.ml" +# 39462 "parser_cocci_menhir.ml" )) and iso_rule_name = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1300 lexer lexbuf) : ( -# 149 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1622 lexer lexbuf) : ( +# 130 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 30242 "parser_cocci_menhir.ml" +# 39470 "parser_cocci_menhir.ml" )) and iso_meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1104 lexer lexbuf) : ( -# 165 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1360 lexer lexbuf) : ( +# 146 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 30250 "parser_cocci_menhir.ml" +# 39478 "parser_cocci_menhir.ml" )) and iso_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 10 lexer lexbuf) : ( -# 162 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 18 lexer lexbuf) : ( +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 30258 "parser_cocci_menhir.ml" +# 39486 "parser_cocci_menhir.ml" )) and include_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 0 lexer lexbuf) : ( -# 146 "parser_cocci_menhir.mly" - ((string,string) Common.either list) -# 30266 "parser_cocci_menhir.ml" +# 127 "parser_cocci_menhir.mly" + (Data.incl_iso list) +# 39494 "parser_cocci_menhir.ml" ))