如何为整数和标识符编写正则表达式:
整数由一个或多个数字0-9和 可以以减号“-”开头,例如246,-789。除非数字为0,否则数字不能以0开头。 0123,这是非法的。
标识符可以是字母,数字或以字母开头的下划线(_)的字符串。标识符不能为保留字。
这是我到目前为止所得到的,这是不正确的。我将如何编写上面在JavaCC中指定的正则表达式。
TOKEN :
{
< #LETTER: ["a"-"z","A"-"Z"] >
| < DIGIT: ["0"] | (["1"-"9"])+>
| < IDENTIFIER: < LETTER > | < DIGIT > | (< LETTER > | ["_"]) >
}
答案 0 :(得分:0)
您的问题有些不清楚。但是类似以下的内容可能会起作用
TOKEN :
{
< #LETTER: ["a"-"z","A"-"Z"] >
| < #DIGIT: ["0"-"9"]>
| < IDENTIFIER: <LETTER> ( <LETTER> | <DIGIT> | "_")* >
| < INTEGER: "0" | ("-")? ["1"-"9"] (<DIGIT>)* >
}
当然IDENTIFIER可能会匹配保留字,因此您还需要处理该方面。有关常见方法,请参见常见问题解答。
如果这是一项作业,请确保引用此答案。