当前位置: 首页>>代码示例>>PHP>>正文


PHP Expression::Parse方法代码示例

本文整理汇总了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";
}
开发者ID:roblillack,项目名称:lizp,代码行数:31,代码来源:lizpc.php

示例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]);
}
开发者ID:roblillack,项目名称:lizp,代码行数:11,代码来源:internal_functions.php


注:本文中的Expression::Parse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。