vtigerossez/include/events/VTEventConditionParserParse...

354 lines
11 KiB
PHP

<?php
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
// $ANTLR 3.1 VTEventConditionParser.g 2009-01-23 20:13:10
class VTEventConditionParserParser extends AntlrParser {
public static $tokenNames = array(
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "SYMBOL", "IN", "STRING", "DIGIT", "INTEGER", "LETTER", "DOT", "ELEMENT_ID", "WHITESPACE", "'=='", "'['", "','", "']'"
);
public $INTEGER=8;
public $T__16=16;
public $IN=5;
public $T__15=15;
public $SYMBOL=4;
public $LETTER=9;
public $T__14=14;
public $T__13=13;
public $WHITESPACE=12;
public $DIGIT=7;
public $DOT=10;
public $EOF=-1;
public $ELEMENT_ID=11;
public $STRING=6;
// delegates
// delegators
static $FOLLOW_comparision_in_statement57;
static $FOLLOW_inclause_in_statement63;
static $FOLLOW_SYMBOL_in_comparision78;
static $FOLLOW_13_in_comparision80;
static $FOLLOW_value_in_comparision84;
static $FOLLOW_SYMBOL_in_inclause101;
static $FOLLOW_IN_in_inclause103;
static $FOLLOW_listelement_in_inclause107;
static $FOLLOW_14_in_listelement122;
static $FOLLOW_value_in_listelement126;
static $FOLLOW_15_in_listelement137;
static $FOLLOW_value_in_listelement141;
static $FOLLOW_16_in_listelement147;
static $FOLLOW_STRING_in_value162;
public function __construct($input, $state = null) {
if($state==null){
$state = new RecognizerSharedState();
}
parent::__construct($input, $state);
}
public function getTokenNames() { return VTEventConditionParserParser::$tokenNames; }
public function getGrammarFileName() { return "VTEventConditionParser.g"; }
protected function mismatch($input, $ttype, $follow){
throw new MismatchedTokenException($ttype, $input);
}
public function recoverFromMismatchedSet($input, $e, $follow){
throw $e;
}
// $ANTLR start "statement"
///* VTEventConditionParser.g:33:1: statement returns [result] : (exp= comparision | exp= inclause ) ; */
public function statement(){
$result = null;
$exp = null;
try {
{
$alt1=2;
$LA1_0 = $this->input->LA(1);
if ( ($LA1_0==$this->getToken('SYMBOL')) ) {
$LA1_1 = $this->input->LA(2);
if ( ($LA1_1==$this->getToken('13')) ) {
$alt1=1;
}
else if ( ($LA1_1==$this->getToken('IN')) ) {
$alt1=2;
}
else {
if ($this->state->backtracking>0) {$this->state->failed=true; return $result;}
$nvae = new NoViableAltException("", 1, 1, $this->input);
throw $nvae;
}
}
else {
if ($this->state->backtracking>0) {$this->state->failed=true; return $result;}
$nvae = new NoViableAltException("", 1, 0, $this->input);
throw $nvae;
}
switch ($alt1) {
case 1 :
{
$this->pushFollow(self::$FOLLOW_comparision_in_statement57);
$exp=$this->comparision();
$this->state->_fsp--;
if ($this->state->failed) return $result;
}
break;
case 2 :
{
$this->pushFollow(self::$FOLLOW_inclause_in_statement63);
$exp=$this->inclause();
$this->state->_fsp--;
if ($this->state->failed) return $result;
}
break;
}
if ( $this->state->backtracking==0 ) {
$result=$exp;
}
}
}
catch (RecognitionException $e) {
throw $e;
}
catch(Exception $e) {
throw $e;
}
return $result;
}
// $ANTLR end "statement"
// $ANTLR start "comparision"
///* VTEventConditionParser.g:35:1: comparision returns [result] : lhs= SYMBOL '==' rhs= value ; */
public function comparision(){
$result = null;
$lhs=null;
$rhs = null;
try {
{
$lhs=$this->match($this->input,$this->getToken('SYMBOL'),self::$FOLLOW_SYMBOL_in_comparision78); if ($this->state->failed) return $result;
$this->match($this->input,$this->getToken('13'),self::$FOLLOW_13_in_comparision80); if ($this->state->failed) return $result;
$this->pushFollow(self::$FOLLOW_value_in_comparision84);
$rhs=$this->value();
$this->state->_fsp--;
if ($this->state->failed) return $result;
if ( $this->state->backtracking==0 ) {
$result=array('==', new VTEventConditionSymbol(($lhs!=null?$lhs->getText():null)), $rhs); echo $value;
}
}
}
catch (RecognitionException $e) {
throw $e;
}
catch(Exception $e) {
throw $e;
}
return $result;
}
// $ANTLR end "comparision"
// $ANTLR start "inclause"
///* VTEventConditionParser.g:38:1: inclause returns [result] : lhs= SYMBOL IN rhs= listelement ; */
public function inclause(){
$result = null;
$lhs=null;
$rhs = null;
try {
{
$lhs=$this->match($this->input,$this->getToken('SYMBOL'),self::$FOLLOW_SYMBOL_in_inclause101); if ($this->state->failed) return $result;
$this->match($this->input,$this->getToken('IN'),self::$FOLLOW_IN_in_inclause103); if ($this->state->failed) return $result;
$this->pushFollow(self::$FOLLOW_listelement_in_inclause107);
$rhs=$this->listelement();
$this->state->_fsp--;
if ($this->state->failed) return $result;
if ( $this->state->backtracking==0 ) {
$result=array('in', new VTEventConditionSymbol(($lhs!=null?$lhs->getText():null)), $rhs);
}
}
}
catch (RecognitionException $e) {
throw $e;
}
catch(Exception $e) {
throw $e;
}
return $result;
}
// $ANTLR end "inclause"
// $ANTLR start "listelement"
///* VTEventConditionParser.g:40:1: listelement returns [result] : '[' val= value ( ',' val= value )* ']' ; */
public function listelement(){
$result = null;
$val = null;
try {
{
$this->match($this->input,$this->getToken('14'),self::$FOLLOW_14_in_listelement122); if ($this->state->failed) return $result;
$this->pushFollow(self::$FOLLOW_value_in_listelement126);
$val=$this->value();
$this->state->_fsp--;
if ($this->state->failed) return $result;
if ( $this->state->backtracking==0 ) {
$result = array('list', $val);
}
//loop2:
do {
$alt2=2;
$LA2_0 = $this->input->LA(1);
if ( ($LA2_0==$this->getToken('15')) ) {
$alt2=1;
}
switch ($alt2) {
case 1 :
{
$this->match($this->input,$this->getToken('15'),self::$FOLLOW_15_in_listelement137); if ($this->state->failed) return $result;
$this->pushFollow(self::$FOLLOW_value_in_listelement141);
$val=$this->value();
$this->state->_fsp--;
if ($this->state->failed) return $result;
if ( $this->state->backtracking==0 ) {
$result[] = $val;
}
}
break;
default :
break 2;//loop2;
}
} while (true);
$this->match($this->input,$this->getToken('16'),self::$FOLLOW_16_in_listelement147); if ($this->state->failed) return $result;
}
}
catch (RecognitionException $e) {
throw $e;
}
catch(Exception $e) {
throw $e;
}
return $result;
}
// $ANTLR end "listelement"
// $ANTLR start "value"
///* VTEventConditionParser.g:44:1: value returns [result] : val= STRING ; */
public function value(){
$result = null;
$val=null;
try {
{
$val=$this->match($this->input,$this->getToken('STRING'),self::$FOLLOW_STRING_in_value162); if ($this->state->failed) return $result;
if ( $this->state->backtracking==0 ) {
$result = stripcslashes(substr(($val!=null?$val->getText():null), 1, strlen(($val!=null?$val->getText():null))-2));
}
}
}
catch (RecognitionException $e) {
throw $e;
}
catch(Exception $e) {
throw $e;
}
return $result;
}
// $ANTLR end "value"
// Delegated rules
}
VTEventConditionParserParser::$FOLLOW_comparision_in_statement57 = new Set(array(1));
VTEventConditionParserParser::$FOLLOW_inclause_in_statement63 = new Set(array(1));
VTEventConditionParserParser::$FOLLOW_SYMBOL_in_comparision78 = new Set(array(13));
VTEventConditionParserParser::$FOLLOW_13_in_comparision80 = new Set(array(6));
VTEventConditionParserParser::$FOLLOW_value_in_comparision84 = new Set(array(1));
VTEventConditionParserParser::$FOLLOW_SYMBOL_in_inclause101 = new Set(array(5));
VTEventConditionParserParser::$FOLLOW_IN_in_inclause103 = new Set(array(14));
VTEventConditionParserParser::$FOLLOW_listelement_in_inclause107 = new Set(array(1));
VTEventConditionParserParser::$FOLLOW_14_in_listelement122 = new Set(array(6));
VTEventConditionParserParser::$FOLLOW_value_in_listelement126 = new Set(array(15, 16));
VTEventConditionParserParser::$FOLLOW_15_in_listelement137 = new Set(array(6));
VTEventConditionParserParser::$FOLLOW_value_in_listelement141 = new Set(array(15, 16));
VTEventConditionParserParser::$FOLLOW_16_in_listelement147 = new Set(array(1));
VTEventConditionParserParser::$FOLLOW_STRING_in_value162 = new Set(array(1));
?>