public final WaiprParser.inval_return inval() throws RecognitionException {
		WaiprParser.inval_return retval = new WaiprParser.inval_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token set68=null;

		CommonTree set68_tree=null;

		try { dbg.enterRule(getGrammarFileName(), "inval");
		if ( getRuleLevel()==0 ) {dbg.commence();}
		incRuleLevel();
		dbg.location(61, 0);

		try {
			// C:\\Users\\Gyula\\Documents\\NetBeansProjects\\waiprProg\\src\\waiprprog\\Waipr.g:61:7: ( ( ID | NUMBER | TEXT ) )
			dbg.enterAlt(1);

			// C:\\Users\\Gyula\\Documents\\NetBeansProjects\\waiprProg\\src\\waiprprog\\Waipr.g:
			{
			root_0 = (CommonTree)adaptor.nil();


			dbg.location(61,7);
			set68=input.LT(1);
			if ( input.LA(1)==ID||input.LA(1)==NUMBER||input.LA(1)==TEXT ) {
				input.consume();
				adaptor.addChild(root_0, (CommonTree)adaptor.create(set68));
				state.errorRecovery=false;
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				dbg.recognitionException(mse);
				throw mse;
			}
			}

			retval.stop = input.LT(-1);

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		dbg.location(61, 28);

		}
		finally {
			dbg.exitRule(getGrammarFileName(), "inval");
			decRuleLevel();
			if ( getRuleLevel()==0 ) {dbg.terminate();}
		}

		return retval;
	}