1

我正在尝试将 Slim 模板语言 (http://www.slim-lang.com) 移植到 PHP。我也想为 PHP 提供一些细节,但我无法确定表达式是否完整。

例如这段代码:

- 1.upto(10)
    = i

实际上会被解释为

1.upto(10) {
    print i
}

Slim 会自行添加 {}。为此,需要对表达式进行解析。我需要确定的是我应该放大括号,如果是,那么在哪里?

我的 Slim 实现版本会将 slim 文件转换为 PHP 模板,因此代码如下:

- for($i = 0; $i < 10; ++$i) /// a comment
    = $i

应该

<? for($i = 0; $i < 10; ++$i) { /// a comment ?>
    <?= $i ?>
<? } ?>

注意 { 在哪里。

我知道有token_get_all函数,但它是一个词法分析器,我必须自己做整个解析器,我想避免重新实现解析器(对于这么小的东西来说太多了)。

那么这可以解决吗?非 PHP 解决方案也可以。

4

0 回答 0