// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:396:1: basicParameterDeclaration : ( CONST )? ident ( typeExpression )? ( parameterDefault )? -> ^( PARAM ( CONST )? ident ( typeExpression )? ( parameterDefault )? ) ;
public final basicParameterDeclaration_return basicParameterDeclaration() throws RecognitionException {
basicParameterDeclaration_return retval = new basicParameterDeclaration_return();
retval.start = input.LT(1);
LinkedListTree root_0 = null;
Token CONST105=null;
ident_return ident106 = null;
typeExpression_return typeExpression107 = null;
parameterDefault_return parameterDefault108 = null;
LinkedListTree CONST105_tree=null;
RewriteRuleTokenStream stream_CONST=new RewriteRuleTokenStream(adaptor,"token CONST");
RewriteRuleSubtreeStream stream_ident=new RewriteRuleSubtreeStream(adaptor,"rule ident");
RewriteRuleSubtreeStream stream_typeExpression=new RewriteRuleSubtreeStream(adaptor,"rule typeExpression");
RewriteRuleSubtreeStream stream_parameterDefault=new RewriteRuleSubtreeStream(adaptor,"rule parameterDefault");
try {
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:397:2: ( ( CONST )? ident ( typeExpression )? ( parameterDefault )? -> ^( PARAM ( CONST )? ident ( typeExpression )? ( parameterDefault )? ) )
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:397:4: ( CONST )? ident ( typeExpression )? ( parameterDefault )?
{
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:397:4: ( CONST )?
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==CONST) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:397:4: CONST
{
CONST105=(Token)input.LT(1);
match(input,CONST,FOLLOW_CONST_in_basicParameterDeclaration1349); if (failed) return retval;
if ( backtracking==0 ) stream_CONST.add(CONST105);
}
break;
}
pushFollow(FOLLOW_ident_in_basicParameterDeclaration1352);
ident106=ident();
_fsp--;
if (failed) return retval;
if ( backtracking==0 ) stream_ident.add(ident106.getTree());
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:397:17: ( typeExpression )?
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==COLON) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:397:17: typeExpression
{
pushFollow(FOLLOW_typeExpression_in_basicParameterDeclaration1354);
typeExpression107=typeExpression();
_fsp--;
if (failed) return retval;
if ( backtracking==0 ) stream_typeExpression.add(typeExpression107.getTree());
}
break;
}
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:397:33: ( parameterDefault )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==ASSIGN) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:397:33: parameterDefault
{
pushFollow(FOLLOW_parameterDefault_in_basicParameterDeclaration1357);
parameterDefault108=parameterDefault();
_fsp--;
if (failed) return retval;
if ( backtracking==0 ) stream_parameterDefault.add(parameterDefault108.getTree());
}
break;
}
// AST REWRITE
// elements: typeExpression, ident, parameterDefault, CONST
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
if ( backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (LinkedListTree)adaptor.nil();
// 398:3: -> ^( PARAM ( CONST )? ident ( typeExpression )? ( parameterDefault )? )
{
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:398:6: ^( PARAM ( CONST )? ident ( typeExpression )? ( parameterDefault )? )
{
LinkedListTree root_1 = (LinkedListTree)adaptor.nil();
root_1 = (LinkedListTree)adaptor.becomeRoot(adaptor.create(PARAM, "PARAM"), root_1);
// C:\\catalysts\\agents\\agent01-1\\work\\7bc39bdff21d327d\\src\\main\\antlr\\org\\asdt\\core\\internal\\antlr\\AS3.g:398:14: ( CONST )?
if ( stream_CONST.hasNext() ) {
adaptor.addChild(root_1, stream_CONST.next());