npm 包 vsl-nearley 使用教程

阅读时长 5 分钟读完

简介

vsl-nearley 是一个在 JavaScript 程序中使用 Nearley 语法分析器的包,支持用户自定义的语法生成器,以及文法脚本的在线编辑和测试。该包最初是为 Visual Studio Live Share 项目开发的,旨在为编写自定义编程语言的开发者提供方便。

安装

在使用 vsl-nearley 之前,需要先安装 Node.js 和 npm。如果你已经安装了 Node.js 和 npm,可以直接输入以下命令安装 vsl-nearley:

为了全局安装警告,你需要在安装命令前使用 sudo 命令。

使用

生成语法

要生成语法,请创建一个 .ne 文件,该文件将包含自定义的 Nearley 文法。例如,以下是一个简单的 Nearley 文法:

在此示例中,引用了 Nearley 内置的三个词汇:numberwhitespaceoperator,然后定义了表达式的规则,该规则由两个数字、一个操作符和一个可选的空格字符表示。该规则还包含一个 JavaScript 函数,该函数使用所定义的表达式计算结果。

在线编译器和测试器

vsl-nearley 还包含一个在线编译器和测试器,该工具可用于在不离开命令行界面的情况下编辑和测试 Nearley 文法。

要使用在线编译器,请使用以下命令:

此命令将启动一个 Web 服务器,监听在端口 5000 上。要访问在线编译器,请在浏览器中输入以下地址:

该页面将显示一个文本编辑器,您可以使用该编辑器编辑 Nearley 文件。您可以在页面底部的“生成输出”区域中测试语法。

使用解析器

要在 JavaScript 程序中使用 vsl-nearley 生成的语法,请按照以下步骤进行操作:

  1. 导入 vsl-nearley。

  2. 从文件系统或字符串中加载语法。

    这里的 grammarData 可以是一个字符串或通过以下方式从文件系统中读取:

  3. 创建解析器。

  4. 向解析器中提供输入数据。

  5. 获取解析结果。

注意:解析器不会在输入数据未完成时自动解析数据,因此您需要自行决定何时调用 parser.feed()

示例

以下是一个使用 vsl-nearley 的完整示例。该示例将 Nearley 文件中定义的数学语法用于一个简单的计算器。

文件:calculator.ne

文件:calculator.js

-- -------------------- ---- -------
----- -- - --------------
----- ------- - -----------------------

-- ---- ------- ----
----- ----------- - ---------------------------------- --------
----- ------- - ------------------------------------------

-- ------ ------
----- ------ - --- ------------------------

-- ------- ----- ----
-------------- - ----

-- ----- ----- ------
------------------------------- -- -

结论

vsl-nearley 是一个优秀的包,它使自定义编程语言的编写变得非常容易。使用它,您可以快速构建自定义的语法解析器,并轻松地在您的程序中使用该解析器。感谢您的阅读,祝您成功!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055b8481e8991b448d918d

纠错
反馈