`
阿尔萨斯
  • 浏览: 4266180 次
社区版块
存档分类
最新评论

ELisp编程五:解析器相关

 
阅读更多

Lisp解析器如何处理list?

如果这个list前面有单引号,就会直接将该list返回(不包含单引号);

如果没有单引号,则会将这个list的第一个元素作为函数名去查找,如果找到,则调用该函数,如果找不到则返回错误消息。

一般按照从左到右的顺序一个一个处理list中的元素

如果list内部有嵌套,解析器总是从最里层的那个开始处理。


如何求值?

求值的结果总是返回一个值,如果求值错误,也会返回错误信息

内部list的值被求出后,用于替换该list所在的位置,作为一个元素

如果对一个数字求值,将得到数字本身

如果对一个没有括号的符号(非数字)求值,解析器会认为是对一个变量求值

如果对一个有括号的,当然是对一个list求值啦。参考前面一节'...如何处理list'

C-x C-e的等价命令是:eval-last-sexp 求距离最近的一个symbol expression的值



分享到:
评论

相关推荐

    elisp-koans:Emacs Lisp Koans-通过测试驱动的开发学习elisp

    elisp-koans:Emacs Lisp Koans-通过测试驱动的开发学习elisp

    elisp-def:查找Emacs Lisp定义

    elisp-def:查找Emacs Lisp定义

    elisp-demos:演示Emacs Lisp API

    Elisp API演示 在Ch f mapcar显示mapcar的Elisp演示:用法要将elisp演示注入*Help* ,例如Ch f ( Mx describe-function ),请使用( advice-add 'describe-function-1 :after # 'elisp-demos-advice-describe-...

    elisp-lint:Emacs Lisp的基本皮棉

    elisp-lint:Emacs Lisp的基本皮棉

    摩尔:Elisp packrat解析器生成器

    摩尔:Elisp packrat解析器生成器

    Emacs-Elisp-Programming, 有关编程Elisp和Emacs文本编辑器自定义的教程.zip

    Emacs-Elisp-Programming, 有关编程Elisp和Emacs文本编辑器自定义的教程 Emacs - 编程和自定义概述Emacs不需要任何演示文稿。 Emacs提供了一款软件,它提供了可以编程文本编辑器。电子邮件阅读器。文本浏览器。图片 ...

    elisp.js:Elisp转JS转译器

    elisp.js 这是从Emacs Lisp到Javascript的翻译器。演示版为什么? 目标之一是了解v8上的Emacs Lisp可以有多快。 这可能是将来在浏览器中运行Emacs软件包的基础(可能使用作为Emacs运行时的UI)。 当然,学习Emacs ...

    git-elisp-overview:与Git相关的Emacs软件包

    由Magit的维护者编译的与Git相关的Emacs软件包的列表。 目的是列出所有存在的此类软件包。 请告诉我有关我错过的包裹的信息。 通过克隆此存储库及其子模块,只需执行以下操作即可快速获得这些软件包: git clone ...

    elisp-parse:用于解析 emacs lisp 的 Haskell 库。 试图区分纯函数和脏函数

    这个库是我为我的另一个项目 haskell-emacs 解析 elisp 的小意图。 目标是能够与haskell emacs 提供的haskell 函数一起计算haskell 端的所有纯elisp 函数。

    python-elisp:适用于Python的Emacs Lisp解析器

    Emacs Lisp解析器 一个简单的软件包,用于从Python解析Emacs Lisp表达式。 简单用法 >> > import elisp >> > numbers = elisp . loads ( "(1 2 3)" ) >> > numbers . car 1 >> > numbers . cdr . cdr . car 3 >> > ...

    elisp反编译:Emacs Lisp反编译器

    此代码将用于其Earley算法解析器和代码组织。 我有一个中实现的项目。 它需要大量的工作,虽然更换Python代码。 这是一个非常早期的阶段,但是经过一番挥霍,代码似乎可以涵盖所有内容。 我们可以反编译的各种...

    elisp-maintainers:Elisp维护者以及如何支持他们

    Elisp维护者以及如何支持他们 这是Emacs软件包,其项目以及如何支持它们的维护者的列表。 显然这是非常不完整的,我只快速添加了一些维护者,他们的捐赠页面很容易^ 1,并且为我自己添加了更长的条目,以展示我希望...

    elisp-repl:具有Readline支持的Emacs Lisp REPL

    具有Readline支持的Emacs ...cc -shared -fpic -lreadline elisp-repl-readline.c -o elisp-repl-readline.so 安装 : M-x package-install e2ansi 准备load-path : ( push " ~/src/elisp-repl/ " load-path) 加

    elisp document

    elisp 资料 http://www.gnu.org/software/emacs/manual/elisp.html

    yaml.el:Elisp中的YAML解析器

    yaml.el yaml.el是用Emacs List编写的YAML解析器,没有任何外部依赖关系。它提供类似于Emacs JSON解析实用程序的接口。提供的功能如下: (yaml-parse-string string &rest args)接受以下关键字args: :object-type...

    elisp-check:针对Emacs Lisp CI的GitHub操作

    Emacs Lisp CI的GitHub动作 :scroll: 为Emacs Lisp软件包提供零配置CI解决... 有关与Emacs Lisp CI的其他解决方案的更全面比较,请参阅文件。 :shopping_cart: 支持的支票 :: MELPA所需的大多数检查 ::将文件加载

    emacs多年使用总结.pdf

    * ELISP 编程语言:使用 ELISP 编程语言实现 Emacs 扩展包开发。 * 高亮显示某个区域:使用 ELISP 编程语言实现高亮显示某个区域。 * 定义函数的返回值:使用 ELISP 编程语言实现函数返回值定义。 搜索和替换 * ...

    elisp-latch:Emacs Lisp的承诺和闩锁

    所有阻塞都会冻结Emacs的显示,但是计时器和I / O将继续运行。 请谨慎使用。 用法 承诺有deliver和retrieve方法。 ; ; Make promise ( defvar p (make-promise)) ; ; Deliver a value to the promise in 5 seconds...

    elisp-nbt:Emacs Lisp中用于命名二进制标签编码解码的库

    该库使用C模块进行长/双/浮点解析,原则上可以用纯Emacs LISP IEEE-754实现代替C模块,但这工作量很大,也不是一件有趣的事,因此您会陷入困境。 C模块:) 它可以当前阅读这里找到的示例 https://wiki.vg/NBT 以及...

    elisp-bytecode:让我们记录Emacs Lisp字节码(Lisp汇编程序)指令

    让我们记录一下Emacs Lisp字节码或LAP(Lisp汇编程序)指令。 您可以找到易于查看的PDF。 注意:通常,我会使用项目的评分来衡量有机会时可能从事的工作。 具体来说,对于这个项目获得的每一个支持,我都要多填写...

Global site tag (gtag.js) - Google Analytics