| 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>RPN Interpreter</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <style type="text/css">
 <!--
 .style1 {color: #CCCCCC}
 .style2 {font-size: large}
 .style3 {
 color: #CCCCCC;
 font-size: large;
 font-weight: bold;
 font-family: "Courier New", Courier, mono;
 }
 .style4 {color: #990000}
 .style5 {font-family: "Courier New", Courier, mono}
 .style7 {font-family: "Courier New", Courier, mono; font-weight: bold; }
 .style8 {
 color: #FFFFFF;
 font-weight: bold;
 }
 .style9 {    font-size: medium;
 font-weight: bold;
 }
 -->
 </style>
 </head>
 <body>
 <span class="style5 style1"><a href="index.html"><tt>PhpSqlAsp.com</tt></a> <tt><a href="rpn.html">RPN Interpreter (NEW)</a></tt> </span>
 <h1 align="center">EXAMPLE OF<br />
 <span class="style4">RPN INTERPRETER IN PHP</span> </h1>
 <h3>(C) Arturo Gonzalez-Mata Santana </h3>
 <p>This example read and execute a RPN commands txt file in the server. </p>
 <table  border="1" align="center" cellpadding="2" cellspacing="1">
 <tr bgcolor="#0066FF">
 <td colspan="2"><div align="center" class="style1 style2 style5"><strong>"Program" Line</strong></div></td>
 <td><div align="center" class="style3">Result</div></td>
 </tr>
 <?php
 /* this example read a "RPN program file" (RPN.txt) and execute some actions
 " " IS THE COMMAND SEPARATOR
 NO SYMBOL FOR LINE END
 RPN "PROGRAM"        EQUIVALENT ALGEBRAIC OPERATIONS
 Line 1:     2 12 +              ····> 12 + 2 = 14
 Line 2:     8 - 9 *             ····> 14 - 8 = 6;      6 *9 = 54
 Line 3:        5 / 78 5 + -        ····> 54 / 5 = 10.8;   78 + 5 = 83;    10.8 - 83 = -72.2
 Line 4:        25 10 * 50 +        ····> 25 * 10 = 250;   250 + 50 = 300;
 Line 5:        DUP *               ····> 300 * 300 = 90000
 Line 6:        SWAP -              ····> 90000 - -72.2 = 90072.2
 Line 7:        23 50 > IF + * 40 + then  ····> 6575310.6
 
 Try to change condition Line 7 to "<" . 23 50 > IF + * 40 + then ····> 90
 because " + *" are not evaluated when condition is false
 */
 require_once("rpn.class.php");
 $s=&new RPNstack();  // pila como variable global
 
 $ProgramFile = fopen("RPN.txt","r");
 
 
 #READ A RPN COMMANDS FILE line by line
 $num_lineas = 1;
 while(!feof($ProgramFile)):
 $buffer = trim(fgets($ProgramFile,4096));
 ?>
 <tr>
 <td bgcolor="#FFCC99"><div align="center" class="style5">#<?php echo $num_lineas++;?></div></td>
 <td bgcolor="#FFCC99"><span class="style7"><?php echo $buffer;?></span></td>
 <td bgcolor="#003300"><div align="right" class="style8" ><?php echo $s->parse_line($buffer); ?></div></td>
 </tr>
 <?php
 //echo "<br>"; $s->dump();  // this line is only for debuging
 endwhile;
 ?>
 </table>
 <?php
 printf("<h2>The Result is %s </h2>",$s->first());
 ?>
 <p> </p>
 </body>
 </html>
 
 |