0
所以我寫一個小語言,我使用antlrv4作爲我的工具。當你編譯你的語法文件(.g4)時,Antlr自動生成詞法分析器和解析器文件。我正在使用javac btw。我想我的語言沒有分號,我想這樣做的方式是:如果在一行中有一個標識符或「)」作爲最後一個標記,詞法分析器會自動輸入分號(類似於「go」語言一樣)。我將如何處理這樣的事情?在詞法分析器文件中還有其他的東西,比如ATN(我認爲是擴充的轉換網絡)和dfa(我認爲它是確定性有限自動機),我不明白它們與lexing過程之間的關係。任何幫助表示讚賞。 (順便說一句,我仍然在研究語法文件,所以我沒有完全完成)。修改ANTLR v4自動生成的詞法分析器?
我不想要分號,因爲我相信它們主要是針對解析器的嗎?我想到了你的建議,使得它在解析器語法中是可選的,但分號也標記了行或語句的結尾。例如:假設我有print p5abc並且比下一行有打印10.分析器如何知道下一行中的print 10不是第一行中的字符串的一部分。即字符串isnt p5abcprint10?通過自動添加分號,我可以省略它們在程序中的使用,同時仍然保留分號的功能?我希望這是有道理的。 :( – vaish