public final SymbolraetselASTSolver.number_return number() throws RecognitionException {
        SymbolraetselASTSolver.number_return retval = new SymbolraetselASTSolver.number_return();
        retval.start = input.LT(1);

        CommonTree syms=null;
        List list_syms=null;

        try {
            // C:\\Users\\Florian\\Dropbox\\Git\\CI_WiSe2013-2014\\CI_Aufgabe4\\src\\symbolraetsel_AST_Solver\\grammar\\SymbolraetselASTSolver.g:49:3: ( ^( BLOCK (syms+= SYMBOL )+ ) )
            // C:\\Users\\Florian\\Dropbox\\Git\\CI_WiSe2013-2014\\CI_Aufgabe4\\src\\symbolraetsel_AST_Solver\\grammar\\SymbolraetselASTSolver.g:50:2: ^( BLOCK (syms+= SYMBOL )+ )
            {
            match(input,BLOCK,FOLLOW_BLOCK_in_number167); 

            match(input, Token.DOWN, null); 
            // C:\\Users\\Florian\\Dropbox\\Git\\CI_WiSe2013-2014\\CI_Aufgabe4\\src\\symbolraetsel_AST_Solver\\grammar\\SymbolraetselASTSolver.g:50:14: (syms+= SYMBOL )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==SYMBOL) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\Florian\\Dropbox\\Git\\CI_WiSe2013-2014\\CI_Aufgabe4\\src\\symbolraetsel_AST_Solver\\grammar\\SymbolraetselASTSolver.g:50:14: syms+= SYMBOL
            	    {
            	    syms=(CommonTree)match(input,SYMBOL,FOLLOW_SYMBOL_in_number171); 
            	    if (list_syms==null) list_syms=new ArrayList();
            	    list_syms.add(syms);


            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            match(input, Token.UP, null); 

            }


            retval.number = new Number();
            retval.number.setDigits(list_syms);
            //HashSet um alle Smybole zu sammeln
            symbols.addAll(retval.number.getCharacters());

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