1

我試圖優化我的JavaCC解析器和我有一個關於在語法定義定義標記問題。最好的方法定義標記

這是好還是不好的做法?它是否會影響解析器的性能?

例如:

void name() : 
{ 
    Token name; 
} 
{ 
    name = < NAME : (<LETTER> | <DIGIT>){2, 7}> 
    { 
    System.out.println(name.image); 
    } 
} 

回答

2

這不會影響性能,但會影響到可讀性和可維護性。請記住,令牌定義的順序可能會影響含義。我建議將所有令牌定義放在前面。