我需要解析的命令外殼,如:Antlr3解析器路徑命令外殼
cp /home/test /home/test2
我的問題是在正確的路徑解析。
我定義的規則(我不能使用令牌路徑,但我需要在解析器來定義它):
path : ('/' ID)+;
與
ID: (A.. Z | a.. z) +;
WS: (' ') {$channel = HIDDEN;};
我需要保持令牌WS隱藏的,但是這給了我這個例子中的2條路徑被認爲是單一路徑的問題。
我該如何解決這個問題?
感謝
我想你現在想擴大命令規則,例如: command:'cp'first = path second = path'\ n'{...} |'del'path {... you只有一條路徑用於你的行爲中使用此規則} |'比較'第一=路徑第二=路徑第三=路徑{在這裏把你的代碼來比較第一個和第二個地方在第三個};; 當然,這也會使CMD詞法分析規則無用(不要求)。但也可以有其他方法來使這些工作成功。 – WayneH 2010-02-03 16:44:03
好吧,我很欣賞這個快速答案,但在我的情況下它不起作用,因爲其他規則強制我不將該路徑定義爲標記(FILE)。 從我的代碼開始(將路徑定義爲單個標記),可以使用空格(隱藏標記)作爲分隔符? – Nio 2010-02-03 17:24:33