当前位置: 首页>>代码示例>>PHP>>正文


PHP Parser::init方法代码示例

本文整理汇总了PHP中Parser::init方法的典型用法代码示例。如果您正苦于以下问题:PHP Parser::init方法的具体用法?PHP Parser::init怎么用?PHP Parser::init使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Parser的用法示例。


在下文中一共展示了Parser::init方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: init

 /**
  * Initializer
  *
  * Sets up the Graph class with an image width and height defaults to
  * 640x480
  *
  * @param Integer $width Image width
  * @param Integer $height Image height
  */
 public static function init($width = 640, $height = 480)
 {
     // default width and height equal to that of a poor monitor (in early 2000s)
     self::$width = $width;
     self::$height = $height;
     //initialize main class
     Parser::init();
 }
开发者ID:geekman-rohit,项目名称:eos,代码行数:17,代码来源:Graph.php

示例2: init

 /**
  * init the class
  *
  * @since 3.0.0
  *
  * @param string $mode name of the mode
  *
  * @return mixed
  */
 public function init($mode = null)
 {
     $parser = new Parser($this->_request);
     $parser->init($mode);
     /* run command */
     $commandKey = $parser->getArgument(0);
     if (array_key_exists($commandKey, $this->_namespaceArray)) {
         $commandClass = $this->_namespaceArray[$commandKey];
         if (class_exists($commandClass)) {
             $command = new $commandClass($this->_registry, $this->_request, $this->_config);
             return $command->run($mode);
         }
     }
     return false;
 }
开发者ID:redaxmedia,项目名称:redaxscript,代码行数:24,代码来源:Console.php

示例3: testDumpLoad

 function testDumpLoad()
 {
     $tokens = ['d' => '[0-9]+', 'a', 'b', 'c', 'sp' => '\\s+'];
     $rules = ['A' => [[['d', ['+', ['|', 'a', 'b']], 'B'], true]], 'B' => [[['d'], true]]];
     $lexer = new Lexer($tokens);
     $parser = new Parser();
     $parser->setLexer($lexer);
     $parser->init($rules);
     $parser->setSkipTokens(['sp']);
     $data = $parser->dump();
     $s = serialize($data);
     $e = var_export($data, true);
     $parser = new Parser();
     $parser->setLexer($lexer);
     $v = eval("return {$e};");
     $parser->load($v);
     $parser->tree('123 a a b 1244');
     $parser = new Parser();
     $parser->setLexer($lexer);
     $data = unserialize($s);
     $parser->load($data);
     $parser->tree('123 a a b 1244');
     ob_start();
     $parser->printTree('123 a a b 1244');
     $text = ob_get_clean();
     $this->assertTrue(is_string($text));
 }
开发者ID:nobody1986,项目名称:phpcc,代码行数:27,代码来源:parser_test.php

示例4: parse

 /**
  * main entry function
  * @param array input tokens
  * @return LRParseNode parse tree
  */
 function parse(array $input)
 {
     // Parser class initialized input in standard fashion
     parent::init($input);
     // we always start at state 1
     $state = 1;
     // repeat until success or failure
     // if table is correct, this cannot get into infinite loop
     while (true) {
         //echo "\nState #$state, Symbol \"",$this->Lex->name($this->t),"\" \n";
         //echo "Permitted: [", $this->Lex->implode( ', ', $this->Table->permitted( $state, $this->Grammar )) ,"]\n";
         //echo "Stack: [",$this->Lex->implode(', ',$this->stack),"] \n";
         // get next action based up on current terminal in input stream
         $n = $this->Table->lookup($state, $this->t);
         if (is_null($n)) {
             $this->badtoken = $this->tok;
             // display which terminal symbols would be permitted
             $expected = $this->Table->permitted($state, $this->Grammar);
             if (!empty($expected)) {
                 $expected = 'expecting "' . $this->Lex->implode('", or "', $expected) . '"';
             } else {
                 $expected = 'no terminals permitted';
             }
             if (isset($this->stack[0])) {
                 $Node = end($this->stack);
                 if ($this->fail('after "%s" %s in state #%u', $this->Lex->name($Node->scalar_symbol()), $expected, $state)) {
                     continue;
                 } else {
                     break;
                 }
             } else {
                 if ($this->fail('%s in state #%u', $expected, $state)) {
                     continue;
                 } else {
                     break;
                 }
             }
         }
         // Odd numbers are states, even numbers are rules
         if ($n & 1) {
             // SHIFT
             if ($this->t === P_EOF) {
                 $len = count($this->stack);
                 if ($len !== 1) {
                     if ($this->fail('premature EOF stack has %u elements', $len)) {
                         continue;
                     } else {
                         break;
                     }
                 }
                 // Full parse
                 return $this->stack[0];
             }
             // shift, and move to next state
             $state = $this->shift($state, $n);
         } else {
             // REDUCE, and move to previous state
             $state = $this->reduce($state, $n);
         }
     }
 }
开发者ID:vitek-rostislav,项目名称:jparser,代码行数:66,代码来源:LRParser.php


注:本文中的Parser::init方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。