2012-03-31 128 views
0

我目前使用ANTLR網站的Python 2.5樣本。我真的想知道這個語法是否已經產生了語義。如果沒有,我可以做些什麼,或者我可以用什麼工具(工具)在用ANTLR解析之後爲python生成語義?ANTLR是否提供語義

回答

2

沒有工具可以生成語言的語義,這是你必須實現的東西。

既然您已經分析了Python代碼,那麼您可以先做一些必要的處理,再將其作爲Python代碼輸出,並使用現有的Python語言實現來執行。

+0

地說,我對我怎麼會做語義完全不知道,你能不能建議我可以用來創建語義的任何資源? – marchemike 2012-03-31 11:55:05

+0

該語言在Python語言參考中進行了描述:http://docs.python.org/reference/這是學習Python語言語義的最佳選擇。 – 2012-03-31 11:57:06

1

ANTLR處理解析,但不處理語義;畢竟它是一個解析器生成工具。如果你添加了語義,你會得到一個完整的python實現(模擬庫)。

1

ANTLR允許您根據與語法規則相關的操作指定語義。對於簡單的任務來說,這可能會很方便,但對於較大的語法,通常所做的就是生成一個AST(抽象語法樹),即表示解析出的內容比從一個非常長的字符串中處理程序更方便。

無論有多少,這是包含在正在使用的例子是比較硬,沒有看到代碼;-)

+0

import_as_name :NAME(NAME NAME)? \t;這是一個語義學的例子嗎? – marchemike 2012-03-31 13:50:26

+0

不是這是一個語法規則,即如何形成正確的程序的描述。語義是代碼來查找'import'語句中提到的模塊並開始讀取它的指令。 – 2012-03-31 14:27:29