簡體   English   中英

從ANTLR語法創建樹

[英]Creating a Tree from an ANTLR Grammar

我已經編寫了ANTLR語法文件,現在我需要生成一個鄰接矩陣,告訴我語法中的哪個規則與哪個規則相關。 例如:-開始:(“顯示” |“給定” |“獲取”)“我”(“全部”)? 詞組| “我”,“想要”,“喜歡”(“全部”)? 詞組| 短語;

短語:constructPhrase((和)?constructPhrase)* | ConstructPhrase'和'('其'|'他們的') ConstructPhrase功能 functionPhrase;

在這里,我們希望彼此關聯。所以我需要閱讀語法文件並生成一個鄰接矩陣。

我在github https://github.com/julianthome/inmemantlr上創建了一個項目,該項目采用g4語法定義和一個文本文件,其中包含要解析的實際內容。 它會自動為您生成一個AST,其中節點確實包含解析規則和與該規則關聯的令牌。 這可能對您有用。

它是用Java編寫的-您可以插入任何您喜歡的g4文件...解析器生成和AST生成是自動完成的。 在測試案例中可以找到代碼示例。

最好的祝願和親切的問候朱利安

解析ANTLR語法並不困難。 在MySQL Workbench中,這是我的代碼完成實現的一部分。

您需要ANTLR元語法並從中生成一個解析器。 然后使用它將您自己的語法加載到可用於生成矩陣的結構中。

首先,您可以使用我創建的ANTLR語法解析器 ,但這是針對C / C ++目標而不是Java。 因此,您必須從ANTLR主頁獲取ANTLR3.g文件,並從中創建自己的解析器。

暫無
暫無

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

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