// $ANTLR start ruleunary_operator
// ../org.csu.idl.xtext/src-gen/org/csu/idl/xtext/parser/antlr/internal/InternalIDL.g:5534:1: ruleunary_operator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '-' | kw= '+' | kw= '~' ) ;
public final AntlrDatatypeRuleToken ruleunary_operator() throws RecognitionException {
AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
Token kw=null;
setCurrentLookahead(); resetLookahead();
try {
// ../org.csu.idl.xtext/src-gen/org/csu/idl/xtext/parser/antlr/internal/InternalIDL.g:5539:6: ( (kw= '-' | kw= '+' | kw= '~' ) )
// ../org.csu.idl.xtext/src-gen/org/csu/idl/xtext/parser/antlr/internal/InternalIDL.g:5540:1: (kw= '-' | kw= '+' | kw= '~' )
{
// ../org.csu.idl.xtext/src-gen/org/csu/idl/xtext/parser/antlr/internal/InternalIDL.g:5540:1: (kw= '-' | kw= '+' | kw= '~' )
int alt73=3;
switch ( input.LA(1) ) {
case 64:
{
alt73=1;
}
break;
case 63:
{
alt73=2;
}
break;
case 68:
{
alt73=3;
}
break;
default:
if (backtracking>0) {failed=true; return current;}
NoViableAltException nvae =
new NoViableAltException("5540:1: (kw= '-' | kw= '+' | kw= '~' )", 73, 0, input);
throw nvae;
}
switch (alt73) {
case 1 :
// ../org.csu.idl.xtext/src-gen/org/csu/idl/xtext/parser/antlr/internal/InternalIDL.g:5541:2: kw= '-'
{
kw=(Token)input.LT(1);
match(input,64,FollowSets000.FOLLOW_64_in_ruleunary_operator9963); if (failed) return current;
if ( backtracking==0 ) {
current.merge(kw);
createLeafNode(grammarAccess.getUnary_operatorAccess().getHyphenMinusKeyword_0(), null);
}
}
break;
case 2 :
// ../org.csu.idl.xtext/src-gen/org/csu/idl/xtext/parser/antlr/internal/InternalIDL.g:5548:2: kw= '+'
{
kw=(Token)input.LT(1);
match(input,63,FollowSets000.FOLLOW_63_in_ruleunary_operator9982); if (failed) return current;
if ( backtracking==0 ) {
current.merge(kw);
createLeafNode(grammarAccess.getUnary_operatorAccess().getPlusSignKeyword_1(), null);
}
}
break;
case 3 :
// ../org.csu.idl.xtext/src-gen/org/csu/idl/xtext/parser/antlr/internal/InternalIDL.g:5555:2: kw= '~'
{
kw=(Token)input.LT(1);
match(input,68,FollowSets000.FOLLOW_68_in_ruleunary_operator10001); if (failed) return current;
if ( backtracking==0 ) {
current.merge(kw);
createLeafNode(grammarAccess.getUnary_operatorAccess().getTildeKeyword_2(), null);
}
}