All pastes #97734 Raw Edit

k4st

public php v1 · immutable
#97734 ·published 2006-07-24 01:00 UTC
rendered paste body
<?phpclass TokenSet{	function _fuzzyMatch(&$state)	{		if(!is_iterator($state))		{			trigger_error("[Fatal Error] State object is not that of FAArrayIterator.", E_USER_ERROR);		}				$ret = TRUE;				$i = 0;				$state->reset();		while($state->next())		{			$token = &$state->current();						if(isset($this->_loose[$i+1]) && !$state->hasNext())			{				$ret = FALSE;				break;			}						if(!isset($this->_loose[$i+1]) && $state->hasNext())			{				$ret = FALSE;				break;			}						if($this->_loose[$i] != FA_TOKEN && $token['type'] != $this->_loose[$i])			{								$ret = FALSE;				break;			}						$i++;		}				$state->reset();				return $ret;	}		function checkAgainstGrammar(&$state)	{		if(!$this->_fuzzyMatch($state))		{			parse_error("Expression did not match loose grammar check.");		}					}}class TokenAssignment extends TokenSet{	var $_strict = array(						FA_VARIABLE,						FA_ASSIGN,						array(							FA_STRING,							FA_VARIABLE,							FA_FUNCTION_INSTANCE,							FA_CLASS_INSTANCE,							FA_ARRAY,							),						FA_SEMICOLON,						);	var $_loose = array(						FA_TOKEN,						FA_ASSIGN,						FA_TOKEN,						FA_SEMICOLON,						);}class TokenFunctionDefinition extends TokenSet{	var $_strict = array(						FA_FUNCTION_DEFINITION,						FA_PARENTHESIS_OPEN,						FA_TOKEN_SET,						FA_PARANTHESIS_CLOSE,						FA_BRACE_OPEN,						FA_TOKEN_SET,						FA_BRACE_CLOSE,						);	var $_loose = array(						FA_TOKEN,						FA_PARENTHESIS_OPEN,						FA_TOKEN,						FA_PARANTHESIS_CLOSE,						FA_BRACE_OPEN,						FA_TOKEN,						FA_BRACE_CLOSE,						);	var $_token_set = array(							array(								FA_VARIABLE,								FA_ASSIGN,								array(									FA_STRING,									FA_VARIABLE,									FA_FUNCTION_INSTANCE,									FA_CLASS_INSTANCE,									FA_ARRAY,									FA_NUMBER,									),								),							array(								FA_VARIABLE,								),							array(								FA_FUNCTION_INSTANCE,								),							array(								FA_CLASS_INSTANCE,								),							array(								FA_STRING,								),							array(								FA_NUMBER,								),							);	var $_token_separator = FA_COMMA;}class TokenClassDefinition extends TokenSet{	var $_strict = array(						FA_CLASS_DEFINITION,						FA_BRACE_OPEN,						FA_SCOPE_SET,						FA_BRACE_CLOSE,						);	var $_loose = array(						FA_TOKEN,						FA_BRACE_OPEN,						FA_TOKEN,						FA_BRACE_CLOSE,						);}class TokenArray extends TokenSet{	var $_strict = array(						FA_VARIABLE,						FA_ASSIGN,						FA_BRACKET_OPEN,						FA_TOKEN_SET,						FA_BRACKET_CLOSE,						FA_SEMICOLON,						);	var $_loose = array(						FA_TOKEN,						FA_ASSIGN,						FA_BRACKET_OPEN,						FA_TOKEN,						FA_BRACKET_CLOSE,						FA_SEMICOLON,						);	var $_token_set = array(							array(								array(									FA_VARIABLE,									FA_STRING,									FA_NUMBER,									),								FA_ASSIGN_ARRAY_VALUE,								array(									FA_STRING,									FA_VARIABLE,									FA_FUNCTION_INSTANCE,									FA_CLASS_INSTANCE,									FA_ARRAY,									FA_NUMBER,									),								),							array(								FA_VARIABLE,								),							array(								FA_FUNCTION_INSTANCE,								),							array(								FA_CLASS_INSTANCE,								),							array(								FA_STRING,								),							array(								FA_NUMBER,								),							);	var $_token_separator = FA_COMMA;}?>