2016-03-14 82 views
0

我解析命令行參數的程序
例如:--param1 value1 --param2 value2
的JavaCC語法衝突的令牌

當該值是一個破折號前面的String( - )例如:--param1 -value1這是一個詞法錯誤。
我該如何修改語法來接受像上面這樣的輸入?

<STRING : (["A"-"Z" , "a"-"z" , "0"-"9"])+ > 
<PARAMNAME : "--"(<STRING>) > 
+0

http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html我知道沒有人需要那麼嚴重,也不I.但是如果你可以自由地定義命令行參數並且有一種標準......爲什麼不堅持呢? – BitTickler

+0

@BitTickler我必須支持該程序的-value語法。我想爲一個奇怪的計算器程序說,這種語法也是需要的。 (--add 5 - multiplyly -2 --add -10 --divideby 12) – Dinushan

+0

在'['? –

回答

1

,你可以到這個

<VALUE: ("-")? <NAME> > 
<PARAMNAME : "--" <NAME> > 
<#NAME : (["A"-"Z" , "a"-"z" , "0"-"9"])+ >