Files
harbour-core/harbour/tests/tstmacro.prg
Viktor Szakats 4d4bb8e11c 2008-07-28 20:41 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* tests/ainstest.prg
   * tests/array16.prg
   * tests/arrays.prg
   * tests/atest.prg
   * tests/clasinit.prg
   * tests/classch.prg
   * tests/classes.prg
   * tests/dates.prg
   * tests/db_brows.prg
   * tests/ddate.prg
   * tests/debugtst.prg
   * tests/dynobj.prg
   * tests/files.prg
   * tests/gfx.prg
   * tests/inline.prg
   * tests/keywords.prg
   * tests/objects.prg
   * tests/onidle.prg
   * tests/readhrb.prg
   * tests/rtfclass.prg
   * tests/speed.prg
   * tests/switch.prg
   * tests/test_all.prg
   * tests/testbrw.prg
   * tests/testcgi.prg
   * tests/testcls.prg
   * tests/testget.prg
   * tests/testhtml.prg
   * tests/testidle.prg
   * tests/testinit.prg
   * tests/testntx.prg
   * tests/testpers.prg
   * tests/testrdd2.prg
   * tests/teststr.prg
   * tests/tstblock.prg
   * tests/tstmacro.prg
   * tests/videotst.prg
   * tests/vidtest.prg
   * tests/wcecon.prg
     * Cleanups. SVN header, '=' operator usage.
2008-07-28 18:43:42 +00:00

167 lines
3.9 KiB
Plaintext

/*
* $Id$
*/
#include "hbclass.ch"
MEMVAR cStr, cStr_1, cVar_1, aVar, oVar, OtherVar, SomeVar, Private
MEMVAR cMainPrivate, GlobalPrivate, BornInRunTimeVar, Public
Function Main( )
PRIVATE cStr := 'cVar', cStr_1 := 'cVar_1', aVar := { 'cVar_1' }, oVar
PRIVATE cVar_1, cMainPrivate := 'cVar_1', GlobalPrivate := 'BornInRunTimeVar'
&cStr_1 = 'Simple '
? M->cVar_1
&( 'cVar' + '_1' ) := 'Macro'
?? M->cVar_1
M->&cStr_1 = 'Aliased'
? M->cVar_1
MEMVAR->&( 'cVar' + '_1' ) := ' Macro'
?? M->cVar_1
cStr := 'cVar_'
&cStr.1 = 'Concatenated Macro (Numeric)'
? M->cVar_1
cStr := 'cVar'
&cStr._1 = 'Concatenated Macro (String)'
? M->cVar_1
&( aVar[1] ) := 'Array Macro'
? M->cVar_1
oVar := TValue():New()
oVar:cVal := 'cVar_1'
&( oVar:cVal ) := 'Class Macro'
? M->cVar_1
SubFun()
? '"cVar_1" = [' + M->cVar_1 + '] AFTER SubFun() PRIVATE'
? M->NewPublicVar
TEST_TYPE()
RETURN NIL
FUNCTION TValue
STATIC oClass
IF oClass == NIL
oClass := HBClass():New( "TValue" )
oClass:AddData( "cVal" )
oClass:AddMethod( "New", @New() ) // New Method
oClass:Create()
ENDIF
RETURN( oClass:Instance() )
STATIC FUNCTION New()
LOCAL Self := QSelf()
RETURN Self
Function SubFun()
? '"cVar_1" = [' + M->cVar_1 + '] BEFORE SubFun() PRIVATE'
// Testing conflict with KEY WORDS
PRIVATE PRIVATE := 'I am a Var named PRIVATE ', &cMainPrivate, SomeVar, OtherVar := 1, &GlobalPrivate := 'I was born in Run Time'
PUBLIC PUBLIC := 'NewPublicVar'
PUBLIC &PUBLIC
? M->NewPublicVar
M->NewPublicVar := 'Still Alive because I am PUBLIC'
? M->PRIVATE + PRIVATE
? PRIVATE + M->PRIVATE
? BornInRunTimeVar
&cMainPrivate := 'In SubFun()'
? '"cVar_1" = [' + M->cVar_1 + '] in SubFun() PRIVATE'
RETURN NIL
STATIC PROCEDURE TEST_TYPE()
LOCAL v1, v2, v1a, v2a
LOCAL bErr:=ERRORBLOCK({|e|BREAK(e)}), oE
?
? "=========== TYPE() function ================="
v1 := "UDF()"
? "Test for TYPE('UDF()') - should be 'UI': ", TYPE(v1)
v2 := "UDF_STATIC()"
? "Test for TYPE('UDF_STATIC()') - should be 'U': ", TYPE(v2)
? "Test for &"+"'UDF()' - should print 'udf': ", &v1
? "Test for &"+"'UDF_STATIC()' - should print 'ERROR: undefined function': "
BEGIN SEQUENCE
?? &v2
RECOVER USING oE
? "ERROR: "+oE:Description
END SEQUENCE
ERRORBLOCK(bErr)
v1 := "UDF"
? "Test for TYPE('UDF') - should be 'U': ", TYPE(v1)
v2 := "UDF_STATIC"
? "Test for TYPE('UDF_STATIC') - should be 'U': ", TYPE(v2)
v1a := "UDF:=1"
? "Test for TYPE('UDF:=1') - should be 'N': ", TYPE(v1a)
v2a := "UDF_STATIC:=1"
? "Test for TYPE('UDF_STATIC:=1') - should be 'N': ", TYPE(v2a)
? "=== after the assignment ==="
v1 := "UDF"
? "Test for TYPE('UDF') - should be 'N': ", TYPE(v1)
v2 := "UDF_STATIC"
? "Test for TYPE('UDF_STATIC') - should be 'N': ", TYPE(v2)
v1 := "UDF()"
? "Test for TYPE('UDF()') - should be 'UI': ", TYPE(v1)
v2 := "UDF_STATIC()"
? "Test for TYPE('UDF_STATIC()') - should be 'U': ", TYPE(v2)
? "=== declared public variable ==="
PUBLIC UDF2, UDF2_STATIC
v1 := "UDF2()"
? "Test for TYPE('UDF2()') - should be 'UI': ", TYPE(v1)
v2 := "UDF2_STATIC()"
? "Test for TYPE('UDF2_STATIC()') - should be 'U': ", TYPE(v2)
v1 := "UDF2"
? "Test for TYPE('UDF') - should be 'L': ", TYPE(v1)
v2 := "UDF2_STATIC"
? "Test for TYPE('UDF_STATIC') - should be 'L': ", TYPE(v2)
?
RETURN
STATIC FUNCTION UDF_STATIC()
RETURN "udf_static"
FUNCTION UDF()
RETURN "udf"
STATIC FUNCTION UDF2_STATIC()
RETURN "udf2_static"
FUNCTION UDF2()
RETURN "udf2"