对于Emacs Lisp语法,我在哪里可以找到正式的规范(EBNF或其他标准符号 - “读取”函数的源代码不计算!)?
我甚至对.y文件感到满意;不幸的是,emacs自己的解析器不使用yacc。
答案 0 :(得分:1)
我怀疑你会找到Emacs Lisp的正式语法,而不是源代码。 (事实上,我很确定你不会。)
但你真正需要的是什么?你想做什么?你可以在不诉诸正式语法的情况下做到这一点。为什么?因为Lisp语法非常简单,所以在运行时可以使用包括Lisp阅读器在内的完整语言。
Lisp语法在某种程度上也是可修改的,因此可以在运行时更改其语法。对于Emacs Lisp来说,情况并非如此,但对于其他Lisp,例如Common Lisp(阅读器宏),情况确实如此。因此,尝试将自己置于Lisp世界中,并根据预定义语言语法而不是您需要完成的内容来重新解释您的问题。
总之,尝试缩小您的问题范围,让我们知道您需要做什么。忘记提供一个正式的语法,作为一个可能 意味着 来做这件事。但如果你清楚地描述“它”,那么人们可能会有具体的帮助。
答案 1 :(得分:0)
我认为它与任何lisp语言相同,不是吗?这是一个描述维基百科Lisp页面中的Lisp:
expression -> atom | list
atom -> number | name | string | operator
list -> '(' expression* ')'