if ( synPredMatched1387 ) {
if ( synPredMatched1391 ) {
	public final void functionstate(AST _t) throws RecognitionException {				AST functionstate_AST_in = (_t == ASTNULL) ? null : (AST)_t;				AST __t1379 = _t;		AST tmp852_AST_in = (AST)_t;		match(_t,FUNCTION);		_t = _t.getFirstChild();		AST tmp853_AST_in = (AST)_t;		match(_t,ID);		_t = _t.getNextSibling();		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case RETURNS:		{			AST tmp854_AST_in = (AST)_t;			match(_t,RETURNS);			_t = _t.getNextSibling();			break;		}		case RETURN:		{			AST tmp855_AST_in = (AST)_t;			match(_t,RETURN);			_t = _t.getNextSibling();			break;		}		case CHARACTER:		case COMHANDLE:		case DATE:		case DECIMAL:		case HANDLE:		case INTEGER:		case LOGICAL:		case MEMPTR:		case RAW:		case RECID:		case ROWID:		case WIDGETHANDLE:		case DATETIME:		case DATETIMETZ:		case LONGCHAR:		case CLASS:		case TYPE_NAME:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case CLASS:		{			AST tmp856_AST_in = (AST)_t;			match(_t,CLASS);			_t = _t.getNextSibling();			AST tmp857_AST_in = (AST)_t;			match(_t,TYPE_NAME);			_t = _t.getNextSibling();			break;		}		case CHARACTER:		case COMHANDLE:		case DATE:		case DECIMAL:		case HANDLE:		case INTEGER:		case LOGICAL:		case MEMPTR:		case RAW:		case RECID:		case ROWID:		case WIDGETHANDLE:		case DATETIME:		case DATETIMETZ:		case LONGCHAR:		case TYPE_NAME:		{			datatype_var(_t);			_t = _retTree;			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case PRIVATE:		{			AST tmp858_AST_in = (AST)_t;			match(_t,PRIVATE);			_t = _t.getNextSibling();			break;		}		case PERIOD:		case FORWARDS:		case IN_KW:		case MAP:		case LEXCOLON:		case Parameter_list:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case Parameter_list:		{			function_params(_t);			_t = _retTree;			break;		}		case PERIOD:		case FORWARDS:		case IN_KW:		case MAP:		case LEXCOLON:		{			break;		}		default:		{			throw new NoViableAltException(_t);		}		}		}		{		if (_t==null) _t=ASTNULL;		switch ( _t.getType()) {		case FORWARDS:		{			AST tmp859_AST_in = (AST)_t;			match(_t,FORWARDS);			_t = _t.getNextSibling();			{			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case LEXCOLON:			{				AST tmp860_AST_in = (AST)_t;				match(_t,LEXCOLON);				_t = _t.getNextSibling();				break;			}			case PERIOD:			{				AST tmp861_AST_in = (AST)_t;				match(_t,PERIOD);				_t = _t.getNextSibling();				break;			}			case EOF:			{				AST tmp862_AST_in = (AST)_t;				match(_t,Token.EOF_TYPE);				_t = _t.getNextSibling();				break;			}			default:			{				throw new NoViableAltException(_t);			}			}			}			break;		}		case PERIOD:		case LEXCOLON:		{			block_colon(_t);			_t = _retTree;			code_block(_t);			_t = _retTree;			{			if (_t==null) _t=ASTNULL;			switch ( _t.getType()) {			case EOF:			{				AST tmp863_AST_in = (AST)_t;				match(_t,Token.EOF_TYPE);				_t = _t.getNextSibling();				break;			}			case END:			{				AST __t1393 = _t;				AST tmp864_AST_in = (AST)_t;				match(_t,END);				_t = _t.getFirstChild();				{				if (_t==null) _t=ASTNULL;				switch ( _t.getType()) {				case FUNCTION:				{					AST tmp865_AST_in = (AST)_t;					match(_t,FUNCTION);					_t = _t.getNextSibling();					break;				}				case 3:				{					break;				}				default:				{					throw new NoViableAltException(_t);				}				}				}				_t = __t1393;				_t = _t.getNextSibling();				state_end(_t);				_t = _retTree;				break;			}			default:			{				throw new NoViableAltException(_t);			}			}			}			break;		}		default:			boolean synPredMatched1387 = false;			if (_t==null) _t=ASTNULL;			if (((_t.getType()==IN_KW))) {				AST __t1387 = _t;				synPredMatched1387 = true;				inputState.guessing++;				try {					{					AST tmp866_AST_in = (AST)_t;					match(_t,IN_KW);					_t = _t.getNextSibling();					AST tmp867_AST_in = (AST)_t;					match(_t,SUPER);					_t = _t.getNextSibling();					}				}				catch (RecognitionException pe) {					synPredMatched1387 = false;				}				_t = __t1387;inputState.guessing--;			}			if ( synPredMatched1387 ) {				AST tmp868_AST_in = (AST)_t;				match(_t,IN_KW);				_t = _t.getNextSibling();				AST tmp869_AST_in = (AST)_t;				match(_t,SUPER);				_t = _t.getNextSibling();				{				if (_t==null) _t=ASTNULL;				switch ( _t.getType()) {				case LEXCOLON:				{					AST tmp870_AST_in = (AST)_t;					match(_t,LEXCOLON);					_t = _t.getNextSibling();					break;				}				case PERIOD:				{					AST tmp871_AST_in = (AST)_t;					match(_t,PERIOD);					_t = _t.getNextSibling();					break;				}				case EOF:				{					AST tmp872_AST_in = (AST)_t;					match(_t,Token.EOF_TYPE);					_t = _t.getNextSibling();					break;				}				default:				{					throw new NoViableAltException(_t);				}				}				}			}			else if ((_t.getType()==IN_KW||_t.getType()==MAP)) {				{				if (_t==null) _t=ASTNULL;				switch ( _t.getType()) {				case MAP:				{					AST tmp873_AST_in = (AST)_t;					match(_t,MAP);					_t = _t.getNextSibling();					{					if (_t==null) _t=ASTNULL;					switch ( _t.getType()) {					case TO:					{						AST tmp874_AST_in = (AST)_t;						match(_t,TO);						_t = _t.getNextSibling();						break;					}					case ID:					{						break;					}					default:					{						throw new NoViableAltException(_t);					}					}					}					AST tmp875_AST_in = (AST)_t;					match(_t,ID);					_t = _t.getNextSibling();					break;				}				case IN_KW:				{					break;				}				default:				{					throw new NoViableAltException(_t);				}				}				}				AST tmp876_AST_in = (AST)_t;				match(_t,IN_KW);				_t = _t.getNextSibling();				expression(_t);				_t = _retTree;				{				if (_t==null) _t=ASTNULL;				switch ( _t.getType()) {				case LEXCOLON:				{					AST tmp877_AST_in = (AST)_t;					match(_t,LEXCOLON);					_t = _t.getNextSibling();					break;				}				case PERIOD:				{					AST tmp878_AST_in = (AST)_t;					match(_t,PERIOD);					_t = _t.getNextSibling();					break;				}				case EOF:				{					AST tmp879_AST_in = (AST)_t;					match(_t,Token.EOF_TYPE);					_t = _t.getNextSibling();					break;				}				default:				{					throw new NoViableAltException(_t);				}				}				}			}		else {			throw new NoViableAltException(_t);		}		}		}		_t = __t1379;		_t = _t.getNextSibling();		_retTree = _t;	}