CommonTree ge=null;
CommonTree n=null;
ValueBoundary vb = new ValueBoundary();
b = vb;
try {
// QSpecBuilder.g:261:1: ( ^( FOLLOWING UNBOUNDED ) | ^( PRECEDING UNBOUNDED ) | CURRENT | ^( LESS ge= GROOVYEXPRESSION n= NUMBER ) | ^( MORE GROOVYEXPRESSION NUMBER ) )
int alt21=5;
switch ( input.LA(1) ) {
case FOLLOWING:
{
alt21=1;
}
break;
case PRECEDING:
{
alt21=2;
}
break;
case CURRENT:
{
alt21=3;
}
break;
case LESS:
{
alt21=4;
}
break;
case MORE:
{
alt21=5;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("255:1: valuesboundary returns [Boundary b] : ( ^( FOLLOWING UNBOUNDED ) | ^( PRECEDING UNBOUNDED ) | CURRENT | ^( LESS ge= GROOVYEXPRESSION n= NUMBER ) | ^( MORE GROOVYEXPRESSION NUMBER ) );", 21, 0, input);
throw nvae;
}
switch (alt21) {
case 1 :
// QSpecBuilder.g:262:3: ^( FOLLOWING UNBOUNDED )
{
match(input,FOLLOWING,FOLLOW_FOLLOWING_in_valuesboundary788);
match(input, Token.DOWN, null);
match(input,UNBOUNDED,FOLLOW_UNBOUNDED_in_valuesboundary790);
match(input, Token.UP, null);
RangeBoundary rb = new RangeBoundary();
rb.setDirection(Direction.FOLLOWING);
rb.setAmt(Boundary.UNBOUNDED_AMOUNT);
b = rb;
}
break;
case 2 :
// QSpecBuilder.g:268:3: ^( PRECEDING UNBOUNDED )
{
match(input,PRECEDING,FOLLOW_PRECEDING_in_valuesboundary801);
match(input, Token.DOWN, null);
match(input,UNBOUNDED,FOLLOW_UNBOUNDED_in_valuesboundary803);
match(input, Token.UP, null);
RangeBoundary rb = new RangeBoundary();
rb.setDirection(Direction.PRECEDING);
rb.setAmt(Boundary.UNBOUNDED_AMOUNT);
b = rb;
}
break;
case 3 :
// QSpecBuilder.g:274:3: CURRENT
{
match(input,CURRENT,FOLLOW_CURRENT_in_valuesboundary814);
b = new CurrentRow();
}
break;
case 4 :
// QSpecBuilder.g:275:3: ^( LESS ge= GROOVYEXPRESSION n= NUMBER )
{
match(input,LESS,FOLLOW_LESS_in_valuesboundary823);
match(input, Token.DOWN, null);
ge=(CommonTree)input.LT(1);
match(input,GROOVYEXPRESSION,FOLLOW_GROOVYEXPRESSION_in_valuesboundary827);
n=(CommonTree)input.LT(1);
match(input,NUMBER,FOLLOW_NUMBER_in_valuesboundary831);
match(input, Token.UP, null);
vb.setDirection(Direction.PRECEDING);
vb.setExprString(ge.getText());
vb.setAmt(Integer.parseInt(n.getText()));
}
break;
case 5 :
// QSpecBuilder.g:280:3: ^( MORE GROOVYEXPRESSION NUMBER )
{
match(input,MORE,FOLLOW_MORE_in_valuesboundary841);
match(input, Token.DOWN, null);
match(input,GROOVYEXPRESSION,FOLLOW_GROOVYEXPRESSION_in_valuesboundary843);
match(input,NUMBER,FOLLOW_NUMBER_in_valuesboundary845);
match(input, Token.UP, null);
vb.setDirection(Direction.FOLLOWING);
vb.setExprString(ge.getText());
vb.setAmt(Integer.parseInt(n.getText()));
}
break;