Source for file rpn.php
Documentation is available at rpn.php
} elseif ($symbol == '-') {
} elseif ($symbol == '*') {
} elseif ($symbol == '/') {
function DoEqual($symbol, $payload)
function Error($symbol, $payload)
echo " This does not compute: $symbol\n";
$fsm = new FSM('INIT', $stack);
$fsm->setDefaultTransition ('INIT', 'Error');
$fsm->addTransitionAny ('INIT', 'INIT');
$fsm->addTransition ('=', 'INIT', 'INIT', 'DoEqual');
$fsm->addTransitions (range(0 ,9 ), 'INIT', 'BUILDING_NUMBER', 'BeginBuildNumber');
$fsm->addTransitions (range(0 ,9 ), 'BUILDING_NUMBER', 'BUILDING_NUMBER', 'BuildNumber');
$fsm->addTransition (' ', 'BUILDING_NUMBER', 'INIT', 'EndBuildNumber');
$fsm->addTransitions (array ('+','-','*','/'), 'INIT', 'INIT', 'DoOperator');
$stdin = fopen('php://stdin', 'r');
$symbols = preg_split('//', $expression, -1 , PREG_SPLIT_NO_EMPTY );
$fsm->processList ($symbols);
Documentation generated on Mon, 11 Mar 2019 16:02:22 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|