javacc 语法冲突标记

javacc grammar conflicting tokens

我正在解析程序的命令行参数
例如:--param1 value1 --param2 value2

当值是一个字符串,前面有破折号 (-) 例如:--param1 -value1 这是一个词法错误。
我应该如何修改语法以接受上述输入?

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

你可以这样做

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