【发布时间】:2014-01-21 15:43:40
【问题描述】:
我正在尝试组装一个代码生成器,并且需要打印一个块(其中包含一些目标语言的代码),而不对其(即块)进行评估。我该怎么做呢?
编辑 1 -- 我知道如果我将 Ruby 代码嵌入为字符串,这很容易实现,但由于 Rebol 解析器似乎不介意,我想为什么不呢?
rebol []
x: [
[sym0 [(1..10).map{|n| puts n}]]
[sym1 [foo << [1, 2, 3]]]
]
print x/1/1 ;prints sym0
print x/1/2 ;fails as print tries to evaluate the block
【问题讨论】:
-
我想补充一点,我在块中嵌入了 Ruby 代码,当我尝试塑造或探测块时,Rebol 会删除所有大括号并弄乱其中包含的任何字符串和数字跨度>
-
你能在问题中更明确地列出你的场景吗? (有一个“编辑”按钮。)我不太确定你在这里的意思,但是 Ruby 代码通常与 Rebol 解析器不兼容。因此,在一般情况下,Ruby 必须位于字符串常量中,除非您只是使用该语言的某个子集。
-
查看下面的更新答案。
标签: reflection code-generation rebol homoiconicity