2
如何編寫下面的代碼而不需要繁瑣的任務?如何在一個命令中處理不同的語句?
statement returns [Leaf node]
: assignment {node = $assignment.node;}
| write {node = $write.node;}
| writeln {node = $writeln.node;}
| readBool {node = $readBool.node;}
| readInt {node = $readInt.node;}
;
下面的東西就足夠了。
statement returns [Leaf node]
: a=(assignment | write | writeln | ...) { //all statements returns `Leaf`
node = $a.node; //but 'a' is just a `Tokien`, so we get compile error.
};