Example #1
0
 /**
  * Parse a function out of the given token reader
  *
  * @param \vc\Data\Routine $routine The object to fill with data
  * @param \vc\Tokens\Access $access The token access
  * @return NULL
  */
 public function parseRoutine(\vc\Data\Routine $routine, \vc\Tokens\Access $access)
 {
     $access->findRequired(array(Token::T_FUNCTION));
     $token = $access->peekToRequired(array(Token::T_STRING, Token::T_AMPERSAND, Token::T_PARENS_OPEN));
     // Handle routines that return a reference
     if ($token->is(Token::T_AMPERSAND)) {
         $routine->setReturnRef(TRUE);
         $access->popToken();
         $token = $access->peekToRequired(array(Token::T_STRING, Token::T_PARENS_OPEN));
     }
     // Names are optional because of anonymous methods
     if ($token->is(Token::T_STRING)) {
         $access->popToken();
         $routine->setName($token->getContent());
     }
     $routine->setArgs($this->args->parseArgs($access));
     $access->findRequired(array(Token::T_CURLY_OPEN, Token::T_SEMICOLON));
     $this->brackets->parseCurlies($access);
 }
Example #2
0
 /**
  * Parses an array
  *
  * @param \vc\Tokens\Access $access
  * @return \vc\Data\Value
  */
 private function parseArray(\vc\Tokens\Access $access)
 {
     $token = $access->findRequired(array(Token::T_PARENS_OPEN));
     return new \vc\Data\Value(sprintf('array(%s)', $this->brackets->parseParens($access)), 'array');
 }