如何使用 PEG.js 的示例

Evg*_*nik 3 javascript peg pegjs

我在玩PEG.js。

我创建了一些简单的代码来接受 [LettersNumbers] 形式的输入:

  • abc123
  • 你好98765
  • 等等。

这是代码:

start = expression 

expression = text + number

text = 
a: [a-z]+
{return a.join("");}

number = 
b:[0-9]+
{return b.join("");}
Run Code Online (Sandbox Code Playgroud)

这里:在线版本可以测试代码并下载解析器,另外我下载了peg.js本身。

不幸的是,文档非常稀少。我试过:

<script src="peg-0.9.0.min.js"></script>
<script src="parser.js"></script>
<script>
var parser = new PEG;
parser.parse("test123");
</script>
Run Code Online (Sandbox Code Playgroud)

但是得到了这些错误:

未捕获的引用错误:未定义模块未
捕获的类型错误:PEG 不是函数

有人可以为我提供一个工作示例吗?我只需要将生成的 js 文件集成到网站中。

joe*_*ews 5

此答案假定您希望继续使用 PEG.js 在线版本来构建解析器。

只有在网页peg-0.9.0.min.js中生成解析器时才需要。由于您使用 PEG.js 在线版本来生成解析器,因此您不需要这样做。

您确实需要包含下载的parser.js. 需要在 PEG.js 网页版中指定浏览器友好的全局变量并重新下载。

此示例使用PARSER:

在此处输入图片说明

之后,您可以使用:

<script src="parser.js"></script>
<script>
PARSER.parse("test123");
</script>
Run Code Online (Sandbox Code Playgroud)

Plunker 示例

  • 不,可以从 devtool 轻松查看 parser.js。不同之处在于 joews 为您提供了一个已经可用的解析器,而我的需要从给定的语法构建,并让您能够构建不同的语法,如果您只有一个语法,则使用 joews 会更好。 (3认同)