簡體   English   中英

如何使用 PEG.js 的示例

[英]Example of how to use PEG.js

我在玩PEG.js

我創建了一些簡單的代碼來接受 [LettersNumbers] 形式的輸入:

  • abc123
  • 你好98765
  • 等等。

這是代碼:

start = expression 

expression = text + number

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

number = 
b:[0-9]+
{return b.join("");}

這里:在線版本可以測試代碼並下載解析器,另外我下載了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>

但是得到了這些錯誤:

未捕獲的 ReferenceError:未定義模塊
未捕獲的類型錯誤:PEG 不是函數

有人可以為我提供一個工作示例嗎? 我只需要將生成的 js 文件集成到網站中。

此答案假定您希望繼續使用 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>

Plunker 示例

如果你想在網絡上使用它,你需要下載瀏覽器版本,或者從 CDN 引用它。

此外,您需要使用其javascriptAPI來創建解析器。

 // One line version of your grammer. var parser = PEG.buildParser('start = expression;expression = text + number;text = a: [az]+{return a.join("");};number = b:[0-9]+{return b.join("");}'); console.log(parser.parse("test123"));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/pegjs/0.7.0/peg.min.js"></script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM