| | Zeev Suraski | | native PHP version: Greg Beaver | | native PHP version: Alan Knowles | +----------------------------------------------------------------------+ */ // // This does nothing on it's own - refer to PHP_Parser // It's purely the code for the Parser, generated by phpJay // class PintCompiler_Parser { /** * Options, used to control how the parser collects * and distributes the data it finds. * * Currently, options are grouped into two categories: * - containers for data * - publishing of data * * Default action is to return arrays of parsed data * for use by other applications. The first set of * options, container options, provide a means to * tell the parser to encapsulate data in objects * instead of in arrays. The option tells the parser which * class to instantiate for each documentable element. The * default value of false will prompt the usage of arrays * instead. * * The second set of options provide for intermediary * publishing of data while parsing, to allow other * classes to hook into functionality if they desire * @var array */ var $_options = array(); /** * global variable name of parser arrays * should match the build options * * @var string * @access public */ var $yyGlobalName = '_PINTCOMPILER_PARSER'; var $tree = array( 'statements' => array(), 'functions' => array(), 'classes' => array(), ); /** * parse a string. * and build the tokens etc.. * * @var string * @access public */ function parseString($string) { require_once 'PintCompiler/Tokenizer.php'; $tokenizer = new PintCompiler_Tokenizer($string); $c = __CLASS__; $p = new $c; $GLOBALS['PintCompiler_Tokenizer']['singleton'] = &$tokenizer; return $p->yyparse($tokenizer); } // line 222 "-" /** * thrown for irrecoverable syntax errors and stack overflow. */ var $yyErrorCode = 256; /** * Debugging */ var $debug = false; /** * (syntax) error message. * Can be overwritten to control message format. * @param message text to be displayed. * @param expected vector of acceptable tokens, if available. */ function raiseError ($message, $expected = null) { if ($expected !== null ) { $m = "$message expecting "; if (!$expected) { $m .= " '?? nothing expeced ??'"; } foreach($expected as $e) { $m .= " '$e'"; } } else { $m = $message; } return PEAR::raiseError($m); } /** * index-checked interface to yyName[]. * @param token single character or %token value. * @return token name or [illegal] or [unknown]. */ function yyname ($token) { if ($token < 0 || $token > count($GLOBALS[$this->yyGlobalName]['yyName'])) return "[illegal]"; if (isset($GLOBALS[$this->yyGlobalName]['yyName'][$token])) { return $GLOBALS[$this->yyGlobalName]['yyName'][$token]; } return "[unknown]"; } /** * computes list of expected tokens on error by tracing the tables. * @param state for which to compute the list. * @return list of token names. */ function yyExpecting ($state) { $len = 0; $ok = array();//new boolean[YyNameClass.yyName.length]; if (($n = $GLOBALS[$this->yyGlobalName]['yySindex'][$state]) != 0) { $start = $n; if ($start < 0) { $start = 0; } for ($token = $start; $token < count($GLOBALS[$this->yyGlobalName]['yyName']) && $n+$token < count($GLOBALS[$this->yyGlobalName]['yyTable']); $token++) { if (@$GLOBALS[$this->yyGlobalName]['yyCheck'][$n+$token] == $token && !@$ok[$token] && $GLOBALS[$this->yyGlobalName]['yyName'][$token] != null) { $len++; $ok[$token] = true; } } // end for } if (($n = $GLOBALS[$this->yyGlobalName]['yyRindex'][$state]) != 0) { $start = $n; if ($start < 0) { $start = 0; } for ($token = $start; $token < count($GLOBALS[$this->yyGlobalName]['yyName']) && $n+$token < count($GLOBALS[$this->yyGlobalName]['yyTable']); $token++) { if (@$GLOBALS[$this->yyGlobalName]['yyCheck'][$n+$token] == $token && !@$ok[$token] && @$GLOBALS[$this->yyGlobalName]['yyName'][$token] != null) { $len++; $ok[$token] = true; } } // end for } $result = array(); for ($n = $token = 0; $n < $len; $token++) { if (@$ok[$token]) { $result[$n++] =$GLOBALS[$this->yyGlobalName]['yyName'][$token]; } } return $result; } /** * initial size and increment of the state/value stack [default 256]. * This is not final so that it can be overwritten outside of invocations * of yyparse(). */ var $yyMax; /** * executed at the beginning of a reduce action. * Used as $$ = yyDefault($1), prior to the user-specified action, if any. * Can be overwritten to provide deep copy, etc. * @param first value for $1, or null. * @return first. */ function yyDefault ($first) { return $first; } /** * the generated parser. * Maintains a state and a value stack, currently with fixed maximum size. * @param yyLex scanner. * @return result of the last reduction, if any. * @throws yyException on irrecoverable parse error. */ function yyparse (&$yyLex,$options=array()) { $this->debug = @$options['debug']; $this->yyLex = &$yyLex; if (!$this->yyGlobalName) { echo "\n\nYou must define \$this->yyGlobalName to match the build option -g _XXXXX \n\n"; exit; } if ($this->debug) echo "\tStarting jay:yyparse"; //error_reporting(E_ALL); if ($this->yyMax <= 0) $this->yyMax = 256; // initial size $this->yyState = 0; $this->yyStates = array(); $this->yyVal = null; $this->yyVals = array(); $yyTableCount = count($GLOBALS[$this->yyGlobalName]['yyTable']); $yyToken = -1; // current input $yyErrorFlag = 0; // #tks to shift $tloop = 0; while (1) {//yyLoop: //echo "yyLoop\n"; //if ($this->debug) echo "\tyyLoop:\n"; for ($yyTop = 0;; $yyTop++) { //if ($this->debug) echo ($tloop++) .">>>>>>yyLoop:yTop = {$yyTop}\n"; $this->yyStates[$yyTop] = $this->yyState; $this->yyVals[$yyTop] = $this->yyVal; //yyDiscarded: for (;;) { // discarding a token does not change stack //echo "yyDiscarded\n"; if ($this->debug) echo "\tIn main loop : State = {$this->yyState}\n"; if ($this->debug) echo "\tyydefred = {$GLOBALS[$this->yyGlobalName]['yyDefRed'][$this->yyState]}\n"; if (($yyN = $GLOBALS[$this->yyGlobalName]['yyDefRed'][$this->yyState]) == 0) { // else [default] reduce (yyN) //if ($this->debug) echo "\tA:token is $yyToken\n"; if ($yyToken < 0) { //if ($this->debug) echo "\tA:advance\n"; if ($yyLex->advance()) { $yyToken = $yyLex->token ; } else { $yyToken = 0; } } if ($this->debug) { echo "\tA:token is now " . "{$GLOBALS[$this->yyGlobalName]['yyName'][$yyToken]} " .token_name($yyToken). "\n"; var_dump($yyToken); } //if ($this->debug) echo "GOT TOKEN $yyToken"; //if ($this->debug) echo "Sindex: {$GLOBALS[$this->yyGlobalName]['yySindex'][$this->yyState]}\n"; if (($yyN = $GLOBALS[$this->yyGlobalName]['yySindex'][$this->yyState]) != 0 && ($yyN += $yyToken) >= 0 && $yyN < $yyTableCount && $GLOBALS[$this->yyGlobalName]['yyCheck'][$yyN] == $yyToken) { $this->yyState = $GLOBALS[$this->yyGlobalName]['yyTable'][$yyN]; // shift to yyN $this->yyVal = $yyLex->value; $yyToken = -1; if ($yyErrorFlag > 0) $yyErrorFlag--; continue 2; // goto!!yyLoop; } if (($yyN = $GLOBALS[$this->yyGlobalName]['yyRindex'][$this->yyState]) != 0 && ($yyN += $yyToken) >= 0 && $yyN < $yyTableCount && $GLOBALS[$this->yyGlobalName]['yyCheck'][$yyN] == $yyToken) { $yyN = $GLOBALS[$this->yyGlobalName]['yyTable'][$yyN]; // reduce (yyN) } else { switch ($yyErrorFlag) { case 0: $info = $yyLex->parseError(); $info .= ', Unexpected '.$this->yyName($yyToken).','; return $this->raiseError("$info syntax error", $this->yyExpecting($this->yyState)); case 1: case 2: $yyErrorFlag = 3; do { if (($yyN = @$GLOBALS[$this->yyGlobalName]['yySindex'] [$this->yyStates[$yyTop]]) != 0 && ($yyN += $this->yyErrorCode) >= 0 && $yyN < $yyTableCount && $GLOBALS[$this->yyGlobalName]['yyCheck'][$yyN] == $this->yyErrorCode) { $this->yyState = $GLOBALS[$this->yyGlobalName]['yyTable'][$yyN]; $this->yyVal = $yyLex->value; //vi /echo "goto yyLoop?\n"; break 3; //continue yyLoop; } } while ($yyTop-- >= 0); $info = $yyLex->parseError(); return $this->raiseError("$info irrecoverable syntax error"); case 3: if ($yyToken == 0) { $info =$yyLex->parseError(); return $this->raiseError("$info irrecoverable syntax error at end-of-file"); } $yyToken = -1; //echo "goto yyDiscarded?"; break 1; //continue yyDiscarded; // leave stack alone } } } $yyV = $yyTop + 1-$GLOBALS[$this->yyGlobalName]['yyLen'][$yyN]; //if ($this->debug) echo "\tyyV is $yyV\n"; $yyVal = $yyV > $yyTop ? null : $this->yyVals[$yyV]; //if ($this->debug) echo "\tyyVal is ". serialize($yyVal) ."\n"; if ($this->debug) echo "\tswitch($yyN)\n"; $method = '_' .$yyN; if (method_exists($this,$method)) { $this->$method($yyTop); } //if ($this->debug) echo "\tDONE switch\n";if ($this->debug) echo "\t--------------\n"; $yyTop -= $GLOBALS[$this->yyGlobalName]['yyLen'][$yyN]; //if ($this->debug) echo "\tyyTop is $yyTop\n"; $this->yyState = $this->yyStates[$yyTop]; //if ($this->debug) echo "\tyyState is {$this->yyState}\n"; $yyM = $GLOBALS[$this->yyGlobalName]['yyLhs'][$yyN]; //if ($this->debug) echo "\tyyM is now $yyM\n"; if ($this->yyState == 0 && $yyM == 0) { $this->yyState = $GLOBALS[$this->yyGlobalName]['yyFinal']; if ($yyToken < 0) { $yyToken =0; if ($yyLex->advance()) { $yyToken = $yyLex->token; } } if ($this->debug) echo "\tTOKEN IS NOW $yyToken\n"; if ($yyToken == 0) { return $yyVal; } //if ($this->debug) echo "\t>>>>> yyLoop(A)?\n"; continue 2; //continue yyLoop; } if (($yyN = $GLOBALS[$this->yyGlobalName]['yyGindex'][$yyM]) != 0 && ($yyN += $this->yyState) >= 0 && $yyN < $yyTableCount && $GLOBALS[$this->yyGlobalName]['yyCheck'][$yyN] == $this->yyState) { //if ($this->debug) echo "\tyyState: using yyTable\n"; $this->yyState = $GLOBALS[$this->yyGlobalName]['yyTable'][$yyN]; } else { //if ($this->debug) echo "\tyyState: using yyDgoto\n"; $this->yyState = $GLOBALS[$this->yyGlobalName]['yyDgoto'][$yyM]; } //if ($this->debug) echo "\t>>>>> yyLoop(B)?\n"; continue 2;//continue yyLoop; } } } } function _3($yyTop) { // line 248 "Parser.jay" { $func = &PintCompiler_Generator::getFunction(); $func->statements[] = $this->yyVals[0+$yyTop]; } } function _6($yyTop) { // line 258 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _7($yyTop) { // line 259 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _8($yyTop) { // line 260 "Parser.jay" { $this->yyVal = array(); } } function _9($yyTop) { // line 265 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _10($yyTop) { // line 266 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _11($yyTop) { // line 267 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _12($yyTop) { // line 272 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _13($yyTop) { // line 277 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _14($yyTop) { // line 279 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('If',array( 'condition' =>$this->yyVals[-4+$yyTop], 'true' => is_array($this->yyVals[-2+$yyTop]) ? $this->yyVals[-2+$yyTop] : array($this->yyVals[-2+$yyTop]), 'false' => $this->yyVals[0+$yyTop], 'elseif' => $this->yyVals[-1+$yyTop] )); } } function _15($yyTop) { // line 290 "Parser.jay" { $this->yyVal =PintCompiler_Generator::nodeFactory('If',array( 'condition' => $this->yyVals[-7+$yyTop], 'true ' => $this->yyVals[-4+$yyTop], 'false' => $this->yyVals[-2+$yyTop], 'elseif' => $this->yyVals[-3+$yyTop] )); } } function _16($yyTop) { // line 299 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('while',array( 'condition' => $this->yyVals[-2+$yyTop], 'statements' => $this->yyVals[0+$yyTop] )); } } function _17($yyTop) { // line 306 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('DoWhile',array( 'condition' => $this->yyVals[-2+$yyTop], 'statements' => array($this->yyVals[-5+$yyTop]) )); } } function _18($yyTop) { // line 313 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('For',array( 'initializer' => $this->yyVals[-6+$yyTop], /* * probalby needs more work!*/ 'condition' => $this->yyVals[-4+$yyTop], /* * probalby needs more work!*/ 'iterator' => $this->yyVals[-2+$yyTop], 'statements' => $this->yyVals[0+$yyTop], )); /*echo "RETURNING FOR STATMENT?";*/ } } function _19($yyTop) { // line 324 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Switch',array( 'value' => $this->yyVals[-2+$yyTop], 'cases' => $this->yyVals[0+$yyTop], )); } } function _20($yyTop) { // line 331 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Break'); } } function _21($yyTop) { // line 337 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Break',array( 'value' => $this->yyVals[-1+$yyTop] )); } } function _22($yyTop) { // line 343 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Continue'); } } function _23($yyTop) { // line 348 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Continue',array( 'value' => $this->yyVals[-1+$yyTop] )); } } function _24($yyTop) { // line 355 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Return',array( 'value' => PintCompiler_Generator::nodeFactory('LiteralBoolean', array( 'value' => false )) )); } } function _25($yyTop) { // line 365 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Return',array( 'value' => $this->yyVals[-1+$yyTop] )); } } function _26($yyTop) { // line 371 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Return',array( 'value' => $this->yyVals[-1+$yyTop] )); } } function _27($yyTop) { // line 379 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Global',array( 'value' => $this->yyVals[-1+$yyTop] )); } } function _28($yyTop) { // line 386 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Static',array( 'value' => $this->yyVals[-1+$yyTop] )); } } function _29($yyTop) { // line 392 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Echo',array( 'args' => $this->yyVals[-1+$yyTop] )); } } function _30($yyTop) { // line 401 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Echo',array( 'args' => $this->yyVals[0+$yyTop] )); } } function _31($yyTop) { // line 407 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _32($yyTop) { // line 409 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Use',array( 'args' => $this->yyVals[-1+$yyTop] )); } } function _33($yyTop) { // line 415 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Unset',array( 'args' => $this->yyVals[-2+$yyTop] )); } } function _34($yyTop) { // line 421 "Parser.jay" { $args = array(); $args['array'] = $this->yyVals[-5+$yyTop]; if ($this->yyVals[-2+$yyTop] === null) { $args['key'] = false; $args['value'] = $this->yyVals[-3+$yyTop]; } else { $args['key'] = $this->yyVals[-3+$yyTop]; $args['value'] = $this->yyVals[-2+$yyTop]; } $args['statements'] = $this->yyVals[0+$yyTop]; $this->yyVal = PintCompiler_Generator::nodeFactory('Foreach',$args); } } function _35($yyTop) { // line 438 "Parser.jay" { $args = array(); $args['array'] = $this->yyVals[-5+$yyTop]; if ($this->yyVals[-2+$yyTop] === null) { $args['key'] = false; $args['value'] = $this->yyVals[-3+$yyTop]; } else { $args['key'] = $this->yyVals[-3+$yyTop]; $args['value'] = $this->yyVals[-2+$yyTop]; } $args['statements'] = $this->yyVals[0+$yyTop]; $this->yyVal = PintCompiler_Generator::nodeFactory('Foreach',$args); } } function _36($yyTop) { // line 454 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Declare',array( 'directive'=>$this->yyVals[-2+$yyTop], 'statements' => $this->yyVals[0+$yyTop] )); } } function _37($yyTop) { // line 462 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Noop'); } } function _38($yyTop) { // line 468 "Parser.jay" { $catches = array_unshift($this->yyVals[0+$yyTop], PintCompiler_Generator::nodeFactory('Catch',array( 'type' => $this->yyVals[-6+$yyTop], 'var' => $this->yyVals[-5+$yyTop], 'statements' => $this->yyVals[-2+$yyTop] ))); $this->yyVal = PintCompiler_Generator::nodeFactory('Try',array( 'try' => $this->yyVals[-10+$yyTop], 'catches' => $this->yyVals[0+$yyTop] )); } } function _39($yyTop) { // line 484 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Throw',array( 'expr' => $this->yyVals[-1+$yyTop], )); } } function _40($yyTop) { // line 498 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _41($yyTop) { // line 502 "Parser.jay" { $this->yyVal = array(); } } function _42($yyTop) { // line 509 "Parser.jay" { $this->yyVal = $this->yyVals[-8+$yyTop]; $this->yyVal[] = PintCompiler_Generator::nodeFactory('Catch',array( 'type' => $this->yyVals[-5+$yyTop], 'var' => $this->yyVals[-4+$yyTop], 'statements' => $this->yyVals[-1+$yyTop] )); } } function _43($yyTop) { // line 520 "Parser.jay" { $this->yyVal = array( PintCompiler_Generator::nodeFactory('Catch',array( 'type' => $this->yyVals[-5+$yyTop], 'var' => $this->yyVals[-4+$yyTop], 'statements' => $this->yyVals[-1+$yyTop] )) ); } } function _44($yyTop) { // line 536 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _45($yyTop) { // line 540 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _46($yyTop) { // line 547 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _47($yyTop) { // line 551 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _48($yyTop) { // line 552 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _51($yyTop) { // line 567 "Parser.jay" { $this->yyVal = false; } } function _52($yyTop) { // line 570 "Parser.jay" { $this->yyVal = true; } } function _53($yyTop) { // line 578 "Parser.jay" { $f = PintCompiler_Generator::nodeFactory('Function',array( 'name' => $this->yyVals[-6+$yyTop], 'type' => $this->yyVals[-8+$yyTop], 'returnByReference' => $this->yyVals[-7+$yyTop], 'args' => $this->yyVals[-4+$yyTop], 'statements' => $this->yyVals[-1+$yyTop], )); PintCompiler_Generator::addFunction($f); } } function _54($yyTop) { // line 596 "Parser.jay" { $c = PintCompiler_Generator::nodeFactory('Class',array( 'modifiers' => $this->yyVals[-4+$yyTop], 'name' => $this->yyVals[-3+$yyTop], 'extends' => $this->yyVals[-2+$yyTop], 'implements' => $this->yyVals[-1+$yyTop], 'members' => array() )); PintCompiler_Generator::addClass($c); } } function _55($yyTop) { // line 608 "Parser.jay" { /* needs more thought?*/ $c = &PintCompiler_Generator::getActiveClass(); $c->members = $this->yyVals[-1+$yyTop]; } } function _56($yyTop) { // line 619 "Parser.jay" { $this->yyVal = null; } } function _57($yyTop) { // line 620 "Parser.jay" { $this->yyVal = 'abstract'; } } function _58($yyTop) { // line 621 "Parser.jay" { $this->yyVal = 'final'; } } function _59($yyTop) { // line 622 "Parser.jay" { $this->yyVal = 'interface'; } } function _60($yyTop) { // line 626 "Parser.jay" { $this->yyVal = null; } } function _61($yyTop) { // line 627 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _62($yyTop) { // line 631 "Parser.jay" { $this->yyVal = null; } } function _63($yyTop) { // line 632 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _64($yyTop) { // line 636 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _65($yyTop) { // line 637 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; $this->yyVal[] = $this->yyVals[-1+$yyTop]; } } function _66($yyTop) { // line 641 "Parser.jay" { $this->yyVal = null; } } function _67($yyTop) { // line 642 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _68($yyTop) { // line 646 "Parser.jay" { $this->yyVal = is_array($this->yyVals[0+$yyTop]) ? $this->yyVals[0+$yyTop] : array($this->yyVals[0+$yyTop]); } } function _69($yyTop) { // line 647 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; } } function _70($yyTop) { // line 652 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _71($yyTop) { // line 653 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; } } function _72($yyTop) { // line 658 "Parser.jay" {$this->yyVal = array($this->yyVals[0+$yyTop]); } } function _73($yyTop) { // line 659 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; } } function _76($yyTop) { // line 670 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; } } function _78($yyTop) { // line 672 "Parser.jay" { $this->yyVal = $this->yyVals[-3+$yyTop]; } } function _80($yyTop) { // line 683 "Parser.jay" { $this->yyVal = array(); } } function _81($yyTop) { // line 687 "Parser.jay" { $this->yyVal = $this->yyVals[-4+$yyTop] ? $this->yyVals[-4+$yyTop] : array(); $this->yyVal[] = PintCompiler_Generator::nodeFactory('Case',array( 'condition' => $this->yyVals[-2+$yyTop], 'statements' => $this->yyVals[0+$yyTop], )); } } function _82($yyTop) { // line 698 "Parser.jay" { $this->yyVal = $this->yyVals[-3+$yyTop] ? $this->yyVals[-3+$yyTop] : array(); $this->yyVal[] = PintCompiler_Generator::nodeFactory('CaseDefault',array( 'statements' => $this->yyVals[0+$yyTop], )); } } function _85($yyTop) { // line 717 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _86($yyTop) { // line 718 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; } } function _87($yyTop) { // line 723 "Parser.jay" { $this->yyVal = array(); } } function _88($yyTop) { // line 727 "Parser.jay" { $this->yyVal = $this->yyVals[-5+$yyTop] ? $this->yyVals[-5+$yyTop] : array(); $this->yyVal[] = PintCompiler_Generator::nodeFactory('ElseIf',array( 'condition' => $this->yyVals[-2+$yyTop], 'true' => array($this->yyVals[0+$yyTop]) )); } } function _89($yyTop) { // line 740 "Parser.jay" { $this->yyVal = array(); } } function _90($yyTop) { // line 742 "Parser.jay" { $this->yyVal = $this->yyVals[-6+$yyTop] ? $this->yyVals[-6+$yyTop] : array(); $this->yyVal[] = PintCompiler_Generator::nodeFactory('ElseIf',array( 'condition' => $this->yyVals[-3+$yyTop], 'true' => $this->yyVals[0+$yyTop] )); } } function _91($yyTop) { // line 755 "Parser.jay" { $this->yyVal = array(); } } function _92($yyTop) { // line 756 "Parser.jay" { $this->yyVal = array($this->yyVals[-1+$yyTop]); } } function _93($yyTop) { // line 761 "Parser.jay" { $this->yyVal = array(); } } function _94($yyTop) { // line 763 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Else',array( 'statements' => $this->yyVals[0+$yyTop] )); } } function _95($yyTop) { // line 772 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _96($yyTop) { // line 773 "Parser.jay" { $this->yyVal = array(); } } function _97($yyTop) { // line 778 "Parser.jay" { $this->yyVal=$this->yyVals[-2+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _98($yyTop) { // line 779 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _99($yyTop) { // line 785 "Parser.jay" { /*echo "\n\n:::got pararmenter ". $1."::".$2."\n";*/ $this->yyVal = PintCompiler_Generator::nodeFactory('VariableAccess',array( 'name' => $this->yyVals[0+$yyTop], 'type' => $this->yyVals[-1+$yyTop], )); } } function _100($yyTop) { // line 795 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('VariableAccess',array( 'name' => $this->yyVals[0+$yyTop], 'type' => $this->yyVals[-2+$yyTop], 'byRef' => true, )); } } function _101($yyTop) { // line 804 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('VariableAccess',array( 'name' => $this->yyVals[-2+$yyTop], 'type' => $this->yyVals[-4+$yyTop], 'byRef' => true, 'default' => $this->yyVals[0+$yyTop] )); } } function _102($yyTop) { // line 814 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('VariableAccess',array( 'name' => $this->yyVals[0+$yyTop], 'type' => $this->yyVals[-1+$yyTop], 'const' => true )); } } function _103($yyTop) { // line 823 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('VariableAccess',array( 'name' => $this->yyVals[-2+$yyTop], 'type' => $this->yyVals[-3+$yyTop], 'default' => $this->yyVals[0+$yyTop] )); } } function _104($yyTop) { // line 836 "Parser.jay" { $this->yyVal = null; } } function _105($yyTop) { // line 837 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _106($yyTop) { // line 842 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _107($yyTop) { // line 843 "Parser.jay" { $this->yyVal = array(); } } function _108($yyTop) { // line 849 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _109($yyTop) { // line 850 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _110($yyTop) { // line 853 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _111($yyTop) { // line 854 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _112($yyTop) { // line 855 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal->byRef = true; /* is this illegal? */ } } function _122($yyTop) { // line 881 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _123($yyTop) { // line 882 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _124($yyTop) { // line 883 "Parser.jay" { $this->yyVal = null; } } function _125($yyTop) { // line 889 "Parser.jay" { $c = &PintCompiler_Generator::getActiveClass(); $this->yyVals[-1+$yyTop]->modifiers = $this->yyVals[-2+$yyTop]; $c->members[] = $this->yyVals[-1+$yyTop]; } } function _126($yyTop) { // line 895 "Parser.jay" { $c = &PintCompiler_Generator::getActiveClass(); $c->members[] = $this->yyVals[-1+$yyTop]; } } function _127($yyTop) { // line 900 "Parser.jay" { $c = PintCompiler_Generator::getActiveClass(); $f = PintCompiler_Generator::nodeFactory('Function',array( 'name' => $this->yyVals[-4+$yyTop], 'returnByReference' => $this->yyVals[-5+$yyTop], 'args' => $this->yyVals[-2+$yyTop], 'statements' => $this->yyVals[0+$yyTop], )); PintCompiler_Generator::addFunction($f); } } function _128($yyTop) { // line 917 "Parser.jay" { $this->yyVal = null; } } function _129($yyTop) { // line 918 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _130($yyTop) { // line 922 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _131($yyTop) { // line 923 "Parser.jay" { $this->yyVal = array('public'); } } function _132($yyTop) { // line 927 "Parser.jay" { $this->yyVal = array('public'); } } function _133($yyTop) { // line 928 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _134($yyTop) { // line 932 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]);} } function _135($yyTop) { // line 934 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _136($yyTop) { // line 941 "Parser.jay" { $this->yyVal = 'public'; } } function _137($yyTop) { // line 942 "Parser.jay" { $this->yyVal = 'protected'; } } function _138($yyTop) { // line 944 "Parser.jay" { $this->yyVal = 'private'; } } function _139($yyTop) { // line 945 "Parser.jay" { $this->yyVal = 'static'; } } function _140($yyTop) { // line 946 "Parser.jay" { $this->yyVal = 'abstract'; } } function _141($yyTop) { // line 947 "Parser.jay" { $this->yyVal = 'final'; } } function _142($yyTop) { // line 952 "Parser.jay" { $v = PintCompiler_Generator::nodeFactory('Member',array( 'name' => $this->yyVals[0+$yyTop] )); $this->yyVal = $this->yyVals[-2+$yyTop]; $this->yyVal[] = $v; } } function _143($yyTop) { // line 962 "Parser.jay" { $v = PintCompiler_Generator::nodeFactory('Member',array( 'name' => $this->yyVals[-2+$yyTop], 'default' => $this->yyVals[0+$yyTop], )); $this->yyVal = $this->yyVals[-4+$yyTop]; $this->yyVal[] = $v; } } function _144($yyTop) { // line 972 "Parser.jay" { $v = PintCompiler_Generator::nodeFactory('Member',array( 'name' => $this->yyVals[0+$yyTop], )); $this->yyVal = array($v);; } } function _145($yyTop) { // line 979 "Parser.jay" { $v = PintCompiler_Generator::nodeFactory('Member',array( 'name' => $this->yyVals[-2+$yyTop], 'default' => $this->yyVals[0+$yyTop], )); $this->yyVal = array($v); } } function _148($yyTop) { // line 995 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _149($yyTop) { // line 996 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _150($yyTop) { // line 1002 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _151($yyTop) { // line 1003 "Parser.jay" { $this->yyVal = array(); } } function _152($yyTop) { // line 1007 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _153($yyTop) { // line 1008 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _154($yyTop) { // line 1016 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _155($yyTop) { // line 1017 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _156($yyTop) { // line 1018 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _157($yyTop) { // line 1019 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssignString'); } } function _158($yyTop) { // line 1020 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _159($yyTop) { // line 1021 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _160($yyTop) { // line 1022 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _161($yyTop) { // line 1023 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _162($yyTop) { // line 1024 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _163($yyTop) { // line 1025 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryAssign',array('operator'=>$this->yyVals[0+$yyTop])); } } function _165($yyTop) { // line 1029 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _166($yyTop) { // line 1030 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _167($yyTop) { // line 1031 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _168($yyTop) { // line 1032 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _169($yyTop) { // line 1033 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _170($yyTop) { // line 1034 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _171($yyTop) { // line 1035 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _172($yyTop) { // line 1036 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _173($yyTop) { // line 1037 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryString'); } } function _174($yyTop) { // line 1038 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _175($yyTop) { // line 1039 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _176($yyTop) { // line 1040 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _177($yyTop) { // line 1041 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _178($yyTop) { // line 1042 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _179($yyTop) { // line 1043 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _180($yyTop) { // line 1044 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _181($yyTop) { // line 1045 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _182($yyTop) { // line 1046 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _183($yyTop) { // line 1047 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _184($yyTop) { // line 1048 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _185($yyTop) { // line 1049 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _186($yyTop) { // line 1050 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _187($yyTop) { // line 1051 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _188($yyTop) { // line 1052 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Binary',array('operator'=>$this->yyVals[0+$yyTop])); } } function _189($yyTop) { // line 1060 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('ListAssign',array( 'left'=>$this->yyVals[-3+$yyTop], 'right' => $this->yyVals[0+$yyTop] )); } } function _190($yyTop) { // line 1068 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Assign',array( 'left'=>$this->yyVals[-2+$yyTop], 'right' => $this->yyVals[0+$yyTop] )); } } function _191($yyTop) { // line 1076 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Assign',array( 'left' => $this->yyVals[-3+$yyTop], 'right' => $this->yyVals[-1+$yyTop], 'byRef' => true, )); } } function _192($yyTop) { // line 1084 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('CallConstructor',array( 'name' => $this->yyVals[-4+$yyTop], 'args' => $this->yyVals[-3+$yyTop], 'byRef' => true, )); } } function _193($yyTop) { // line 1095 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('CallConstructor',array( 'name' => $this->yyVals[-1+$yyTop], 'args' => $this->yyVals[0+$yyTop], 'byRef' => false, )); } } function _194($yyTop) { // line 1105 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal->left = $this->yyVals[-2+$yyTop]; $this->yyVal->right = $this->yyVals[0+$yyTop]; } } function _195($yyTop) { // line 1111 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal->left = $this->yyVals[-2+$yyTop]; $this->yyVal->right = $this->yyVals[0+$yyTop]; } } function _196($yyTop) { // line 1118 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('UnaryMutator',array( 'operator' => $this->yyVals[0+$yyTop], 'left' => $this->yyVals[-1+$yyTop] )); } } function _197($yyTop) { // line 1125 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('UnaryMutator',array( 'operator' => $this->yyVals[-1+$yyTop], 'right' => $this->yyVals[0+$yyTop] )); } } function _198($yyTop) { // line 1133 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('UnaryMutator',array( 'operator' => $this->yyVals[0+$yyTop], 'left' => $this->yyVals[-1+$yyTop] )); } } function _199($yyTop) { // line 1141 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('UnaryMutator',array( 'operator' => $this->yyVals[-1+$yyTop], 'right' => $this->yyVals[0+$yyTop] )); } } function _200($yyTop) { // line 1149 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Unary',array( 'operator' => $this->yyVals[-1+$yyTop], 'right' => $this->yyVals[0+$yyTop] )); } } function _201($yyTop) { // line 1157 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Unary',array( 'operator' => $this->yyVals[-1+$yyTop], 'right' => $this->yyVals[0+$yyTop] )); } } function _202($yyTop) { // line 1165 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Unary',array( 'operator' => $this->yyVals[-1+$yyTop], 'right' => $this->yyVals[0+$yyTop] )); } } function _203($yyTop) { // line 1172 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Unary',array( 'operator' => $this->yyVals[-1+$yyTop], 'right' => $this->yyVals[0+$yyTop] )); } } function _204($yyTop) { // line 1179 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('InstanceOf',array( 'name' => $this->yyVals[0+$yyTop] )); } } function _205($yyTop) { // line 1186 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('ExpressionGroup',array( 'expression' => $this->yyVals[-1+$yyTop] )); } } function _206($yyTop) { // line 1192 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('ShortIf',array( 'condition' => $this->yyVals[-4+$yyTop], 'true' => $this->yyVals[-2+$yyTop], 'false' => $this->yyVals[0+$yyTop] )); } } function _207($yyTop) { // line 1199 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _208($yyTop) { // line 1202 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Cast',array( 'expression' => $this->yyVals[0+$yyTop], 'type' => 'int', )); } } function _209($yyTop) { // line 1209 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Cast',array( 'expression' => $this->yyVals[0+$yyTop], 'type' => 'double', )); } } function _210($yyTop) { // line 1216 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Cast',array( 'expression' => $this->yyVals[0+$yyTop], 'type' => 'string', )); } } function _211($yyTop) { // line 1223 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Cast',array( 'expression' => $this->yyVals[0+$yyTop], 'type' => 'array', )); } } function _212($yyTop) { // line 1230 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Cast',array( 'expression' => $this->yyVals[0+$yyTop], 'type' => 'object', )); } } function _213($yyTop) { // line 1237 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Cast',array( 'expression' => $this->yyVals[0+$yyTop], 'type' => 'bool', )); } } function _214($yyTop) { // line 1244 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Cast',array( 'expression' => $this->yyVals[0+$yyTop], 'type' => 'unset', )); } } function _215($yyTop) { // line 1252 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Die',array( 'expression' => $this->yyVals[0+$yyTop], )); } } function _216($yyTop) { // line 1258 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Silence',array( 'expression' => $this->yyVals[0+$yyTop], )); } } function _217($yyTop) { // line 1263 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _218($yyTop) { // line 1265 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('ArrayCreation',array( 'elements' => $this->yyVals[-1+$yyTop] )); } } function _219($yyTop) { // line 1271 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Exec',array( 'args' => $this->yyVals[-1+$yyTop] )); } } function _220($yyTop) { // line 1277 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('Echo',array( 'args' => $this->yyVals[0+$yyTop] )); } } function _221($yyTop) { // line 1288 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('CallFunction',array( 'name' => $this->yyVals[-3+$yyTop], 'args' => $this->yyVals[-1+$yyTop], )); } } function _222($yyTop) { // line 1295 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('CallFunction',array( 'name' => $this->yyVals[-3+$yyTop], 'args' => $this->yyVals[-1+$yyTop], )); } } function _223($yyTop) { // line 1303 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('CallFunction',array( 'name' => $this->yyVals[-3+$yyTop], 'args' => $this->yyVals[-1+$yyTop], )); } } function _225($yyTop) { // line 1318 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _226($yyTop) { // line 1319 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _227($yyTop) { // line 1325 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('ObjectRef',array( 'object' => $this->yyVals[-3+$yyTop], 'property' => $this->yyVals[-1+$yyTop], 'callAfter' => $this->yyVals[0+$yyTop] )); } } function _228($yyTop) { // line 1336 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _229($yyTop) { // line 1342 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _230($yyTop) { // line 1348 "Parser.jay" { $this->yyVal = array(); } } function _231($yyTop) { // line 1354 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; /*echo "ACCESS object property?"; print_R($1);*/ } } function _232($yyTop) { // line 1361 "Parser.jay" { $this->yyVal = null; } } function _233($yyTop) { // line 1362 "Parser.jay" { $this->yyVal = null; } } function _234($yyTop) { // line 1363 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _235($yyTop) { // line 1368 "Parser.jay" { $this->yyVal = null; } } function _236($yyTop) { // line 1369 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _237($yyTop) { // line 1374 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralLong',array('value'=>$this->yyVals[0+$yyTop])); } } function _238($yyTop) { // line 1375 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralFloat',array('value'=>$this->yyVals[0+$yyTop])); } } function _239($yyTop) { // line 1376 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop])); } } function _240($yyTop) { // line 1377 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralLong',array('value'=>0)); /* FIXME */ } } function _241($yyTop) { // line 1378 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>'filename')); /* FIXME */ } } function _242($yyTop) { // line 1379 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>'classname')); /* FIXME */ } } function _243($yyTop) { // line 1380 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>'funcname')); /* FIXME */ } } function _246($yyTop) { // line 1391 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _247($yyTop) { // line 1394 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[-1+$yyTop]); } } function _248($yyTop) { // line 1395 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-2+$yyTop] xor $this->yyVals[0+$yyTop]); } } function _249($yyTop) { // line 1396 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _250($yyTop) { // line 1397 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _251($yyTop) { // line 1398 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _252($yyTop) { // line 1399 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _253($yyTop) { // line 1400 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _254($yyTop) { // line 1401 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _255($yyTop) { // line 1402 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _256($yyTop) { // line 1403 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _257($yyTop) { // line 1404 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[-2+$yyTop],$this->yyVals[0+$yyTop]); } } function _258($yyTop) { // line 1405 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[0+$yyTop]); } } function _259($yyTop) { // line 1407 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; } } function _260($yyTop) { // line 1415 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _261($yyTop) { // line 1416 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _262($yyTop) { // line 1417 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[0+$yyTop]); } } function _263($yyTop) { // line 1418 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[0+$yyTop]); } } function _264($yyTop) { // line 1419 "Parser.jay" { echo "UNSUPPORTED const_scalar T_ARRAY";exit; } } function _265($yyTop) { // line 1420 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _266($yyTop) { // line 1424 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _267($yyTop) { // line 1425 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _268($yyTop) { // line 1426 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[0+$yyTop]); } } function _269($yyTop) { // line 1427 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeScalarFactory($this->yyVals[-1+$yyTop],$this->yyVals[0+$yyTop]); } } function _270($yyTop) { // line 1428 "Parser.jay" { echo "UNSUPPORTED const_scalar T_ARRAY";exit; } } function _271($yyTop) { // line 1429 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _272($yyTop) { // line 1433 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop] . '::' . $this->yyVals[0+$yyTop]; } } function _273($yyTop) { // line 1437 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _274($yyTop) { // line 1438 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _275($yyTop) { // line 1439 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _276($yyTop) { // line 1440 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _277($yyTop) { // line 1442 "Parser.jay" { $args = array(); foreach($this->yyVals[-1+$yyTop] as $arg) { $arg->quote = '"'; $args[] = $arg; } $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryString',array('args' => $args)); } } function _278($yyTop) { // line 1452 "Parser.jay" { $args = array(); foreach($this->yyVals[-1+$yyTop] as $arg) { $arg->quote = "'"; $args[] = $arg; } $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryString',array('args' => $args)); } } function _279($yyTop) { // line 1462 "Parser.jay" { $args = array(); foreach($this->yyVals[-1+$yyTop] as $arg) { $arg->quote = $this->yyVals[-2+$yyTop]; $args[] = $arg; } $this->yyVal = PintCompiler_Generator::nodeFactory('BinaryString',array('args' => $args)); } } function _280($yyTop) { // line 1475 "Parser.jay" { $this->yyVal = null; } } function _281($yyTop) { // line 1476 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _282($yyTop) { // line 1481 "Parser.jay" { $this->yyVal = null; } } function _284($yyTop) { // line 1487 "Parser.jay" { echo "NOT SUPPORTED YET: non_empty_static_array_pair_list";exit; } } function _285($yyTop) { // line 1489 "Parser.jay" { echo "NOT SUPPORTED YET: non_empty_static_array_pair_list";exit; } } function _286($yyTop) { // line 1491 "Parser.jay" { echo "NOT SUPPORTED YET: non_empty_static_array_pair_list";exit; } } function _287($yyTop) { // line 1493 "Parser.jay" { echo "NOT SUPPORTED YET: non_empty_static_array_pair_list";exit; } } function _288($yyTop) { // line 1498 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _289($yyTop) { // line 1499 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _290($yyTop) { // line 1508 "Parser.jay" { /* $something->something()->something....*/ if ($this->yyVals[-1+$yyTop] === false) { $this->yyVal = PintCompiler_Generator::nodeFactory('MemberAccess', array( 'name' => $this->yyVals[-2+$yyTop], 'object'=>$this->yyVals[-4+$yyTop], 'extra' =>$this->yyVals[0+$yyTop] )); return; } $this->yyVal = PintCompiler_Generator::nodeFactory('MemberAccess', array( 'args' => $this->yyVals[-1+$yyTop], 'name' => $this->yyVals[-2+$yyTop], 'object'=>$this->yyVals[-4+$yyTop], 'extra' =>$this->yyVals[0+$yyTop] )); } } function _291($yyTop) { // line 1530 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; /*echo "BV _WITH FUNC CALLS";print_r($$); */ } } function _292($yyTop) { // line 1536 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _293($yyTop) { // line 1537 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _294($yyTop) { // line 1538 "Parser.jay" { $this->yyVal = false; } } function _295($yyTop) { // line 1544 "Parser.jay" { if ($this->yyVals[0+$yyTop] === false) { $this->yyVal = PintCompiler_Generator::nodeFactory('MemberAccess', array( 'name' => $this->yyVals[-1+$yyTop], )); return; } $this->yyVal = PintCompiler_Generator::nodeFactory('MemberAccess', array( 'args' => $this->yyVals[0+$yyTop], 'name' => $this->yyVals[-1+$yyTop], )); } } function _296($yyTop) { // line 1560 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _297($yyTop) { // line 1563 "Parser.jay" { $this->yyVal = false; } } function _298($yyTop) { // line 1567 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _299($yyTop) { // line 1569 "Parser.jay" { echo "NOT SUPPORTED YET: variable_without_objects";exit; } } function _300($yyTop) { // line 1574 "Parser.jay" { echo "NOT SUPPORTED YET:static_member";exit; } } function _301($yyTop) { // line 1580 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _302($yyTop) { // line 1581 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _303($yyTop) { // line 1586 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _304($yyTop) { // line 1588 "Parser.jay" { echo "NOT SUPPORTED YET: base_variable";exit; } } function _305($yyTop) { // line 1589 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop];} } function _306($yyTop) { // line 1595 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('ElementAccess', array( 'parent' => $this->yyVals[-3+$yyTop], 'element' => $this->yyVals[-1+$yyTop], )); } } function _307($yyTop) { // line 1601 "Parser.jay" { echo "NOT SUPPORTED YET: reference_variable";exit; } } function _308($yyTop) { // line 1602 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _309($yyTop) { // line 1608 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('VariableAccess', array( 'name' => $this->yyVals[0+$yyTop], )); } } function _310($yyTop) { // line 1615 "Parser.jay" PintCompiler_Generator::nodeFactory('VariableAccessIndirect', array( 'expression' => $this->yyVals[-2+$yyTop], )); } function _311($yyTop) { // line 1622 "Parser.jay" { $this->yyVal = null; } } function _312($yyTop) { // line 1623 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _315($yyTop) { // line 1633 "Parser.jay" { echo "NOT SUPPORTED YET: object_dim_list";exit; } } function _316($yyTop) { // line 1634 "Parser.jay" { echo "NOT SUPPORTED YET: object_dim_list";exit; } } function _317($yyTop) { // line 1635 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _318($yyTop) { // line 1639 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _319($yyTop) { // line 1640 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _327($yyTop) { // line 1662 "Parser.jay" { $this->yyVal = array(); } } function _328($yyTop) { // line 1664 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _329($yyTop) { // line 1670 "Parser.jay" { $this->yyVal = $this->yyVals[-4+$yyTop]; $this->yyVal[$this->yyVals[-2+$yyTop]] = $this->yyVals[0+$yyTop]; } } function _330($yyTop) { // line 1671 "Parser.jay" { $this->yyVal = $this->yyVals[-2+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _331($yyTop) { // line 1672 "Parser.jay" { $this->yyVal = array($this->yyVals[-2+$yyTop] => $this->yyVals[0+$yyTop]); } } function _332($yyTop) { // line 1673 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _333($yyTop) { // line 1674 "Parser.jay" { $this->yyVal = $this->yyVals[-5+$yyTop] ; $this->yyVals[0+$yyTop]->byRef = true; $this->yyVal[$this->yyVals[-3+$yyTop]] = $this->yyVals[0+$yyTop]; } } function _334($yyTop) { // line 1675 "Parser.jay" { $this->yyVal = $this->yyVals[-3+$yyTop] ; $this->yyVals[0+$yyTop]->byRef = true; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _335($yyTop) { // line 1676 "Parser.jay" { $this->yyVals[0+$yyTop]->byRef = true; $this->yyVal = array($this->yyVals[-3+$yyTop]=> $this->yyVals[0+$yyTop]); } } function _336($yyTop) { // line 1677 "Parser.jay" { $this->yyVals[-1+$yyTop]->byRef = true; $this->yyVal = array($this->yyVals[-1+$yyTop]); } } function _337($yyTop) { // line 1681 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; $this->yyVal[] = $this->yyVals[0+$yyTop]; } } function _338($yyTop) { // line 1682 "Parser.jay" { $this->yyVal = array($this->yyVals[0+$yyTop]); } } function _339($yyTop) { // line 1683 "Parser.jay" { $this->yyVal = array(); } } function _340($yyTop) { // line 1687 "Parser.jay" { $this->yyVal = $this->yyVals[0+$yyTop]; } } function _341($yyTop) { // line 1688 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop]));} } function _342($yyTop) { // line 1689 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop])); } } function _343($yyTop) { // line 1690 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop]));} } function _344($yyTop) { // line 1691 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop]));} } function _345($yyTop) { // line 1692 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop]));} } function _346($yyTop) { // line 1693 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop])); } } function _347($yyTop) { // line 1694 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop])); } } function _348($yyTop) { // line 1695 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop])); } } function _349($yyTop) { // line 1696 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop])); } } function _350($yyTop) { // line 1697 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop])); } } function _351($yyTop) { // line 1704 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('VariableAccess',array('name'=>$this->yyVals[0+$yyTop])); } } function _352($yyTop) { // line 1709 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('ElementAccess', array( 'parent'=>$this->yyVals[-3+$yyTop], 'element' => $this->yyVals[-1+$yyTop] )); } } function _353($yyTop) { // line 1718 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('MemberAccess', array( 'property'=>$this->yyVals[-2+$yyTop], 'variable' => $this->yyVals[0+$yyTop] )); } } function _354($yyTop) { // line 1727 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _355($yyTop) { // line 1728 "Parser.jay" { echo "NOT SUPPORTED YET: encaps_var";exit; } } function _356($yyTop) { // line 1729 "Parser.jay" { $this->yyVal = $this->yyVals[-1+$yyTop]; } } function _357($yyTop) { // line 1734 "Parser.jay" { $this->yyVal = new PHPSharp_Node_LiteralString($this->yyVals[0+$yyTop]); } } function _358($yyTop) { // line 1735 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('LiteralString',array('value'=>$this->yyVals[0+$yyTop])); } } function _359($yyTop) { // line 1736 "Parser.jay" { $this->yyVal = PintCompiler_Generator::nodeFactory('VariableAccess',array('name'=>$this->yyVals[0+$yyTop]));} } function _360($yyTop) { // line 1741 "Parser.jay" { echo "NOT SUPPORTED YET: interal functions";exit; } } function _361($yyTop) { // line 1742 "Parser.jay" { echo "NOT SUPPORTED YET: interal functions";exit; } } function _362($yyTop) { // line 1743 "Parser.jay" { echo "NOT SUPPORTED YET: interal functions";exit; } } function _363($yyTop) { // line 1744 "Parser.jay" { echo "NOT SUPPORTED YET: interal functions";exit; } } function _364($yyTop) { // line 1745 "Parser.jay" { echo "NOT SUPPORTED YET: interal functions";exit; } } function _365($yyTop) { // line 1746 "Parser.jay" { echo "NOT SUPPORTED YET: interal functions";exit; } } function _366($yyTop) { // line 1747 "Parser.jay" { echo "NOT SUPPORTED YET: interal functions";exit; } } // line 2433 "-" // line 1761 "Parser.jay" } // line 2437 "-" $GLOBALS['_PINTCOMPILER_PARSER']['yyLhs'] = array( -1, 0, 0, 1, 1, 1, 5, 5, 5, 6, 6, 6, 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 29, 29, 30, 30, 23, 23, 31, 22, 22, 3, 4, 34, 34, 32, 41, 33, 37, 37, 37, 37, 38, 38, 39, 39, 42, 42, 24, 24, 15, 15, 25, 25, 27, 27, 26, 26, 16, 16, 16, 16, 44, 44, 44, 45, 45, 13, 13, 9, 9, 11, 11, 10, 10, 12, 12, 36, 36, 46, 46, 47, 47, 47, 47, 47, 35, 35, 48, 48, 49, 49, 50, 50, 50, 19, 19, 51, 51, 51, 20, 20, 20, 20, 40, 40, 40, 52, 52, 52, 57, 57, 53, 53, 56, 56, 58, 58, 59, 59, 59, 59, 59, 59, 54, 54, 54, 54, 55, 55, 21, 21, 14, 14, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 72, 72, 72, 28, 65, 65, 75, 75, 78, 78, 79, 68, 68, 68, 66, 66, 80, 80, 80, 80, 80, 80, 80, 60, 60, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 81, 81, 81, 81, 81, 81, 43, 43, 43, 43, 43, 43, 84, 69, 69, 69, 69, 69, 69, 69, 83, 83, 86, 86, 85, 85, 85, 85, 8, 8, 18, 18, 89, 89, 89, 90, 88, 88, 74, 74, 93, 87, 87, 76, 76, 76, 91, 91, 91, 95, 95, 94, 94, 77, 77, 96, 96, 96, 97, 97, 92, 92, 64, 64, 98, 98, 98, 70, 70, 99, 99, 99, 99, 99, 99, 99, 99, 71, 71, 71, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 102, 102, 102, 67, 67, 67, 67, 67, 67, 67, 103, 103, 73, ); $GLOBALS['_PINTCOMPILER_PARSER']['yyLen'] = array( 2, 2, 0, 1, 1, 1, 2, 1, 0, 1, 1, 1, 1, 3, 7, 10, 5, 7, 9, 5, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 1, 2, 3, 5, 8, 8, 5, 1, 13, 3, 1, 0, 9, 8, 1, 3, 1, 1, 3, 1, 1, 0, 1, 10, 0, 8, 1, 2, 2, 1, 0, 2, 0, 2, 1, 3, 0, 2, 1, 4, 1, 4, 1, 4, 3, 5, 3, 4, 4, 5, 0, 5, 4, 1, 1, 1, 4, 0, 6, 0, 7, 0, 2, 0, 3, 1, 0, 3, 1, 2, 3, 5, 3, 4, 0, 1, 1, 0, 3, 1, 1, 1, 2, 3, 1, 1, 2, 4, 3, 5, 1, 3, 2, 1, 0, 3, 2, 8, 1, 3, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 5, 1, 3, 5, 4, 3, 1, 1, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 3, 4, 6, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 4, 3, 2, 4, 4, 4, 1, 1, 1, 4, 1, 2, 0, 2, 0, 2, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 1, 1, 2, 2, 4, 1, 1, 1, 2, 2, 4, 1, 3, 1, 1, 1, 1, 3, 3, 3, 0, 2, 0, 1, 5, 3, 3, 1, 1, 1, 5, 1, 2, 1, 0, 3, 3, 0, 1, 2, 3, 1, 1, 1, 2, 1, 4, 4, 1, 1, 5, 0, 1, 1, 1, 4, 4, 1, 1, 3, 1, 2, 3, 1, 1, 4, 0, 0, 2, 5, 3, 3, 1, 6, 4, 4, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 3, 6, 3, 1, 1, 1, 4, 4, 2, 2, 4, 2, 2, 1, 3, 3, ); $GLOBALS['_PINTCOMPILER_PARSER']['yyDefRed'] = array( 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 238, 0, 274, 309, 30, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 59, 0, 0, 242, 243, 240, 241, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 1, 3, 4, 5, 12, 0, 289, 0, 0, 49, 50, 0, 207, 217, 302, 0, 0, 301, 276, 0, 0, 0, 305, 308, 0, 0, 0, 0, 0, 0, 0, 197, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, 204, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 22, 0, 224, 105, 0, 24, 0, 0, 0, 0, 0, 47, 0, 0, 115, 0, 0, 114, 0, 0, 57, 58, 0, 0, 0, 0, 0, 341, 0, 342, 344, 345, 343, 350, 0, 0, 346, 348, 349, 347, 0, 338, 340, 0, 0, 0, 0, 0, 9, 10, 11, 0, 7, 0, 0, 0, 0, 0, 167, 169, 168, 165, 166, 183, 184, 181, 182, 186, 188, 179, 180, 0, 170, 172, 171, 185, 187, 174, 175, 173, 176, 177, 178, 31, 0, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 196, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 109, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 23, 52, 0, 25, 26, 0, 39, 0, 32, 0, 116, 0, 27, 0, 0, 28, 46, 0, 44, 367, 0, 0, 0, 324, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 337, 13, 6, 205, 0, 219, 277, 278, 0, 0, 0, 0, 0, 369, 300, 0, 0, 0, 0, 0, 0, 318, 0, 314, 0, 0, 317, 0, 0, 0, 364, 0, 230, 234, 0, 112, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 113, 0, 0, 0, 0, 121, 266, 271, 0, 0, 0, 0, 360, 361, 0, 0, 0, 336, 0, 218, 0, 328, 353, 357, 359, 358, 0, 0, 354, 356, 0, 0, 0, 191, 0, 61, 0, 0, 222, 223, 0, 0, 0, 0, 0, 306, 307, 236, 0, 0, 87, 108, 0, 0, 85, 16, 0, 0, 0, 0, 74, 0, 0, 72, 36, 0, 0, 19, 0, 0, 117, 0, 0, 268, 269, 0, 45, 33, 368, 0, 322, 0, 0, 0, 0, 0, 352, 0, 310, 0, 0, 64, 0, 54, 319, 0, 0, 0, 293, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 80, 0, 0, 0, 0, 0, 98, 0, 272, 0, 0, 0, 119, 325, 0, 335, 334, 0, 0, 192, 0, 0, 296, 0, 292, 315, 316, 231, 0, 0, 0, 14, 17, 0, 0, 67, 0, 0, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 270, 0, 281, 0, 0, 355, 65, 0, 139, 140, 141, 138, 137, 136, 131, 0, 123, 0, 0, 0, 0, 134, 295, 0, 0, 0, 0, 92, 86, 0, 0, 70, 35, 34, 73, 0, 78, 0, 83, 84, 0, 77, 102, 0, 0, 0, 97, 0, 286, 0, 333, 0, 55, 122, 0, 0, 0, 126, 0, 135, 0, 0, 0, 0, 0, 68, 18, 0, 79, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 15, 0, 0, 0, 0, 101, 53, 0, 284, 0, 0, 0, 0, 0, 0, 0, 260, 244, 245, 265, 145, 0, 0, 0, 0, 88, 0, 71, 0, 0, 262, 263, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 257, 143, 0, 0, 0, 38, 0, 264, 0, 0, 0, 0, 128, 127, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 43, 0, 42, ); $GLOBALS['_PINTCOMPILER_PARSER']['yyDgoto'] = array( 1, 70, 181, 182, 183, 184, 185, 74, 75, 462, 504, 501, 551, 413, 261, 592, 425, 76, 77, 149, 152, 124, 146, 286, 467, 558, 266, 422, 78, 680, 681, 287, 79, 80, 271, 476, 477, 81, 323, 395, 541, 494, 450, 482, 472, 566, 478, 479, 253, 254, 255, 150, 542, 543, 581, 544, 545, 688, 546, 547, 625, 262, 231, 217, 293, 113, 244, 82, 120, 83, 297, 173, 84, 85, 86, 114, 87, 329, 406, 460, 88, 627, 628, 483, 629, 484, 379, 89, 400, 455, 456, 90, 91, 92, 333, 93, 330, 331, 294, 298, 174, 175, 384, 289, ); $GLOBALS['_PINTCOMPILER_PARSER']['yySindex'] = array( 0, 10210,15613,15613, 42,15613,15613,15613, 20, 20,15613, 15613,15613,15613,15613,15613,15613, 24, 24, 48, 64, 0, 0, 74, 0, 0, 0, 0,15613,12471, 80, 86, 88, 99, 126,14112,14287, -253,14398, -46,15613, -16, -29, -150, -171, -165, 146, 153, 162, 0, 0, 172, 185, 0, 0, 0, 0, 857,15613,15613,15613, 15613,15613,10210,15613, 0, 94, 857, 857, 857, 0, 0, 0, 0, 0,15434, 0, 1670, -126, 0, 0, -53, 0, 0, 0, 226, 232, 0, 0, -74, -47, 17, 0, 0, 6411, 6411,15613, 6411, 6411, 6522, 74, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 248, 0, -61, -47, 17, 0,14522, 0, 15613,14633, 6411, 50, 10,15613,15613,15613, 6,15613, 0,16714, 0,16725, 0, 0, 280, 0, 6411, 269, 1544,10210,16813, 0, 19, 275, 0, -4, 54, 0, 277, 62, 0, 0, 20, 20, 20, -11,14757, 0, -64, 0, 0, 0, 0, 0,15737, 20, 0, 0, 0, 0, 791, 0, 0, 145, 145, 0, 0, 0, 0, 0, 0, 7934, 0, 1649,15613, 878, 485, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,14868, 15613, 32, -3,14633,14633, 9,15613,15613, 94, -47, 1981, 34,14633, 0, 9, -47, 0, 2424, 2867, 20, 0, 1670, 327, 316, 0,15613, 0, 332, 3310, 6411, 321, 338, 63, 548, 346, 37, 3753, 0, 0, 0, 129, 0, 0, 8045, 0, 398, 0,15613, 0, -29, 0, 261, 144, 0, 0, 59, 0, 0, 117, 413, 359, 0, 147, 0, 20, 1198, 418, 422, 170, -40, 391, 3864, 360, 0, 0, 0, 0, 0, 4196, 0, 0, 0, 4307, 6411, 12, 6522, 6411, 0, 0, -47, 17, -253, 140, 455, 456, 0,15613, 0, 459, -32, 0, 6411, 409, 4639, 0, 474, 0, 0,11218, 0, 0,14633, 6411,15613,11323,15613,15613, 20, 20, 261, 203,11652, -21, 477, 192, 0, 4750, 0, 149, 491, 261, 261, 0, 0, 0, 472, 20, 476, 20, 0, 0, -11, -11, 475, 0,14992, 0,15103, 0, 0, 0, 0, 0, 447,15613, 0, 0, 174,15613, 24, 0, -47, 0, -253, 419, 0, 0, 5082,14633, 194, 15613,15613, 0, 0, 0, 196,10210, 0, 0, 5193, 10210, 0, 0, 493, 6411, 200, 200, 0, 489,10210, 0, 0, 498, 502, 0, -236, 523, 0, 262, 261, 0, 0, 261, 0, 0, 0, 160, 0,15613, 20, 6411, 20, 7549, 0, 5525, 0, 6854, 248, 0, 524, 0, 0, 534, 9, 194, 0, 484, 5636, 9, 0, 10210, -69, 520, 8374,15613, 20, 539, 550, 261, 8478, 0, 31, 0, -78, -253, -12, 553, 551, 0, -253, 0, 247, 561, 559, 0, 0, 6522, 0, 0,15227, 479, 0, -253, 467, 0, 459, 0, 0, 0, 0, 177, 571,12471, 0, 0, 554, 573, 0,11756,11756, 0, 556, 98, 557,15613, 358, -41, 0, 320, 565, 322, 512, -236, 336, 261, 0, 261, 0, 20, 6411, 0, 0, 339, 0, 0, 0, 0, 0, 0, 0, 546, 0, 343, 68, 329, 313, 0, 0, 618, 603, 364,15613, 0, 0,12085,10210, 0, 0, 0, 0, 609, 0,10588, 0, 0,10210, 0, 0, 261, 608, 10210, 0, 631, 0, 326, 0, 613, 0, 0, 627, 92, 387, 0, 280, 0,15613,10210, 636, 5968,10210, 0, 0, 8807, 0,10210,10210, 0, 261, 8911, 574, 261, 240, 261, 389, 0, 637, 394, 6079,10210, 0, 12471, 9240, 642,10210, 0, 0,10210, 0, 149, 663, 319, 319, 240, 240, 1226, 0, 0, 0, 0, 0, 643, 240, 685, 672, 0, 674, 0, 9344, 261, 0, 0, 0, 948, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 261, 1226, -236,10210, 0, 399, 694, 0, 1237, 644, 644, 176, 134, 591, 168, 168, 168, 0, 0, 0, 0, 695,10210, 698, 0, 404, 0, -8, -253, 701,10210, 0, 0, 437, -253, 9673, 707, 442, 0, 630, 709,10210, 632, 9777,10210, 0,10106, 0, ); $GLOBALS['_PINTCOMPILER_PARSER']['yyRindex'] = array( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6817, 0, 0, 0, 1497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 635, 0, 0, 44, 666, 730, 726, 0, 0, 0, 0, 0,11567, 0, 7371, 0, 0, 0, 0, 0, 0, 0, 6928, 0, 0, 0, 2830, 1612, 0, 0, 0,13254,13429, 0,13540,13715,12857, 395, 0, 0, 0, 4159, 4270, 4602, 4713, 5045, 5156, 5488, 1161, 0, 7260, 0, 5599, 3716, 0, 0, 0, 0, 0, 727,15888, 0, 0, 0, 708, 0, 0, 0, 0,11567, 0,11567, 0, 0, 464, 0,11567,10931, 12196, 635,11567, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 167, 729, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7647, 7758, 5931, 6042, 6374, 0, 0, 0, 0, 0,11567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 727, 727, 0, 680, 0, 47, 1944, 11567, 0, 727, 0, 0, 3827, 0,11567,11567, 0, 10542,11042, 0, 733, 0, 0, 0, 0,11567,15378, 0, 51,10931,12196, 0, 0,11567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15972, 0, 734, 0, 0, 10653,11567, 0, 0, 0, 0, 0, 0,11567, 0, 0, 0,11567,13826, 0,12968,14001, 0, 0, 2055, 0, 0, 648, 0, 0, 0, 0, 0, 2941, 2387, 0,16539, 0,11567, 0, 0, 0, 0, 0, 0, 0, 0,16076, 0, 0, 708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11567, 0, 13, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 167, 167, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2498, 0, 0, 0, 0, 0,11567, 727, 3273, 680, 0, 0, 0, 0, 6485, 143, 0, 0,11567, 461, 0, 0, 0,15502, 738, 738, 0, 0, 458, 0, 0, 197, 119, 0, -5, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16250, 0,16354, 0,11567, 0,12582, 7260, 0, 660, 0, 0, 0, 0, 3384, 0, 0,11567, 0, 0, 171, 1050, 0, 0, 746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 750, 0, 0, 0, 213, 0, 734, 0, 0,13143, 0, 0, 0, 0, 0, 0, -83, 0, 2941, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 2, 0, 0, 0, 735, 0, 0,16435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 0, 0, 0, 0, -234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 0,11567, 0, 0, 70, 0, 0, 0, 233, 635, 0, 0, 0, 266, 0, 0, 0, 0, 108, 0, 0, 0, 464, 0, 0, 496, 0,11567, 494, 0, 0, 0, 0, 70, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11567, 501, 0, 0, 0, 0, 110, 0, 0, 635, 0, 100, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, -5, 143, 0, 606, 0, 0, 49, 362, 1208, 30, 678, 457, 1454, 1542, 1573, 0, 0, 0, 0, 0, 271, 0, 0, 718, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 635, 0, 0, 635, 0, 0, 0, ); $GLOBALS['_PINTCOMPILER_PARSER']['yyGindex'] = array( 0, 0, 1, 824, 825, -138, -109, 0, 3, 0, 0, 0, 0, 0, -312, 0, 0, 28, 41, 0, 0, 0, 0, 0, 410, 318, 0, 0, -17, 0, 0, 462, 0, 0, 246, -34, 173, 0, 0, 0, 0, 0, 0, -134, -366, 270, 0, 309, -148, 0, 495, 560, 293, 0, 0, 0, 0, 0, 0, 296, 481, 0, 0, 0, 473, 5, 400, 0, 0, 0, 0, 516, 0, 165, 133, 0, 4, -199, 0, 0, 61, -133, 0, 207, -227, 0, 355, 0, 351, 0, 396, -6, 11, 0, 448, 0, 0, 0, 483, 0, -72, 0, 0, 0, ); $GLOBALS['_PINTCOMPILER_PARSER']['yyTable'] = array( 112, 112, 71, 137, 274, 94, 95, 148, 97, 98, 99, 116, 116, 104, 105, 106, 107, 108, 109, 110, 136, 115, 115, 118, 145, 66, 521, 300, 117, 117, 125, 123, 66, 104, 414, 60, 96, 423, 132, 134, 104, 139, 124, 143, 237, 66, 337, 518, 66, 101, 103, 687, 135, 239, 267, 365, 66, 267, 474, 401, 66, 176, 177, 178, 179, 180, 140, 186, 66, 135, 66, 249, 267, 130, 249, 307, 238, 142, 352, 141, 320, 351, 96, 321, 567, 240, 324, 325, 119, 249, 248, 402, 150, 248, 256, 336, 475, 133, 280, 241, 368, 305, 424, 367, 121, 513, 283, 517, 248, 257, 150, 246, 582, 281, 122, 686, 305, 305, 305, 278, 126, 284, 248, 365, 249, 139, 127, 583, 128, 259, 260, 139, 327, 267, 365, 365, 604, 261, 261, 129, 120, 261, 261, 261, 261, 261, 261, 261, 363, 118, 251, 605, 144, 507, 249, 120, 263, 151, 370, 261, 147, 369, 296, 252, 118, 307, 130, 144, 142, 264, 302, 655, 649, 102, 102, 147, 653, 650, 153, 651, 652, 654, 215, 142, 154, 146, 155, 213, 374, 279, 309, 373, 214, 156, 261, 8, 285, 288, 290, 292, 146, 486, 157, 365, 373, 655, 365, 313, 326, 303, 653, 326, 158, 655, 649, 654, 418, 187, 653, 650, 314, 651, 652, 654, 261, 159, 320, 431, 432, 82, 320, 502, 503, 316, 317, 81, 320, 139, 139, 320, 332, 334, 365, 321, 80, 232, 139, 321, 124, 515, 516, 453, 233, 321, 287, 496, 321, 287, 99, 343, 500, 99, 251, 251, 60, 381, 234, 382, 383, 461, 648, 251, 235, 464, 100, 252, 252, 100, 147, 236, 624, 357, 470, 621, 252, 622, 515, 516, 243, 299, 242, 340, 245, 249, 100, 520, 25, 144, 365, 485, 365, 100, 104, 25, 361, 393, 362, 285, 390, 104, 285, 265, 248, 102, 326, 392, 25, 100, 270, 25, 102, 102, 102, 102, 25, 100, 258, 25, 272, 111, 398, 25, 276, 102, 277, 511, 375, 318, 282, 25, 408, 25, 365, 364, 291, 139, 412, 410, 322, 260, 415, 320, 307, 421, 321, 307, 391, 514, 515, 516, 342, 307, 621, 261, 622, 319, 623, 267, 341, 328, 251, 365, 344, 112, 365, 319, 365, 449, 328, 441, 346, 443, 347, 252, 116, 261, 261, 348, 445, 416, 417, 574, 447, 575, 115, 448, 8, 8, 8, 372, 246, 117, 139, 246, 332, 458, 246, 350, 285, 136, 436, 364, 365, 292, 292, 102, 564, 565, 593, 645, 646, 246, 364, 364, 561, 515, 516, 251, 596, 365, 82, 82, 82, 599, 354, 597, 81, 81, 81, 356, 252, 519, 487, 8, 8, 8, 80, 80, 320, 609, 351, 366, 612, 320, 371, 351, 246, 614, 136, 377, 102, 645, 646, 524, 615, 321, 378, 618, 260, 630, 321, 89, 89, 89, 312, 380, 532, 549, 550, 638, 102, 488, 385, 489, 307, 387, 246, 307, 640, 641, 307, 364, 394, 530, 364, 250, 396, 397, 250, 399, 307, 250, 403, 307, 553, 307, 136, 508, 419, 351, 557, 557, 351, 102, 102, 405, 250, 426, 563, 311, 429, 678, 676, 80, 80, 80, 169, 427, 172, 307, 364, 430, 102, 433, 102, 435, 439, 102, 102, 351, 444, 351, 451, 21, 22, 619, 446, 454, 691, 459, 469, 250, 465, 27, 466, 589, 591, 471, 170, 699, 171, 473, 702, 480, 21, 22, 359, 481, 493, 307, 576, 90, 90, 90, 27, 495, 169, 498, 172, 505, 509, 250, 307, 188, 189, 190, 364, 328, 364, 608, 307, 510, 328, 307, 522, 523, 620, 53, 54, 55, 56, 525, 526, 527, 531, 102, 41, 102, 170, 230, 171, 552, 635, 554, 555, 560, 562, 360, 53, 54, 55, 56, 21, 22, 619, 246, 569, 568, 655, 570, 364, 102, 27, 653, 650, 571, 651, 652, 654, 41, 41, 136, 41, 573, 577, 41, 41, 246, 246, 41, 580, 41, 534, 535, 536, 537, 538, 539, 586, 364, 584, 587, 364, 626, 364, 41, 588, 689, 594, 598, 41, 578, 600, 693, 602, 620, 53, 54, 55, 56, 601, 655, 626, 626, 626, 626, 653, 650, 603, 651, 652, 654, 606, 626, 102, 610, 631, 617, 632, 633, 364, 637, 41, 639, 656, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 364, 40, 251, 250, 351, 251, 351, 351, 658, 351, 351, 351, 41, 659, 41, 41, 660, 679, 682, 683, 251, 684, 685, 160, 690, 161, 162, 692, 163, 164, 165, 695, 696, 698, 40, 40, 697, 40, 700, 339, 40, 40, 104, 8, 40, 339, 40, 339, 339, 224, 151, 107, 51, 327, 62, 251, 311, 106, 282, 283, 40, 8, 66, 280, 8, 40, 63, 351, 351, 351, 151, 166, 104, 160, 95, 161, 162, 93, 163, 164, 165, 8, 533, 132, 8, 251, 94, 167, 168, 534, 535, 536, 537, 538, 539, 540, 8, 40, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 72, 73, 468, 559, 434, 607, 677, 572, 595, 579, 228, 229, 409, 166, 528, 358, 40, 585, 40, 40, 437, 662, 548, 492, 457, 0, 497, 0, 0, 167, 168, 438, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 0, 0, 0, 41, 349, 0, 0, 0, 645, 646, 533, 0, 0, 0, 169, 0, 172, 534, 535, 536, 537, 538, 539, 540, 0, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 170, 41, 171, 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, 41, 41, 0, 41, 41, 251, 41, 41, 41, 41, 41, 41, 169, 0, 172, 0, 41, 41, 41, 41, 41, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 0, 0, 169, 0, 172, 0, 41, 310, 40, 40, 40, 40, 40, 170, 0, 171, 40, 0, 655, 649, 0, 0, 663, 653, 650, 0, 651, 652, 654, 0, 0, 0, 0, 0, 170, 0, 171, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 648, 40, 40, 40, 40, 40, 40, 40, 91, 40, 40, 0, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 40, 40, 40, 40, 40, 0, 0, 0, 647, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 91, 91, 40, 91, 0, 0, 91, 91, 0, 0, 91, 0, 91, 160, 0, 161, 162, 0, 163, 164, 165, 642, 643, 0, 0, 0, 91, 0, 0, 0, 657, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 0, 0, 0, 0, 0, 0, 0, 166, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 167, 168, 160, 0, 161, 162, 0, 163, 164, 165, 0, 0, 0, 91, 0, 91, 91, 0, 0, 0, 0, 0, 0, 160, 0, 161, 162, 0, 163, 164, 165, 0, 0, 0, 225, 225, 0, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 0, 166, 644, 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, 0, 225, 225, 225, 167, 168, 0, 0, 0, 166, 0, 645, 646, 215, 207, 0, 0, 0, 213, 210, 0, 211, 212, 214, 247, 167, 168, 247, 0, 0, 247, 0, 225, 225, 0, 225, 208, 0, 209, 204, 0, 655, 649, 0, 0, 247, 653, 650, 0, 651, 652, 654, 655, 649, 0, 0, 0, 653, 650, 0, 651, 652, 654, 225, 225, 225, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, 91, 91, 91, 91, 91, 0, 0, 0, 91, 0, 0, 0, 0, 648, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 648, 247, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 647, 0, 91, 91, 91, 91, 91, 91, 0, 91, 0, 647, 0, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 91, 91, 91, 91, 91, 91, 91, 0, 91, 91, 0, 91, 91, 91, 91, 91, 91, 0, 0, 0, 0, 91, 91, 91, 91, 91, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0, 0, 91, 225, 225, 225, 225, 225, 225, 225, 225, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 191, 192, 193, 0, 225, 225, 225, 225, 225, 0, 0, 247, 0, 0, 225, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 225, 0, 0, 0, 644, 0, 0, 253, 247, 247, 253, 0, 253, 253, 253, 253, 0, 0, 0, 0, 0, 0, 0, 225, 225, 0, 645, 646, 253, 0, 225, 225, 225, 225, 225, 225, 225, 645, 646, 0, 0, 0, 0, 225, 0, 273, 273, 224, 273, 273, 273, 273, 0, 273, 273, 273, 273, 273, 273, 273, 0, 0, 0, 253, 0, 0, 0, 376, 0, 0, 273, 273, 273, 0, 273, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 254, 0, 0, 254, 0, 254, 254, 254, 254, 0, 273, 273, 0, 273, 0, 0, 0, 0, 0, 0, 0, 254, 0, 273, 0, 230, 0, 0, 0, 0, 0, 252, 0, 0, 252, 0, 252, 252, 252, 252, 0, 273, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 252, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 303, 303, 0, 303, 303, 303, 303, 298, 303, 303, 303, 303, 303, 303, 303, 0, 0, 0, 0, 0, 0, 254, 252, 0, 0, 303, 303, 303, 303, 303, 303, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 207, 0, 0, 308, 213, 210, 0, 211, 212, 214, 252, 0, 0, 0, 0, 0, 0, 0, 303, 303, 0, 303, 208, 0, 209, 204, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 303, 303, 303, 253, 253, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, 273, 273, 273, 273, 273, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 0, 0, 0, 0, 273, 273, 273, 273, 273, 254, 0, 0, 0, 0, 273, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 273, 0, 0, 0, 0, 0, 254, 254, 0, 0, 228, 229, 0, 0, 0, 252, 0, 0, 0, 0, 0, 0, 0, 273, 273, 0, 0, 0, 0, 0, 273, 273, 273, 273, 273, 273, 273, 252, 252, 0, 0, 0, 0, 273, 0, 0, 0, 224, 303, 303, 303, 303, 303, 303, 303, 303, 303, 0, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 191, 192, 193, 0, 303, 303, 303, 303, 303, 0, 0, 0, 0, 0, 303, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 303, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 303, 303, 0, 0, 0, 0, 303, 303, 303, 303, 303, 303, 303, 303, 0, 0, 0, 0, 304, 304, 303, 304, 304, 304, 304, 299, 304, 304, 304, 304, 304, 304, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 304, 304, 304, 304, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 207, 0, 0, 335, 213, 210, 0, 211, 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 0, 304, 208, 0, 209, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 304, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 298, 0, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 298, 298, 298, 298, 298, 298, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 298, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 298, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 304, 304, 304, 304, 304, 304, 304, 0, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 191, 192, 193, 0, 304, 304, 304, 304, 304, 0, 0, 0, 0, 0, 304, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 0, 0, 0, 0, 304, 304, 304, 304, 304, 304, 304, 304, 0, 0, 0, 0, 0, 0, 304, 298, 298, 298, 298, 298, 298, 298, 298, 298, 0, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 0, 0, 0, 0, 298, 298, 298, 298, 298, 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 298, 0, 0, 0, 0, 298, 298, 298, 298, 298, 298, 298, 298, 0, 0, 0, 0, 313, 313, 298, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 313, 313, 313, 313, 313, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 207, 0, 0, 338, 213, 210, 0, 211, 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, 313, 313, 0, 313, 208, 0, 209, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 313, 313, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 299, 0, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 299, 299, 299, 299, 299, 299, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 299, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 299, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 313, 313, 313, 313, 313, 313, 313, 313, 0, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 191, 192, 193, 0, 313, 313, 313, 313, 313, 0, 0, 0, 0, 0, 313, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 313, 0, 0, 0, 0, 313, 313, 313, 313, 313, 313, 313, 313, 0, 0, 0, 0, 0, 0, 313, 299, 299, 299, 299, 299, 299, 299, 299, 299, 0, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 0, 0, 0, 0, 299, 299, 299, 299, 299, 0, 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 299, 0, 0, 0, 0, 299, 299, 299, 299, 299, 299, 299, 299, 0, 0, 0, 0, 291, 291, 299, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, 291, 291, 291, 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 207, 0, 0, 339, 213, 210, 0, 211, 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, 0, 291, 208, 0, 209, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, 291, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 297, 0, 297, 297, 297, 297, 0, 297, 297, 297, 297, 297, 297, 297, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 297, 297, 297, 297, 297, 297, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 297, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 297, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, 291, 291, 291, 291, 291, 291, 291, 0, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 191, 192, 193, 0, 291, 291, 291, 291, 291, 0, 0, 0, 0, 0, 291, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, 0, 0, 0, 0, 0, 291, 291, 291, 291, 291, 291, 291, 0, 0, 0, 0, 0, 0, 291, 297, 297, 297, 297, 297, 297, 297, 297, 297, 0, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 0, 0, 0, 0, 297, 297, 297, 297, 297, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 297, 0, 0, 0, 0, 297, 297, 297, 297, 297, 297, 297, 297, 0, 0, 0, 0, 294, 294, 297, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 294, 294, 294, 294, 294, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 207, 0, 0, 345, 213, 210, 0, 211, 212, 214, 0, 0, 0, 0, 0, 0, 0, 0, 294, 294, 0, 294, 208, 0, 209, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 294, 294, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 290, 0, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 290, 290, 290, 290, 290, 290, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 290, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 290, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 294, 294, 294, 294, 294, 294, 294, 294, 0, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 191, 192, 193, 0, 294, 294, 294, 294, 294, 0,