Scheme的半引号的ANTLR语法
||
考虑以下EBNF中的语法:
http://pauillac.inria.fr/cdrom_a_graver/www/bigloo/manual/r5rs-8.html
给定的准引用语法不是上下文无关的:
<quasiquotation> --> <quasiquotation 1>
<qq template 0> --> <expression>
<quasiquotation D> --> `<qq template D>
| (quasiquote <qq template D>)
<qq template D> --> <simple datum>
| <list qq template D>
| <vector qq template D>
| <unquotation D>
<list qq template D> --> (<qq template or splice D>*)
| (<qq template or splice D>+ . <qq template D>)
| \'<qq template D>
| <quasiquotation D+1>
<vector qq template D> --> #(<qq template or splice D>*)
<unquotation D> --> ,<qq template D-1>
| (unquote <qq template D-1>)
<qq template or splice D> --> <qq template D>
| <splicing unquotation D>
<splicing unquotation D> --> ,@<qq template D-1>
| (unquote-splicing <qq template D-1>)
尽管它是为上下文无关的语法设计的,但是否可以在ANTLR中为此定义语法?
没有找到相关结果
已邀请:
1 个回复
闲窍
,如下所示:
。将参数
传递给规则
就像
一样简单: 当然,它不必是
,但可以是任何类型。 因此,在您的情况下,请执行以下操作:
注意,还有一些语法谓词“ѭ8”来说明语法中的一些歧义。 有关ANTLR中R5RS规范的完整版本,请参见此答案。