0
我想使用幾個詞法分析模式,它們共享相當一部分規則。在不同的詞法分析器模式下重複使用規則
「共享」規則也應該產生相同的標記。
到目前爲止,我必須這樣做,這是這樣的:
Id : [a-z]+;
// 50 other shared rules...
mode otherMode;
Id_otherMode : [a-z]+ {setType(Id);};
有沒有更好的方式來做到這一點?
我想使用幾個詞法分析模式,它們共享相當一部分規則。在不同的詞法分析器模式下重複使用規則
「共享」規則也應該產生相同的標記。
到目前爲止,我必須這樣做,這是這樣的:
Id : [a-z]+;
// 50 other shared rules...
mode otherMode;
Id_otherMode : [a-z]+ {setType(Id);};
有沒有更好的方式來做到這一點?
Id_otherMode : [a-z]+ {setType(Id);};
可以寫成
Id_otherMode :Id -> type(Id);
也爲更多的「優先級」 ID可以是片段
但我猜你需要聽到的是:不,你不能redifine相同令牌以不同的模式。也許重組模式...