InternalXbase.g:617:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
356848
public final void ruleOpPostfix() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:621:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
            // InternalXbase.g:622:2: ( ( rule__OpPostfix__Alternatives ) )
            {
            // InternalXbase.g:622:2: ( ( rule__OpPostfix__Alternatives ) )
            // InternalXbase.g:623:3: ( rule__OpPostfix__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
            }
            // InternalXbase.g:624:3: ( rule__OpPostfix__Alternatives )
            // InternalXbase.g:624:4: rule__OpPostfix__Alternatives
            {
            pushFollow(FOLLOW_2);
            rule__OpPostfix__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpPostfixAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
828978
public final void synpred37_InternalPureXbase_fragment() throws RecognitionException {   
        // InternalPureXbase.g:4542:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
        // InternalPureXbase.g:4542:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
        {
        // InternalPureXbase.g:4542:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
        // InternalPureXbase.g:4543:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
        {
        // InternalPureXbase.g:4543:6: ( ( ruleJvmTypeReference ) )
        // InternalPureXbase.g:4544:7: ( ruleJvmTypeReference )
        {
        // InternalPureXbase.g:4544:7: ( ruleJvmTypeReference )
        // InternalPureXbase.g:4545:8: ruleJvmTypeReference
        {
        pushFollow(FOLLOW_12);
        ruleJvmTypeReference();

        state._fsp--;
        if (state.failed) return ;

        }


        }

        // InternalPureXbase.g:4548:6: ( ( ruleValidID ) )
        // InternalPureXbase.g:4549:7: ( ruleValidID )
        {
        // InternalPureXbase.g:4549:7: ( ruleValidID )
        // InternalPureXbase.g:4550:8: ruleValidID
        {
        pushFollow(FOLLOW_2);
        ruleValidID();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }
    }
155246
public final void ruleXAnnotationOrExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbaseWithAnnotations.g:171:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
            // InternalXbaseWithAnnotations.g:172:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
            {
            // InternalXbaseWithAnnotations.g:172:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
            // InternalXbaseWithAnnotations.g:173:3: ( rule__XAnnotationOrExpression__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
            }
            // InternalXbaseWithAnnotations.g:174:3: ( rule__XAnnotationOrExpression__Alternatives )
            // InternalXbaseWithAnnotations.g:174:4: rule__XAnnotationOrExpression__Alternatives
            {
            pushFollow(FOLLOW_2);
            rule__XAnnotationOrExpression__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
661153
public final void ruleXBlockExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:1071:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
            // InternalXbase.g:1072:2: ( ( rule__XBlockExpression__Group__0 ) )
            {
            // InternalXbase.g:1072:2: ( ( rule__XBlockExpression__Group__0 ) )
            // InternalXbase.g:1073:3: ( rule__XBlockExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
            }
            // InternalXbase.g:1074:3: ( rule__XBlockExpression__Group__0 )
            // InternalXbase.g:1074:4: rule__XBlockExpression__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__XBlockExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
75698
public final void ruleOpAnd() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:246:2: ( ( '&&' ) )
            // InternalXbase.g:247:2: ( '&&' )
            {
            // InternalXbase.g:247:2: ( '&&' )
            // InternalXbase.g:248:3: '&&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
            }
            match(input,15,FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
458115
public final void ruleAbstractToken() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:433:2: ( ( ( rule__AbstractToken__Alternatives ) ) )
            // InternalXtext.g:434:2: ( ( rule__AbstractToken__Alternatives ) )
            {
            // InternalXtext.g:434:2: ( ( rule__AbstractToken__Alternatives ) )
            // InternalXtext.g:435:3: ( rule__AbstractToken__Alternatives )
            {
             before(grammarAccess.getAbstractTokenAccess().getAlternatives()); 
            // InternalXtext.g:436:3: ( rule__AbstractToken__Alternatives )
            // InternalXtext.g:436:4: rule__AbstractToken__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__AbstractToken__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getAbstractTokenAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
539628
public final void ruleXExpressionInClosure() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:821:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
            // InternalXbase.g:822:2: ( ( rule__XExpressionInClosure__Group__0 ) )
            {
            // InternalXbase.g:822:2: ( ( rule__XExpressionInClosure__Group__0 ) )
            // InternalXbase.g:823:3: ( rule__XExpressionInClosure__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
            }
            // InternalXbase.g:824:3: ( rule__XExpressionInClosure__Group__0 )
            // InternalXbase.g:824:4: rule__XExpressionInClosure__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__XExpressionInClosure__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
915851
public final void synpred37_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:4699:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
        // InternalXbaseWithAnnotations.g:4699:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        {
        // InternalXbaseWithAnnotations.g:4699:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        // InternalXbaseWithAnnotations.g:4700:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
        {
        // InternalXbaseWithAnnotations.g:4700:7: ()
        // InternalXbaseWithAnnotations.g:4701:7: 
        {
        }

        // InternalXbaseWithAnnotations.g:4702:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
        int alt132=2;
        int LA132_0 = input.LA(1);

        if ( (LA132_0==RULE_ID||LA132_0==14||LA132_0==39) ) {
            alt132=1;
        }
        switch (alt132) {
            case 1 :
                // InternalXbaseWithAnnotations.g:4703:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                {
                // InternalXbaseWithAnnotations.g:4703:8: ( ( ruleJvmFormalParameter ) )
                // InternalXbaseWithAnnotations.g:4704:9: ( ruleJvmFormalParameter )
                {
                // InternalXbaseWithAnnotations.g:4704:9: ( ruleJvmFormalParameter )
                // InternalXbaseWithAnnotations.g:4705:10: ruleJvmFormalParameter
                {
                pushFollow(FOLLOW_43);
                ruleJvmFormalParameter();

                state._fsp--;
                if (state.failed) return ;

                }


                }

                // InternalXbaseWithAnnotations.g:4708:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                loop131:
                do {
                    int alt131=2;
                    int LA131_0 = input.LA(1);

                    if ( (LA131_0==15) ) {
                        alt131=1;
                    }


                    switch (alt131) {
                	case 1 :
                	    // InternalXbaseWithAnnotations.g:4709:9: ',' ( ( ruleJvmFormalParameter ) )
                	    {
                	    match(input,15,FOLLOW_22); if (state.failed) return ;
                	    // InternalXbaseWithAnnotations.g:4710:9: ( ( ruleJvmFormalParameter ) )
                	    // InternalXbaseWithAnnotations.g:4711:10: ( ruleJvmFormalParameter )
                	    {
                	    // InternalXbaseWithAnnotations.g:4711:10: ( ruleJvmFormalParameter )
                	    // InternalXbaseWithAnnotations.g:4712:11: ruleJvmFormalParameter
                	    {
                	    pushFollow(FOLLOW_43);
                	    ruleJvmFormalParameter();

                	    state._fsp--;
                	    if (state.failed) return ;

                	    }


                	    }


                	    }
                	    break;

                	default :
                	    break loop131;
                    }
                } while (true);


                }
                break;

        }

        // InternalXbaseWithAnnotations.g:4717:7: ( ( '|' ) )
        // InternalXbaseWithAnnotations.g:4718:8: ( '|' )
        {
        // InternalXbaseWithAnnotations.g:4718:8: ( '|' )
        // InternalXbaseWithAnnotations.g:4719:9: '|'
        {
        match(input,57,FOLLOW_2); if (state.failed) return ;

        }


        }


        }


        }
    }
526818
public final void ruleTerminalTokenElement() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:1208:2: ( ( ( rule__TerminalTokenElement__Alternatives ) ) )
            // InternalXtext.g:1209:2: ( ( rule__TerminalTokenElement__Alternatives ) )
            {
            // InternalXtext.g:1209:2: ( ( rule__TerminalTokenElement__Alternatives ) )
            // InternalXtext.g:1210:3: ( rule__TerminalTokenElement__Alternatives )
            {
             before(grammarAccess.getTerminalTokenElementAccess().getAlternatives()); 
            // InternalXtext.g:1211:3: ( rule__TerminalTokenElement__Alternatives )
            // InternalXtext.g:1211:4: rule__TerminalTokenElement__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__TerminalTokenElement__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getTerminalTokenElementAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
1291245
@Override
  public void exitPostfix_version(VersionParser.Postfix_versionContext ctx)
  {
    SemanticVersion version = null;

    int count = ctx.getChildCount();
    Object o = stack.pop();
    if (!(o instanceof String)) {
      throw new InvalidRangeRuntimeException("Expected string, got " + o.getClass().getSimpleName() + " (" + o + ")");
    }
    String postfix = (String) o;
    switch (count) {
      case 4: {
        //1.2.3alpha
        switch (postfix.toUpperCase()) {
          case "RELEASE":
          case "FINAL":
          case "GA":
            version = new SemanticVersion(
                ctx.getChild(0).getText() + "."
                    + ctx.getChild(2).getText());
            break;
          default:
            version = new SemanticVersion(
                ctx.getChild(0).getText() + "."
                    + ctx.getChild(2).getText() + "."
                    + "0" + "-"
                    + postfix);
            break;
        }
        break;
      }
      case 5:
        version = new SemanticVersion(
            ctx.getChild(0).getText() + "."
                + ctx.getChild(2).getText() + "."
                + "0" + "-"
                + postfix);
        break;
      case 6: {
        //1.2.3alpha
        switch (postfix.toUpperCase()) {
          case "RELEASE":
          case "FINAL":
          case "GA":
            version = new SemanticVersion(
                ctx.getChild(0).getText() + "."
                    + ctx.getChild(2).getText() + "."
                    + ctx.getChild(4).getText());
            break;
          default:
            version = new SemanticVersion(
                ctx.getChild(0).getText() + "."
                    + ctx.getChild(2).getText() + "."
                    + ctx.getChild(4).getText() + "-"
                    + postfix);
            break;
        }
        break;
      }
      case 7: {
        //1.2.3-alpha
        //1.2.3.alpha
        switch (postfix.toUpperCase()) {
          case "RELEASE":
          case "FINAL":
          case "GA":
            version = new SemanticVersion(
                ctx.getChild(0).getText() + "."
                    + ctx.getChild(2).getText() + "."
                    + ctx.getChild(4).getText());
            break;
          default:
            version = new SemanticVersion(
                ctx.getChild(0).getText() + "."
                    + ctx.getChild(2).getText() + "."
                    + ctx.getChild(4).getText() + "-"
                    + postfix);
            break;
        }
        break;
      }
      case 8:
      case 9: {
        // 0.2.4.23-1-deb7u1
        int major = Integer.parseInt(ctx.getChild(0).getText());
        int minor = Integer.parseInt(ctx.getChild(2).getText());
        int patch = Integer.parseInt(ctx.getChild(4).getText());
        int build = Integer.parseInt(ctx.getChild(6).getText());
        version = new ExtendedSemanticVersion(major, minor, patch, build, postfix);
        break;
      }
    }
    stack.push(version);
  }
1333040
def _port_postfix(self):
        
        port = self.real_connection.port
        default_port = {'https': 443, 'http': 80}[self._protocol]
        return ':{}'.format(port) if port != default_port else ''
88076
public final void ruleAbstractNegatedToken() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:1258:2: ( ( ( rule__AbstractNegatedToken__Alternatives ) ) )
            // InternalXtext.g:1259:2: ( ( rule__AbstractNegatedToken__Alternatives ) )
            {
            // InternalXtext.g:1259:2: ( ( rule__AbstractNegatedToken__Alternatives ) )
            // InternalXtext.g:1260:3: ( rule__AbstractNegatedToken__Alternatives )
            {
             before(grammarAccess.getAbstractNegatedTokenAccess().getAlternatives()); 
            // InternalXtext.g:1261:3: ( rule__AbstractNegatedToken__Alternatives )
            // InternalXtext.g:1261:4: rule__AbstractNegatedToken__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__AbstractNegatedToken__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getAbstractNegatedTokenAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
441245
public final void synpred20_InternalXbase_fragment() throws RecognitionException {   
        // InternalXbase.g:2096:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
        // InternalXbase.g:2096:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
        {
        // InternalXbase.g:2096:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
        // InternalXbase.g:2097:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
        {
        // InternalXbase.g:2097:5: ()
        // InternalXbase.g:2098:5: 
        {
        }

        match(input,64,FOLLOW_44); if (state.failed) return ;
        match(input,49,FOLLOW_13); if (state.failed) return ;
        // InternalXbase.g:2101:5: ( ( ruleJvmFormalParameter ) )
        // InternalXbase.g:2102:6: ( ruleJvmFormalParameter )
        {
        // InternalXbase.g:2102:6: ( ruleJvmFormalParameter )
        // InternalXbase.g:2103:7: ruleJvmFormalParameter
        {
        pushFollow(FOLLOW_47);
        ruleJvmFormalParameter();

        state._fsp--;
        if (state.failed) return ;

        }


        }

        match(input,61,FOLLOW_2); if (state.failed) return ;

        }


        }
    }
143418
public final EObject ruleXPostfixOperation() throws RecognitionException {
        EObject current = null;

        EObject this_XMemberFeatureCall_0 = null;



        	enterRule();

        try {
            // InternalXbase.g:1520:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
            // InternalXbase.g:1521:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
            {
            // InternalXbase.g:1521:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
            // InternalXbase.g:1522:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
            {
            if ( state.backtracking==0 ) {

              			newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0());
              		
            }
            pushFollow(FOLLOW_21);
            this_XMemberFeatureCall_0=ruleXMemberFeatureCall();

            state._fsp--;
            if (state.failed) return current;
            if ( state.backtracking==0 ) {

              			current = this_XMemberFeatureCall_0;
              			afterParserOrEnumRuleCall();
              		
            }
            // InternalXbase.g:1530:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
            int alt22=2;
            int LA22_0 = input.LA(1);

            if ( (LA22_0==43) ) {
                int LA22_1 = input.LA(2);

                if ( (synpred13_InternalXbase()) ) {
                    alt22=1;
                }
            }
            else if ( (LA22_0==44) ) {
                int LA22_2 = input.LA(2);

                if ( (synpred13_InternalXbase()) ) {
                    alt22=1;
                }
            }
            switch (alt22) {
                case 1 :
                    // InternalXbase.g:1531:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
                    {
                    // InternalXbase.g:1541:4: ( () ( ( ruleOpPostfix ) ) )
                    // InternalXbase.g:1542:5: () ( ( ruleOpPostfix ) )
                    {
                    // InternalXbase.g:1542:5: ()
                    // InternalXbase.g:1543:6: 
                    {
                    if ( state.backtracking==0 ) {

                      						current = forceCreateModelElementAndSet(
                      							grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0(),
                      							current);
                      					
                    }

                    }

                    // InternalXbase.g:1549:5: ( ( ruleOpPostfix ) )
                    // InternalXbase.g:1550:6: ( ruleOpPostfix )
                    {
                    // InternalXbase.g:1550:6: ( ruleOpPostfix )
                    // InternalXbase.g:1551:7: ruleOpPostfix
                    {
                    if ( state.backtracking==0 ) {

                      							if (current==null) {
                      								current = createModelElement(grammarAccess.getXPostfixOperationRule());
                      							}
                      						
                    }
                    if ( state.backtracking==0 ) {

                      							newCompositeNode(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0());
                      						
                    }
                    pushFollow(FOLLOW_2);
                    ruleOpPostfix();

                    state._fsp--;
                    if (state.failed) return current;
                    if ( state.backtracking==0 ) {

                      							afterParserOrEnumRuleCall();
                      						
                    }

                    }


                    }


                    }


                    }
                    break;

            }


            }


            }

            if ( state.backtracking==0 ) {

              	leaveRule();

            }
        }

            catch (RecognitionException re) {
                recover(input,re);
                appendSkippedTokens();
            }
        finally {
        }
        return current;
    }
525759
public static void makePostfix(CSTNode node, boolean throwIfInvalid) {

        switch (node.getMeaning()) {
            case PLUS_PLUS:
                node.setMeaning(POSTFIX_PLUS_PLUS);
                break;

            case MINUS_MINUS:
                node.setMeaning(POSTFIX_MINUS_MINUS);
                break;

            default:
                if (throwIfInvalid) {
                    throw new GroovyBugError("cannot convert to postfix for type [" + node.getMeaning() + "]");
                }
        }

    }
440951
public final void synpred41_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:5032:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
        // InternalXbaseWithAnnotations.g:5032:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        {
        // InternalXbaseWithAnnotations.g:5032:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        // InternalXbaseWithAnnotations.g:5033:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
        {
        // InternalXbaseWithAnnotations.g:5033:7: ()
        // InternalXbaseWithAnnotations.g:5034:7: 
        {
        }

        // InternalXbaseWithAnnotations.g:5035:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
        int alt134=2;
        int LA134_0 = input.LA(1);

        if ( (LA134_0==RULE_ID||LA134_0==14||LA134_0==39) ) {
            alt134=1;
        }
        switch (alt134) {
            case 1 :
                // InternalXbaseWithAnnotations.g:5036:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                {
                // InternalXbaseWithAnnotations.g:5036:8: ( ( ruleJvmFormalParameter ) )
                // InternalXbaseWithAnnotations.g:5037:9: ( ruleJvmFormalParameter )
                {
                // InternalXbaseWithAnnotations.g:5037:9: ( ruleJvmFormalParameter )
                // InternalXbaseWithAnnotations.g:5038:10: ruleJvmFormalParameter
                {
                pushFollow(FOLLOW_43);
                ruleJvmFormalParameter();

                state._fsp--;
                if (state.failed) return ;

                }


                }

                // InternalXbaseWithAnnotations.g:5041:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                loop133:
                do {
                    int alt133=2;
                    int LA133_0 = input.LA(1);

                    if ( (LA133_0==15) ) {
                        alt133=1;
                    }


                    switch (alt133) {
                	case 1 :
                	    // InternalXbaseWithAnnotations.g:5042:9: ',' ( ( ruleJvmFormalParameter ) )
                	    {
                	    match(input,15,FOLLOW_22); if (state.failed) return ;
                	    // InternalXbaseWithAnnotations.g:5043:9: ( ( ruleJvmFormalParameter ) )
                	    // InternalXbaseWithAnnotations.g:5044:10: ( ruleJvmFormalParameter )
                	    {
                	    // InternalXbaseWithAnnotations.g:5044:10: ( ruleJvmFormalParameter )
                	    // InternalXbaseWithAnnotations.g:5045:11: ruleJvmFormalParameter
                	    {
                	    pushFollow(FOLLOW_43);
                	    ruleJvmFormalParameter();

                	    state._fsp--;
                	    if (state.failed) return ;

                	    }


                	    }


                	    }
                	    break;

                	default :
                	    break loop133;
                    }
                } while (true);


                }
                break;

        }

        // InternalXbaseWithAnnotations.g:5050:7: ( ( '|' ) )
        // InternalXbaseWithAnnotations.g:5051:8: ( '|' )
        {
        // InternalXbaseWithAnnotations.g:5051:8: ( '|' )
        // InternalXbaseWithAnnotations.g:5052:9: '|'
        {
        match(input,57,FOLLOW_2); if (state.failed) return ;

        }


        }


        }


        }
    }
161617
function parsePostfixExpression() {
  var expr = parseLeftHandSideExpressionAllowCall();

  if (lookahead.type === TokenPunctuator) {
    if ((match('++') || match('--'))) {
      throw new Error(DISABLED);
    }
  }

  return expr;
}