我目前使用AntLR來解析某些專有語言的文件。 我需要在編輯器上突出顯示它的各個部分(例如,突出顯示Java類中的方法)。使用AntLR獲取開始和結束位置
有沒有人有提示如何讓他們? 說我有這樣的代碼:
function test(param1, param2) {
}
作爲函數是一個關鍵字,所述第一位置I在分析器得到的是標識符「測試」中的一個。我怎樣才能從那裏獲得職位直到結束大括號?正如人們所期望的那樣,參數列表是動態的,所以您不會提前知道它的長度。
謝謝!
我目前使用AntLR來解析某些專有語言的文件。 我需要在編輯器上突出顯示它的各個部分(例如,突出顯示Java類中的方法)。使用AntLR獲取開始和結束位置
有沒有人有提示如何讓他們? 說我有這樣的代碼:
function test(param1, param2) {
}
作爲函數是一個關鍵字,所述第一位置I在分析器得到的是標識符「測試」中的一個。我怎樣才能從那裏獲得職位直到結束大括號?正如人們所期望的那樣,參數列表是動態的,所以您不會提前知道它的長度。
謝謝!
如果我明白你的問題,我想你可以使用屬性「POS」每個令牌
func: FUNCTION ID '(' ID (',' ID)* ')' {
System.out.println("Position = " + $FUNCTION.pos);
}
它指的是行從零開始計數中的字符位置。
不太理解你爲什麼第一個職位是測試的位置。如果正確設計了模式規範,則應該很容易獲得「函數」標記的字符偏移量。你能列出規範的相關部分嗎?
你是對的,我會重新解釋這個問題。 – pgb 2008-11-11 17:30:17