【发布时间】:2014-08-01 06:27:37
【问题描述】:
我正在使用 Antlr4 进行命令行解析。
我的语法格式是
命令:子命令1 |子命令2
子命令 1:“子 1”选项 1 选项 2
subcommand2: 'sub2' option3 option4
option1:'-option1' ID
选项 2:'-选项 2' ID
option3 : '-option3' ID
option4 : '-option4' ID
编号:[a-zA-Z0-9]+
我希望每个子命令的选项不区分顺序
例如,子命令 -option1 ABC -option2 PQR 应被视为有效输入
以及子命令 -option2 PQR -option1 ABC 也应该被视为有效输入
改变语法的一种蛮力方法可能是
子命令 1:'sub1'(选项 1 选项 2 | 选项 2 选项 1)
subcommand2: 'sub2' (option3 option4 | option3 option4)
但这并不能使其具有通用性,并且再添加一个选项将需要列出 6 个选项排列。
有没有简单的方法?
【问题讨论】:
-
另见 Jim 在 google 群组中的回答:groups.google.com/forum/#!topic/antlr-discussion/3F8f4eYOS6k
标签: command-line antlr4