npm 包 vsl-nearley 使用教程

简介

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


猜你喜欢

  • npm 包 easy-react-scrollable-anchor 使用教程

    在 Web 开发中,我们经常会需要实现页面内跳转。传统的方法是通过锚点来实现,但当页面结构较为复杂时,往往需要大量的代码来实现。此时,我们可以使用 npm 包 easy-react-scrollabl...

    2 年前
  • npm 包 str-format 使用教程

    介绍 在前端开发中,我们经常需要合并字符串和变量,这种情况下我们可以手动使用字符串拼接函数 +,或者使用 ES6 中的模板字符串 ${}。但当变量较多时,手动拼接代码量变大,容易出错。

    2 年前
  • npm 包 sg-rc-slider 使用教程

    sg-rc-slider 是一个 React 组件库,提供了可定制的滑块、渐变色调色板和大小选择器等功能。本文将深入介绍该组件库的使用方法和相关示例代码,以帮助前端开发者更好地了解和应用。

    2 年前
  • npm 包 metalsmith-angular-templatecache 使用教程

    在前端开发中,我们经常需要使用 AngularJS 来搭建 web 应用程序。在 AngularJS 中,template 编写是非常重要的,因为它用来展示网站的内容。

    2 年前
  • npm 包 plus.tester 使用教程

    介绍 plus.tester 是一款前端测试工具,它可以帮助你快速进行单元测试和功能测试,保证你的代码质量和稳定性。该工具基于 mocha 和 chai,提供了一些额外的功能,比如异步测试、延迟运行测...

    2 年前
  • npm 包 fire-redux-example 使用教程

    如果您是一名前端开发人员,特别是在 React 和 Redux 的开发中需要使用 Firebase 的情况下,那么您会对 fire-redux-example 这个 npm 包很感兴趣。

    2 年前
  • npm 包 react-autocomplete-tags 使用教程

    react-autocomplete-tags 是一个帮助前端开发者快速构建标签输入框的 npm 包。它允许用户通过输入或选择现有的标签,并同时支持创建新的标签,是一个非常方便和易用的组件。

    2 年前
  • npm 包 Refelaxbox 使用教程

    Refelaxbox 是一个基于react的弹性盒子组件(flexbox),它使得前端布局变得更加灵活和高效,从而提高前端开发效率。在本文中,我们将介绍Refelaxbox包的使用方法,并提供示例代码...

    2 年前
  • npm 包 validation-hoc 使用教程

    在前端开发中,表单验证是一个非常重要的环节。为了简化表单验证的过程,我们可以选择使用现成的验证库。npm 包 validation-hoc 提供了一种方便的方式来实现表单验证。

    2 年前
  • npm包simple-react-firebase使用教程

    介绍 simple-react-firebase是一个适用于React应用程序的npm包,可以让您轻松地将Firebase集成到您的React应用程序中。Firebase是一个非常强大的云服务平台,可...

    2 年前
  • npm 包 @web-atrio/date-time-picker 使用教程

    在前端开发中,日期和时间选择器是一个必不可少的组件。@web-atrio/date-time-picker 就是一个强大的 npm 包,它提供了日期和时间选择器,可以帮助开发者快速构建完整的日期和时间...

    2 年前
  • npm 包 create-apps 使用教程

    我们在前端开发中会遇到很多需要快速创建应用及其某些基础模块的情况。假如能够有一个工具,让我们可以在几秒钟内创建出一个基本的应用,并且易于定制化,那该是多么方便。这时,create-apps这个NPM包...

    2 年前
  • npm 包 html2plaintext-2 使用教程

    在前端开发中,我们经常需要将 HTML 文本转换为纯文本,比如在搜索引擎优化、爬虫抓取等方面。而 npm 包 html2plaintext-2 可以很好地完成这个任务。

    2 年前
  • npm 包 dt-easy-pie-chart 使用教程

    简介 dt-easy-pie-chart 是一款基于 jQuery 和 CSS3 的简单环形图数据可视化工具,可以帮助你快速生成漂亮的环形图,并且支持响应式布局。该工具已经发布到 npm 上,并且可以...

    2 年前
  • npm 包 Storybook-adk 使用教程

    #npm 包 Storybook-adk 使用教程 ##简介 Storybook-adk 是一个基于 React 的 UI 元素库,在前端开发中扮演着重要角色。它为开发人员提供了模拟组件编写的功能,允...

    2 年前
  • npm 包 xbox-controller-360 使用教程

    简介 xbox-controller-360 是一个可在 Node.js 项目中使用的 npm 模块,用于接收 Xbox 360 手柄的输入数据。在前端开发中,玩家使用游戏手柄的情况越来越常见,而该模...

    2 年前
  • 前端技术文章:npm 包 @web-atrio/tabs-responsive 使用教程

    在前端开发中,我们经常会用到样式类似于选项卡的组件,而 @web-atrio/tabs-responsive 就是一个非常不错的 npm 包,可以帮助我们快速地实现这样的组件。

    2 年前
  • npm 包 json-to-pivot-json 使用教程

    在前端开发中,我们常常需要对数据进行整理和处理。而 json-to-pivot-json 是一个很好用的npm包,它可以将一个json数据集合转化成一个带有合计行和合计列的新json数据集合。

    2 年前
  • npm 包 my-ng2-cli-tools 使用教程

    概述 my-ng2-cli-tools 是一个基于 Angular 2 的 npm 包,可以帮助前端开发者快速生成模块和组件代码,并提供了一些实用的工具函数和组件。

    2 年前
  • npm 包 likin_acl 使用教程

    在前端开发中,许多项目都需要权限控制,这时候使用一些现成的 npm 包可以大大加快开发速度。本文介绍一个适用于 Node.js 的权限控制 npm 包 likin_acl 的使用教程。

    2 年前

相关推荐

    暂无文章