<?php
namespace Claromentis\Infocapture\ExpressionLanguage;

$GLOBALS["__65da1b1e" . "c2d6653e8a" . "0ab7848e53" . "6215"] = (@$GLOBALS["__65da1b1ec2d6653e8" . "a0ab7848e536215"] ?: array()) + array("_4d707fab93bebb00bbe69e815" . "9697c90" => base64_decode(""), "_8b0fd25" . "dd24064f" . "c05a03a8" . "b94c6d2d" . "a" => base64_decode("c3Rya" . "XBzbG" . "FzaGV" . "z"));










class Parser extends ParserAbstract
{
    protected $tokenToSymbolMapSize = 280;
    protected $actionTableSize = 37;
    protected $gotoTableSize = 23;
    protected $invalidToken = 25;
    protected $defaultAction = -32766;
    protected $unexpectedTokenRule = 32767;
    protected $YY2TBLSTATE = 22;
    protected $YYNLSTATES = 32;
    const YYERRTOK = 256;
    const NAME = 257;
    const QUOTE_ = 258;
    const SQUOTE_ = 259;
    const STRING = 260;
    const _QUOTE = 261;
    const _SQUOTE = 262;
    const NUMBER = 263;
    const TRUE = 264;
    const FALSE = 265;
    const BRACKET_ = 266;
    const _BRACKET = 267;
    const COMMA = 268;
    const BRACE_ = 269;
    const _BRACE = 270;
    const SEPARATOR = 271;
    const BEGIN = 272;
    const END = 273;
    const PLUS = 274;
    const MINUS = 275;
    const TIMES = 276;
    const DIVIDE = 277;
    const VALUEOF = 278;
    const LABELOF = 279;
    protected $symbolToName = array("EOF", "error", "NAME", "QUOTE_", "SQUOTE_", "STRING", "_QUOTE", "_SQUOTE", "NUMBER", "TRUE", "FALSE", "BRACKET_", "_BRACKET", "COMMA", "BRACE_", "_BRACE", "SEPARATOR", "BEGIN", "END", "PLUS", "MINUS", "TIMES", "DIVIDE", "VALUEOF", "LABELOF");
    protected $tokenToSymbol = array(0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24);
    protected $action = array(25, 26, 27, 64, 10, 0, 50, 51, 52, 3, 18, 37, 24, 6, 7, 8, 9, 4, 5, 31, 24, 22, 23, 2, 47, 28, -32766, -32766, 46, 29, 30, 1, 35, 53, 63, 54, 48);
    protected $actionCheck = array(2, 3, 4, 12, 13, 0, 8, 9, 10, 11, 2, 5, 14, 19, 20, 21, 22, 19, 20, 2, 14, 23, 24, 17, 15, 16, 19, 20, 2, 5, 5, 11, 18, 6, 12, 7, 15);
    protected $actionBase = array(6, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 14, 22, 5, -6, -6, -6, -6, 9, -9, 7, 7, 26, 26, 8, 20, 24, 25, 17, 27, 28, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -6, 6, 0, 0, 0, 0, 0, 0, -6, -6);
    protected $actionDefault = array(32767, 33, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 27, 28, 34, 35, 32767, 32767, 23, 24, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767);
    protected $goto = array(11, 12, 14, 15, 20, 21, 57, 58, 17, 38, 34, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38);
    protected $gotoCheck = array(4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 2, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5);
    protected $gotoBase = array(0, 0, -3, 0, -2, 9, 0, 0, 0, 0, 0, 0, -12, 0, 0);
    protected $gotoDefault = array(-32768, 13, 33, 36, 16, 41, 39, 40, 42, 43, 44, 45, 61, 49, 19);
    protected $ruleToNonTerminal = array(0, 1, 1, 3, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 12, 5, 5, 8, 8, 8, 8, 13, 13, 9, 9, 9, 9, 9, 9, 10, 11, 6, 7, 14, 14, 14);
    protected $ruleToLength = array(1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 4, 0, 1, 3);
    protected function reduceRule0()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule1($attributes)
    {
        $this->semValue = [$this->semStack[$this->stackPos - (1 - 1)]];
    }
    protected function reduceRule2($attributes)
    {
        $this->semValue = $this->semStack[$this->stackPos - (2 - 1)];
        $this->semValue[] = $this->semStack[$this->stackPos - (2 - 2)];
    }
    protected function reduceRule3($attributes)
    {
        $this->semValue = new Nodes\ExpressionStatementNode($this->semStack[$this->stackPos - (3 - 2)]);
    }
    protected function reduceRule4()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule5($attributes)
    {
        $this->semValue = new Nodes\EncapsulatedStringNode($this->semStack[$this->stackPos - (1 - 1)]);
    }
    protected function reduceRule6()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule7()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule8()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule9()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule10()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule11()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule12()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule13()
    {
        $this->semValue = $this->semStack[$this->stackPos];
    }
    protected function reduceRule14($attributes)
    {
        $this->semValue = new Nodes\NameNode($this->semStack[$this->stackPos - (1 - 1)]);
    }
    protected function reduceRule15($attributes)
    {
        $this->semValue = new Nodes\IdentifierNode($GLOBALS["__65da1b1ec2d6653e8a0ab7848e536" . "215"]["_4d707fab93bebb00bbe69e81" . "59697c90"], $this->semStack[$this->stackPos - (3 - 2)]);
    }
    protected function reduceRule16($attributes)
    {
        $this->semValue = new Nodes\IdentifierNode($this->semStack[$this->stackPos - (5 - 2)], $this->semStack[$this->stackPos - (5 - 4)]);
    }
    protected function reduceRule17($attributes)
    {
        $this->semValue = new Nodes\StringNode($this->semStack[$this->stackPos - (1 - 1)]);
    }
    protected function reduceRule18($attributes)
    {
        $this->semValue = new Nodes\NumberNode($this->semStack[$this->stackPos - (1 - 1)]);
    }
    protected function reduceRule19($attributes)
    {
        $this->semValue = new Nodes\BooleanNode(true);
    }
    protected function reduceRule20($attributes)
    {
        $this->semValue = new Nodes\BooleanNode(false);
    }
    protected function reduceRule21($attributes)
    {
        $this->semValue = $GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["_8b0fd25dd24064fc05a03a8b94c6" . "d2da"]($this->semStack[$this->stackPos - (3 - 2)]);
    }
    protected function reduceRule22($attributes)
    {
        $this->semValue = $GLOBALS["__65da1b1ec2d665" . "3e8a0ab7848e5362" . "15"]["_8b0fd25dd24064fc05a03a8b94c6d2" . "da"]($this->semStack[$this->stackPos - (3 - 2)]);
    }
    protected function reduceRule23($attributes)
    {
        $this->semValue = new Nodes\ArithmeticNode(Nodes\OperatorNode::OP_PLUS, $this->semStack[$this->stackPos - (3 - 1)], $this->semStack[$this->stackPos - (3 - 3)]);
    }
    protected function reduceRule24($attributes)
    {
        $this->semValue = new Nodes\ArithmeticNode(Nodes\OperatorNode::OP_MINUS, $this->semStack[$this->stackPos - (3 - 1)], $this->semStack[$this->stackPos - (3 - 3)]);
    }
    protected function reduceRule25($attributes)
    {
        $this->semValue = new Nodes\ArithmeticNode(Nodes\OperatorNode::OP_TIMES, $this->semStack[$this->stackPos - (3 - 1)], $this->semStack[$this->stackPos - (3 - 3)]);
    }
    protected function reduceRule26($attributes)
    {
        $this->semValue = new Nodes\ArithmeticNode(Nodes\OperatorNode::OP_DIVIDE, $this->semStack[$this->stackPos - (3 - 1)], $this->semStack[$this->stackPos - (3 - 3)]);
    }
    protected function reduceRule27($attributes)
    {
        $this->semValue = new Nodes\UnaryNode(Nodes\OperatorNode::OP_PLUS, $this->semStack[$this->stackPos - (2 - 2)]);
    }
    protected function reduceRule28($attributes)
    {
        $this->semValue = new Nodes\UnaryNode(Nodes\OperatorNode::OP_MINUS, $this->semStack[$this->stackPos - (2 - 2)]);
    }
    protected function reduceRule29($attributes)
    {
        $this->semValue = new Nodes\FieldNode(Nodes\FieldNode::TYPE_VALUE, $this->semStack[$this->stackPos - (2 - 2)]);
    }
    protected function reduceRule30($attributes)
    {
        $this->semValue = new Nodes\FieldNode(Nodes\FieldNode::TYPE_LABEL, $this->semStack[$this->stackPos - (2 - 2)]);
    }
    protected function reduceRule31($attributes)
    {
        $this->semValue = $this->semStack[$this->stackPos - (3 - 2)];
    }
    protected function reduceRule32($attributes)
    {
        $this->semValue = new Nodes\FunctionCallNode($this->semStack[$this->stackPos - (4 - 1)], $this->semStack[$this->stackPos - (4 - 3)]);
    }
    protected function reduceRule33($attributes)
    {
        $this->semValue = [];
    }
    protected function reduceRule34($attributes)
    {
        $this->semValue = [$this->semStack[$this->stackPos - (1 - 1)]];
    }
    protected function reduceRule35($attributes)
    {
        $this->semValue = $this->semStack[$this->stackPos - (3 - 1)];
        $this->semValue[] = $this->semStack[$this->stackPos - (3 - 3)];
    }
}