( siposa | 2015. 04. 03., p – 08:11 )

Lehetne akár így is, de jellemzően a parserekben a '-' egy egyoperandusú prefix operátorként van definiálva, az integer pedig egy számmal kezdődő karaktersorozat (tehát eredendően pozitív).

Például itt egy grammar file PL/SQL-hez:.

A numerikus konstansban nem szerepel se '-' vagy '+' prefix:
TOKEN : /* Numeric Constants */
{
< S_NUMBER: <FLOAT>
| <FLOAT> ( ["e","E"] ([ "-","+"])? <FLOAT> )?
>
| < #FLOAT: <INTEGER>
| <INTEGER> ( "." <INTEGER> )?
| "." <INTEGER>
>
| < #INTEGER: ( <DIGIT> )+ >
| < #DIGIT: ["0" - "9"] >
}

Később egytagú kifejezésként definiálja a negálást, aminek a paramétere lehet konstans is:
void PlSqlUnaryExpression():
{}
{
(("+" | "-") PlSqlPrimaryExpression())
|
PlSqlPrimaryExpression()
}

void PlSqlPrimaryExpression():
{}
{
<S_NUMBER>
| <S_CHAR_LITERAL>
[...]
}