private static void Factor()
    {
        if( sym == ident )
        {
            Designator();
            if( sym == assign )
            {
                Scan();
                ActPars();
            }
            else if( sym == lpar )
            {
                ActPars();
            }
        }
        else if( sym == number ) Scan();
        else if( sym == charCon ) Scan();
        else if( sym == new_ )
        {
            Scan();
            Check( ident );
            if( sym == lbrack )
            {
                Scan();
                Expr(); Check( rbrack );
            }
        }
        else if( sym == lpar )
        {
            Scan();
            Expr(); Check( rpar );
        }
        else Error( "invalid start of Factor" );
    }