2013-07-09 28 views
1

我有我的代碼的幾種情況,如:如何防止標識符和字符串關鍵字從破壞其他

get?(id?:string): any; 

更糟:

export function urlAppend(url?:string, string?:string): string; 

在我的解析器,我已經'get''string'定義作爲幾個規則的一部分,這意味着它被隱式地放入詞法分析器中。但是,對於屬性和方法名稱,它們也需要分類爲Identifiers

有沒有辦法讓我這個工作?

(語法是JavaScript和打字原稿,如果有幫助。)

回答

1

ANTLR分配令牌類型確定性在詞法分析器。如果您的語言中有上下文相關的關鍵字,則可以在解析器中定義identifier規則來處理它:

identifier 
    : Identifier 
    | 'get' 
    | 'string' 
    | ... // other context-sensitive keywords 
    ;