return self; }
	private final JMethodDeclaration  jMethodDefinition(		int modifiers, CType type	) throws RecognitionException, TokenStreamException {		JMethodDeclaration self = null;				Token  name = null;				JFormalParameter[]	parameters;		int			bounds = 0;		CClassType[]		throwsList = CClassType.EMPTY;		JStatement[]		body = null;		TokenReference	sourceRef = buildTokenReference();		JavadocComment	javadoc = getJavadocComment();		JavaStyleComment[]	comments = getStatementComment();						name = LT(1);		match(IDENT);		match(LPAREN);		parameters=jParameterDeclarationList(JLocalVariable.DES_PARAMETER);		match(RPAREN);		{		_loop59:		do {			if ((LA(1)==LBRACK)) {				match(LBRACK);				match(RBRACK);				if ( inputState.guessing==0 ) {					bounds += 1;				}			}			else {				break _loop59;			}					} while (true);		}		if ( inputState.guessing==0 ) {						if (bounds > 0) {				reportTrouble(new CWarning(sourceRef, KjcMessages.OLD_STYLE_ARRAY_BOUNDS, null));				type = new CArrayType(type, bounds);			}					}		{		switch ( LA(1)) {		case LITERAL_throws:		{			throwsList=jThrowsClause();			break;		}		case LCURLY:		case SEMI:		{			break;		}		default:		{			throw new NoViableAltException(LT(1), getFilename());		}		}		}		{		switch ( LA(1)) {		case LCURLY:		{			body=jCompoundStatement();			break;		}		case SEMI:		{			match(SEMI);			break;		}		default:		{			throw new NoViableAltException(LT(1), getFilename());		}		}		}		if ( inputState.guessing==0 ) {						self = new JMethodDeclaration(sourceRef,							    modifiers,							    type,							    name.getText(),							    parameters,							    throwsList,							    body == null ? null : new JBlock(sourceRef, body, null),							    javadoc,							    comments);					}		return self;	}