1. Go to this page and download the library: Download exprml/exprml-php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
exprml / exprml-php example snippets
use Exprml\Decoder;
use Exprml\Encoder;
use Exprml\Evaluator;
use Exprml\Evaluator\Config;
use Exprml\Parser;
use Exprml\PB\Exprml\V1\DecodeInput;
use Exprml\PB\Exprml\V1\EncodeInput;
use Exprml\PB\Exprml\V1\EvaluateInput;
use Exprml\PB\Exprml\V1\ParseInput;
$decodeResult->getValue()));
// Evaluate the parsed AST to get the result value.
$evaluator = new Evaluator(new Config());
$evaluateResult = $evaluator
->evaluate((new EvaluateInput())->setExpr($parseResult->getExpr()));
// Encode the evaluated result to get the final output.
$encodeResult = (new Encoder())
->encode((new EncodeInput())->setValue($evaluateResult->getValue()));
printf($encodeResult->getText() . "\n");
// => Hello, ExprML!
use Exprml\Decoder;
use Exprml\Encoder;
use Exprml\Evaluator;
use Exprml\Evaluator\Config;
use Exprml\Parser;
use Exprml\PB\Exprml\V1\DecodeInput;
use Exprml\PB\Exprml\V1\EncodeInput;
use Exprml\PB\Exprml\V1\EvaluateInput;
use Exprml\PB\Exprml\V1\EvaluateOutput;
use Exprml\PB\Exprml\V1\Expr\Path;
use Exprml\PB\Exprml\V1\ParseInput;
use Exprml\PB\Exprml\V1\Value;
'$hello' => function (Path $path, array $args) {
/** @var Value $name */
$name = $args['$name'];
$ret = (new Value())
->setType(Value\Type::STR)
->setStr('Hello, ' . $name->getStr() . '!');
return (new EvaluateOutput())->setValue($name);
},
]);
$evaluateResult = (new Evaluator($config))
->evaluate((new EvaluateInput())->setExpr($parseResult->getExpr()));
$encodeResult = (new Encoder())
->encode((new EncodeInput())->setValue($evaluateResult->getValue()));
printf($encodeResult->getText() . "\n");
// => 'Hello, ExprML Extension!'
use Exprml\Decoder;
use Exprml\Evaluator;
use Exprml\Evaluator\Config;
use Exprml\Parser;
use Exprml\Path;
use Exprml\PB\Exprml\V1\DecodeInput;
use Exprml\PB\Exprml\V1\EvaluateInput;
use Exprml\PB\Exprml\V1\EvaluateOutput;
use Exprml\PB\Exprml\V1\ParseInput;
use Exprml\PB\Exprml\V1\Value;
tion before the evaluation of each expression. */
function (EvaluateInput $input) {
printf("before:\t%s\n", Path::format($input->getExpr()->getPath()));
})
->setAfterEvaluate(
/* Hook a function after the evaluation of each expression. */
function (EvaluateInput $input, EvaluateOutput $output) {
printf("after:\t%s --> %s\n",
Path::format($input->getExpr()->getPath()),
Value\Type::name($output->getValue()->getType()));
});
(new Evaluator($config))
->evaluate((new EvaluateInput())->setExpr($parseResult->getExpr()));
# =>
# before: /
# before: /cat/0
# after: /cat/0 --> STR
# before: /cat/1
# after: /cat/1 --> STR
# before: /cat/2
# after: /cat/2 --> STR
# before: /cat/3
# after: /cat/3 --> STR
# after: / --> STR
bash
composer p-autoload
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.