pattern / aaa / {id}的上下文无关语法

时间:2014-04-02 09:52:32

标签: pattern-matching context-free-grammar parser-generator

有人可以告诉我这种模式的CFG是什么:/var/{id}

在这里,var可以重复多次,但模式总是以{id}

结束

因此,这些都是有效的案例:

/var/var/{id}

/var/var/var/var/{id}

/var/{id}

到目前为止,我已经掌握了这个语法:

start::= token

token::= token expr token

token::= "/"

expr::= "var" | "{id}"

但我认为没错。帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

你快到了!您现在拥有的语法将生成/var/var/var/{id}/以及/{id}/var/var/{id}/var/等字符串。因此,您需要执行的操作是从{id}规则中删除expr。但是,您仍然需要在最后添加{id}以符合您的语言定义,这可以在start规则中完成。结果语法是:

start::= token "{id}"
token::= token expr token
token::= "/"
expr::= "var"