本文整理汇总了PHP中Expression::Parse方法的典型用法代码示例。如果您正苦于以下问题:PHP Expression::Parse方法的具体用法?PHP Expression::Parse怎么用?PHP Expression::Parse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Expression
的用法示例。
在下文中一共展示了Expression::Parse方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: AtSign
if ($expr instanceof AtSign) {
return 'new AtSign()';
}
if ($expr instanceof Symbol) {
return "Symbol::Make('{$expr->name}')";
}
if ($expr instanceof Lambda) {
return '<lambda:' . Expression::Render($expr->arguments) . '>';
}
if ($expr instanceof Macro) {
return '<macro:' . Expression::Render($expr->arguments) . '>';
}
return '<' . get_class($expr) . '>';
}
}
$cmd = @$_SERVER['argv'][1];
if (is_readable($cmd)) {
$start = microtime(TRUE);
$input = file_get_contents($cmd);
$expressions = Expression::Parse($input);
echo "parsed {$_SERVER['argv'][1]} in " . number_format(microtime(TRUE) - $start, 4) . "s\n";
$compiler = new LizpCompiler();
$start = microtime(TRUE);
foreach ($expressions as $expr) {
$compiler->Compile($expr);
}
$outfile = preg_replace('/\\.lizp$/', '.php', $cmd);
$compiler->Optimize();
file_put_contents($outfile, $compiler->GetAsm() . "\n");
echo "{$outfile} created.\n";
}
示例2: lizp_internal_fn_eval
function lizp_internal_fn_eval($env, $args)
{
if (count($args) != 1 || !is_string(@$args[0])) {
throw new Exception("syntax (EVAL <str>)");
}
$expr = Expression::Parse($args[0]);
if (count($expr) > 1) {
throw new Exception("Error: Multiple expressions given in " . Expression::Render($arg[0]));
}
return $env->Evaluate(@$expr[0]);
}