Files
harbour-core/harbour/source/rtl/symbol.prg
Viktor Szakats b007d20e6b 2008-04-21 14:48 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* tests/rto_get.prg
   * tests/rto_tb.prg
     + Added more tests.
     + Enabled object as array results by default.
     + More details for TGet test results.

   * bin/bld_os2.cmd
     ! Fixed lib names. Thanks David.

   * source/rtl/tobject.prg
     * Formatting.

   * source/rtl/tget.prg
     ! Delimiter colors in C5.3 mode made compatible.
     ! ::colorSpec handling in C5.3 mode made compatible 
       for some invalid parameter types.
     ! Fixed handling decimals in :row, :col, :pos 
       methods.
     ! Fixed to compile in C5.2 mode without warning
       (introduced in recent commit).

   * source/rtl/tbrowse.prg
     ! Fixed handling decimals in :nTop, :nBottom, :nLeft, :nRight.
     + Added unfinished XPP method :viewArea()
     + Added untested XPP method :firstScrCol()
     ; Few minor formatting.

   * include/hbextern.ch
   * source/rtl/einstvar.prg
     + Added _eInstVar52() which is the C5.2 compatible version 
       of this function. It also replicates a bug.
     * _eInstVar() renamed to _eInstVar53().
     * _eInstVar() made a stub to call _eInstVar53().

   * source/rtl/checkbox.prg
   * source/rtl/listbox.prg
   * source/rtl/pushbtn.prg
   * source/rtl/radiobtn.prg
   * source/rtl/radiogrp.prg
   * source/rtl/scrollbr.prg
   * source/rtl/symbol.prg
   * source/rtl/teditor.prg
   * source/rtl/tget.prg
   * source/rtl/tget1.prg
   * source/rtl/tgetlist.prg
   * source/rtl/tmenuitm.prg
   * source/rtl/tmenusys.prg
   * source/rtl/tpopup.prg
   * source/rtl/ttopbar.prg
     * Formatting (EXPORT: -> EXPORTED:)

   * contrib/hbtip/thtml.prg
   * contrib/hbtip/ftpcln.prg
     ! Fixed to work regardless of SET EXACT setting.
     ; NOTE: I'd suggest an optional compiler warning 
             to detect plain "=" usage. It's bad practice 
             in most cases.

   TODO: make_os2_gcc.cmd -> make_gcc_os2.cmd
   TODO: TGET test case for my vtgetlst problem.
   TODO: TGET fix for the above.
   TODO: _eInstVar() -> _eInstVar53()
2008-04-21 12:56:13 +00:00

82 lines
3.0 KiB
Plaintext

/*
* $Id$
*/
/*
* Harbour Project source code:
* Harbour implementation of Class(y) Class Symbol
*
* Copyright 2003 Antonio Linares <alinares@fivetechsoft.com>
* www - http://www.harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
#include "hbclass.ch"
CREATE CLASS Symbol
EXPORTED:
METHOD New( cSymName ) // Constructor. cSymName may already exists or not
METHOD name() // retrieves the symbol name
METHOD isEqual( oSymbol ) // Compares two symbol objects
METHOD exec() // Executes the function referred to by the
// Symbol object, with an optional parameters list
PROTECTED:
VAR nSym // internal pointer to the Symbols table symbol
ENDCLASS
METHOD New( cSymName ) CLASS Symbol
::nSym := __DynSN2Sym( cSymName )
RETURN Self
METHOD name() CLASS Symbol
RETURN ::nSym:Name
METHOD isEqual( oSymbol ) CLASS Symbol
RETURN ::ClassH == oSymbol:ClassH .AND. ::nSym:Name == oSymbol:nSym:Name
METHOD exec( ... ) CLASS Symbol
RETURN ::nSym:exec( ... )