浏览 2172 次
锁定老帖子 主题:Lisp的BNF
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-07
最后修改:2009-04-28
自己抽了一下lisp的简单BNF定义(不全,后边再续)
list -> "[" atom ("," atom)* "]" atom -> digit | id | list digit -> [0-9]+ id -> [a-zA-Z_][a-zA-Z]*
如果用javacc写一个分析器,则可以实现一个简单的嵌入式脚本,呵呵。
在网上找了一个比较全的,在这里贴出来: letter ::= "A" | "B" | ... | "Z", number ::= "1" | "2" | ... | "9", atomic_symbol ::= letter atom_part, atom_part ::= empty | letter atom_part | number atom_part, empty ::= "", S_expression ::= atomic_symbol | "(" S_expression "."S_expression ")" | list, list ::= "(" S_expression # S_expression ")". 有了形式定义,再就是找时间实现了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |