[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-doc-cvs
Subject:    [DOC-CVS] =?utf-8?q?svn:_/phpdoc/en/trunk/reference/parle/_examples.xml?=
From:       Anatol_Belski <ab () php ! net>
Date:       2017-09-26 17:44:18
Message-ID: svn-ab-1506447858-343150-1269658765 () svn ! php ! net
[Download RAW message or body]

ab                                       Tue, 26 Sep 2017 17:44:18 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=343150

Log:
Refine examples

Changed paths:
    U   phpdoc/en/trunk/reference/parle/examples.xml

Modified: phpdoc/en/trunk/reference/parle/examples.xml
===================================================================
--- phpdoc/en/trunk/reference/parle/examples.xml	2017-09-26 17:38:16 UTC (rev 343149)
+++ phpdoc/en/trunk/reference/parle/examples.xml	2017-09-26 17:44:18 UTC (rev 343150)
@@ -12,17 +12,18 @@
 <![CDATA[
 <?php

-use Parle\{Token, Lexer, LexerException};
+use Parle\Token;
+use Parle\Lexer;
+use Parle\LexerException;

 /* name => id */
 $token = array(
-        "EOI" => 0,
         "COMMA" => 1,
         "CRLF" => 2,
         "DECIMAL" => 3,
 );
 /* id => name */
-$token_rev = array_flip($token);
+$tokenIdToName = array_flip($token);

 $lex = new Lexer;
 $lex->push("[\x2c]", $token["COMMA"]);
@@ -42,7 +43,7 @@
                 throw new LexerException("Unknown token '{$tok->value}' at offset {$lex->marker}.");
         }

-        echo "TOKEN: ", $token_rev[$tok->id], PHP_EOL;
+        echo "TOKEN: ", $tokenIdToName[$tok->id], PHP_EOL;
 } while (Token::EOI != $tok->id);
 ]]>
    </programlisting>
@@ -91,11 +92,11 @@
 $p->left("'+' '-' '*' '/'");

 $p->push("start", "exp");
-$add_idx = $p->push("exp", "exp '+' exp");
-$sub_idx = $p->push("exp", "exp '-' exp");
-$mul_idx = $p->push("exp", "exp '*' exp");
-$div_idx = $p->push("exp", "exp '/' exp");
-$int_idx = $p->push("exp", "INTEGER");
+$prod_add = $p->push("exp", "exp '+' exp");
+$prod_sub = $p->push("exp", "exp '-' exp");
+$prod_mul = $p->push("exp", "exp '*' exp");
+$prod_div = $p->push("exp", "exp '/' exp");
+$p->push("exp", "INTEGER"); /* Production index unused. */

 $p->build();

@@ -134,22 +135,22 @@
 				break;
 			case Parser::ACTION_REDUCE:
 				switch ($p->reduceId) {
-					case $add_idx:
+					case $prod_add:
 						$l = $p->sigil(0);
 						$r = $p->sigil(2);
 						echo "$l + $r = " . ($l + $r) . "\n";
 						break;
-					case $sub_idx:
+					case $prod_sub:
 						$l = $p->sigil(0);
 						$r = $p->sigil(2);
 						echo "$l - $r = " . ($l - $r) . "\n";
 						break;
-					case $mul_idx:
+					case $prod_mul:
 						$l = $p->sigil(0);
 						$r = $p->sigil(2);
 						echo "$l * $r = " . ($l * $r) . "\n";
 						break;
-					case $div_idx:
+					case $prod_div:
 						$l = $p->sigil(0);
 						$r = $p->sigil(2);
 						echo "$l / $r = " . ($l / $r) . "\n";
@@ -175,8 +176,8 @@
 $p->token("WORD");
 $p->push("START", "SENTENCE");
 $p->push("SENTENCE", "WORDS");
-$words_idx = $p->push("WORDS", "WORDS WORD");
-$word_idx = $p->push("WORDS", "WORD");
+$prod_word_0 = $p->push("WORDS", "WORDS WORD");
+$prod_word_1 = $p->push("WORDS", "WORD");
 $p->build();

 $lex = new Lexer;
@@ -193,20 +194,19 @@
 		break;
 	case Parser::ACTION_SHIFT:
 	case Parser::ACTION_GOTO:
-	case Parser::ACTION_ACCEPT:
 		/* var_dump($p->trace());*/
 		break;
 	case Parser::ACTION_REDUCE:
 		$rid = $p->reduceId();
-		if ($rid == $word_idx) {
+		if ($rid == $prod_word_1) {
 			var_dump($p->sigil(0));
-		} if ($rid == $words_idx) {
+		} if ($rid == $prod_word_0) {
 			var_dump($p->sigil(1));
 		}
 		break;
 	}
 	$p->advance();
-} while (Parser::ACTION_ERROR != $p->action && Parser::ACTION_ACCEPT != $p->action);
+} while (Parser::ACTION_ACCEPT != $p->action);
 ]]>
    </programlisting>
   </example>



-- 
PHP Documentation Commits Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic