* extras/hbvpdf/hbvpdf.hbx
! two more corrections
* contrib/gtwvg/tests/_dyndlgs.prg
* contrib/hbct/doc/en/finan.txt
* contrib/hbct/readme.txt
* contrib/hbct/tests/asciisum.prg
* contrib/hbct/tests/trig.prg
* contrib/hbfoxpro/dll.prg
* contrib/hbhttpd/core.prg
* contrib/hbhttpd/widgets.prg
* contrib/hbmisc/fcomma.prg
* contrib/hbmlzo/tests/test.prg
* contrib/hbmxml/tests/custom.prg
* contrib/hbmzip/readme.txt
* contrib/hbnf/nwuid.prg
* contrib/hbnf/vidcur.prg
* contrib/hbtip/client.prg
* contrib/hbwin/tests/olesrv1.prg
* contrib/hbwin/tests/testprn.prg
* contrib/xhb/cstruct.prg
* contrib/xhb/hjwindow.prg
* contrib/xhb/hterrsys.prg
* contrib/xhb/htjlist.prg
* contrib/xhb/htmutil.prg
* contrib/xhb/tests/decode.prg
* contrib/xhb/xhberr.prg
* doc/cmdline.txt
* doc/en/objfunc.txt
* doc/en/set.txt
* doc/en/string.txt
* doc/pragma.txt
* extras/gfspell/spell.prg
* extras/gtwvw/docs/gtwvw.txt
* extras/gtwvw/tests/wvwtest9.prg
* extras/hbvpdf/core.prg
* extras/hbvpdf/fonts.prg
* extras/hbvpdf/tests/pdf_demo.prg
* extras/httpsrv/cgifunc.prg
* extras/httpsrv/home/counter.html
* extras/httpsrv/home/testxmldb.html
* extras/httpsrv/session.prg
* extras/httpsrv/uhttpd.prg
* tests/base64.prg
* tests/boxtest.prg
* tests/db_brows.prg
* tests/ddate.prg
* tests/inherit.prg
* tests/langmsg.prg
* tests/mathtest.prg
* tests/memtst.prg
* tests/readhrb.prg
* tests/switch.prg
* tests/testsha2.prg
* tests/testwarn.prg
* tests/tstdbi.prg
* tests/utf8at.prg
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_class.prg
* utils/hbtest/rt_date.prg
* utils/hbtest/rt_hvma.prg
* utils/hbtest/rt_math.prg
* utils/hbtest/rt_misc.prg
* utils/hbtest/rt_trans.prg
* website/news.html
* website/news1.html
* website/samples.html
* website/samples/arreval.html
* website/samples/codebl.prg.html
* website/samples/dates3.html
* website/samples/switch.prg.html
* website/samples/testcgi.prg.html
* website/samples/tstmacro.prg.html
* rerun case fixer script after applying
some fixes, and this time it run fully
automatically.
189 lines
15 KiB
HTML
189 lines
15 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>tstmacro.prg</TITLE>
|
|
<META http-equiv=Content-Type content="text/html; charset=utf-8">
|
|
<META content="MSHTML 6.00.6000.16386" name=GENERATOR>
|
|
<STYLE type=text/css>
|
|
<!--
|
|
body { color: #000000; background-color: #FFFFFF; }
|
|
.any1-activedot { color: #800080; }
|
|
.any1-comment { color: #008080; }
|
|
.any1-constant { color: #800080; }
|
|
.any1-escapeampersand { color: #00FF00; font-weight: bold; }
|
|
.any1-function { color: #808000; }
|
|
.any1-identifier { color: #000000; }
|
|
.any1-number { color: #FF0000; }
|
|
.any1-preprocessor { }
|
|
.any1-reservedword { color: #800000; }
|
|
.any1-space { }
|
|
.any1-string { color: #0000FF; }
|
|
.any1-symbol { }
|
|
.any1-variable { color: #808000; }
|
|
-->
|
|
</STYLE>
|
|
</HEAD>
|
|
<BODY bgColor=#ffffff>
|
|
<PRE><CODE><SPAN style="FONT: 10pt Courier New"><SPAN class=any1-constant>#include</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-string>"hbclass.ch"
|
|
|
|
</SPAN><SPAN class=any1-reservedword>MEMVAR</SPAN><SPAN class=any1-space> cStr, cStr_1, cVar_1, aVar, oVar, OtherVar, SomeVar, </SPAN><SPAN class=any1-reservedword>Private
|
|
MEMVAR</SPAN><SPAN class=any1-space> cMainPrivate, GlobalPrivate, BornInRunTimeVar, </SPAN><SPAN class=any1-reservedword>Public
|
|
|
|
Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>Main</SPAN><SPAN class=any1-symbol>( )
|
|
|
|
</SPAN><SPAN class=any1-reservedword>PRIVATE</SPAN><SPAN class=any1-space> cStr := </SPAN><SPAN class=any1-string>'cVar'</SPAN><SPAN class=any1-symbol>, cStr_1 := </SPAN><SPAN class=any1-string>'cVar_1'</SPAN><SPAN class=any1-symbol>, aVar := { </SPAN><SPAN class=any1-string>'cVar_1'</SPAN><SPAN class=any1-space> }, oVar
|
|
|
|
</SPAN><SPAN class=any1-reservedword>PRIVATE</SPAN><SPAN class=any1-space> cVar_1, cMainPrivate := </SPAN><SPAN class=any1-string>'cVar_1'</SPAN><SPAN class=any1-symbol>, GlobalPrivate := </SPAN><SPAN class=any1-string>'BornInRunTimeVar'
|
|
|
|
</SPAN><SPAN class=any1-space> &cStr_1 = </SPAN><SPAN class=any1-string>'Simple '
|
|
</SPAN><SPAN class=any1-space> ? M->cVar_1
|
|
|
|
&( </SPAN><SPAN class=any1-string>'cVar'</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-string>'_1'</SPAN><SPAN class=any1-space> ) := </SPAN><SPAN class=any1-string>'Macro'
|
|
</SPAN><SPAN class=any1-space> ?? M->cVar_1
|
|
|
|
M->&cStr_1 = </SPAN><SPAN class=any1-string>'Aliased'
|
|
</SPAN><SPAN class=any1-space> ? M->cVar_1
|
|
|
|
MEMVAR->&( </SPAN><SPAN class=any1-string>'cVar'</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-string>'_1'</SPAN><SPAN class=any1-space> ) := </SPAN><SPAN class=any1-string>' Macro'
|
|
</SPAN><SPAN class=any1-space> ?? M->cVar_1
|
|
|
|
cStr := </SPAN><SPAN class=any1-string>'cVar_'
|
|
</SPAN><SPAN class=any1-space> &cStr.</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> = </SPAN><SPAN class=any1-string>'Concatenated Macro (Numeric)'
|
|
</SPAN><SPAN class=any1-space> ? M->cVar_1
|
|
|
|
cStr := </SPAN><SPAN class=any1-string>'cVar'
|
|
</SPAN><SPAN class=any1-space> &cStr._1 = </SPAN><SPAN class=any1-string>'Concatenated Macro (String)'
|
|
</SPAN><SPAN class=any1-space> ? M->cVar_1
|
|
|
|
&( aVar[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>] ) := </SPAN><SPAN class=any1-string>'Array Macro'
|
|
</SPAN><SPAN class=any1-space> ? M->cVar_1
|
|
|
|
oVar := </SPAN><SPAN class=any1-variable>TValue</SPAN><SPAN class=any1-symbol>():</SPAN><SPAN class=any1-variable>New</SPAN><SPAN class=any1-symbol>()
|
|
oVar:cVal := </SPAN><SPAN class=any1-string>'cVar_1'
|
|
</SPAN><SPAN class=any1-space> &( oVar:cVal ) := </SPAN><SPAN class=any1-string>'Class Macro'
|
|
</SPAN><SPAN class=any1-space> ? M->cVar_1
|
|
|
|
</SPAN><SPAN class=any1-variable>SubFun</SPAN><SPAN class=any1-symbol>()
|
|
|
|
? </SPAN><SPAN class=any1-string>'"cVar_1" = ['</SPAN><SPAN class=any1-space> + M->cVar_1 + </SPAN><SPAN class=any1-string>'] AFTER SubFun() PRIVATE'
|
|
|
|
</SPAN><SPAN class=any1-space> ? M->NewPublicVar
|
|
|
|
</SPAN><SPAN class=any1-variable>TEST_TYPE</SPAN><SPAN class=any1-symbol>()
|
|
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-space> NIL
|
|
|
|
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> TValue
|
|
|
|
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> oClass
|
|
|
|
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> oClass == NIL
|
|
oClass = </SPAN><SPAN class=any1-variable>HBClass</SPAN><SPAN class=any1-symbol>():</SPAN><SPAN class=any1-variable>New</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"TValue"</SPAN><SPAN class=any1-space> )
|
|
|
|
oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"cVal"</SPAN><SPAN class=any1-space> )
|
|
oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"New"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>New</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// New Method
|
|
|
|
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-function>Create</SPAN><SPAN class=any1-symbol>()
|
|
|
|
</SPAN><SPAN class=any1-reservedword>ENDIF
|
|
|
|
RETURN</SPAN><SPAN class=any1-symbol>( oClass:</SPAN><SPAN class=any1-variable>Instance</SPAN><SPAN class=any1-symbol>() )
|
|
|
|
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>New</SPAN><SPAN class=any1-symbol>()
|
|
|
|
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
|
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-space> Self
|
|
|
|
</SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>SubFun</SPAN><SPAN class=any1-symbol>()
|
|
|
|
? </SPAN><SPAN class=any1-string>'"cVar_1" = ['</SPAN><SPAN class=any1-space> + M->cVar_1 + </SPAN><SPAN class=any1-string>'] BEFORE SubFun() PRIVATE'
|
|
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// Testing conflict with KEY WORDS
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>PRIVATE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>PRIVATE</SPAN><SPAN class=any1-space> := </SPAN><SPAN class=any1-string>'I am a Var named PRIVATE '</SPAN><SPAN class=any1-symbol>, &cMainPrivate, SomeVar, OtherVar := </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>, &GlobalPrivate := </SPAN><SPAN class=any1-string>'I was born in Run Time'
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>PUBLIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>PUBLIC</SPAN><SPAN class=any1-space> := </SPAN><SPAN class=any1-string>'NewPublicVar'
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>PUBLIC</SPAN><SPAN class=any1-space> &</SPAN><SPAN class=any1-reservedword>PUBLIC
|
|
|
|
</SPAN><SPAN class=any1-space> ? M->NewPublicVar
|
|
|
|
M->NewPublicVar := </SPAN><SPAN class=any1-string>'Still Alive because I am PUBLIC'
|
|
|
|
</SPAN><SPAN class=any1-space> ? M-></SPAN><SPAN class=any1-reservedword>PRIVATE</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-reservedword>PRIVATE
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-reservedword>PRIVATE</SPAN><SPAN class=any1-space> + M-></SPAN><SPAN class=any1-reservedword>PRIVATE
|
|
|
|
</SPAN><SPAN class=any1-space> ? BornInRunTimeVar
|
|
|
|
&cMainPrivate := </SPAN><SPAN class=any1-string>'In SubFun()'
|
|
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>'"cVar_1" = ['</SPAN><SPAN class=any1-space> + M->cVar_1 + </SPAN><SPAN class=any1-string>'] in SubFun() PRIVATE'
|
|
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-space> NIL
|
|
|
|
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>TEST_TYPE</SPAN><SPAN class=any1-symbol>()
|
|
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> v1, v2, v1a, v2a
|
|
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> bErr:=</SPAN><SPAN class=any1-function>ERRORBLOCK</SPAN><SPAN class=any1-symbol>({|e|</SPAN><SPAN class=any1-function>BREAK</SPAN><SPAN class=any1-symbol>(e)}), oE
|
|
|
|
?
|
|
? </SPAN><SPAN class=any1-string>"=========== Type() function ================="
|
|
</SPAN><SPAN class=any1-space> v1 := </SPAN><SPAN class=any1-string>"UDF()"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF()') - should be 'UI': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v1)
|
|
v2 := </SPAN><SPAN class=any1-string>"UDF_STATIC()"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF_STATIC()') - should be 'U': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v2)
|
|
? </SPAN><SPAN class=any1-string>"Test for &"</SPAN><SPAN class=any1-symbol>+</SPAN><SPAN class=any1-string>"'UDF()' - should print 'udf': "</SPAN><SPAN class=any1-symbol>, &v1
|
|
? </SPAN><SPAN class=any1-string>"Test for &"</SPAN><SPAN class=any1-symbol>+</SPAN><SPAN class=any1-string>"'UDF_STATIC()' - should print 'ERROR: undefined function': "
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>BEGIN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
|
|
</SPAN><SPAN class=any1-space> ?? &v2
|
|
RECOVER USING oE
|
|
? </SPAN><SPAN class=any1-string>"ERROR: "</SPAN><SPAN class=any1-symbol>+oE:Description
|
|
</SPAN><SPAN class=any1-reservedword>END</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>ERRORBLOCK</SPAN><SPAN class=any1-symbol>(bErr)
|
|
|
|
v1 := </SPAN><SPAN class=any1-string>"UDF"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF') - should be 'U': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v1)
|
|
v2 := </SPAN><SPAN class=any1-string>"UDF_STATIC"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF_STATIC') - should be 'U': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v2)
|
|
|
|
v1a := </SPAN><SPAN class=any1-string>"UDF:=1"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF:=1') - should be 'N': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v1a)
|
|
v2a := </SPAN><SPAN class=any1-string>"UDF_STATIC:=1"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF_STATIC:=1') - should be 'N': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v2a)
|
|
|
|
? </SPAN><SPAN class=any1-string>"=== after the assignment ==="
|
|
</SPAN><SPAN class=any1-space> v1 := </SPAN><SPAN class=any1-string>"UDF"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF') - should be 'N': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v1)
|
|
v2 := </SPAN><SPAN class=any1-string>"UDF_STATIC"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF_STATIC') - should be 'N': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v2)
|
|
|
|
v1 := </SPAN><SPAN class=any1-string>"UDF()"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF()') - should be 'UI': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v1)
|
|
v2 := </SPAN><SPAN class=any1-string>"UDF_STATIC()"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF_STATIC()') - should be 'U': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v2)
|
|
|
|
|
|
? </SPAN><SPAN class=any1-string>"=== declared public variable ==="
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>PUBLIC</SPAN><SPAN class=any1-space> UDF2, UDF2_STATIC
|
|
v1 := </SPAN><SPAN class=any1-string>"UDF2()"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF2()') - should be 'UI': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v1)
|
|
v2 := </SPAN><SPAN class=any1-string>"UDF2_STATIC()"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF2_STATIC()') - should be 'U': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v2)
|
|
|
|
v1 := </SPAN><SPAN class=any1-string>"UDF2"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF') - should be 'L': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v1)
|
|
v2 := </SPAN><SPAN class=any1-string>"UDF2_STATIC"
|
|
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Test for Type('UDF_STATIC') - should be 'L': "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>TYPE</SPAN><SPAN class=any1-symbol>(v2)
|
|
|
|
?
|
|
</SPAN><SPAN class=any1-reservedword>RETURN
|
|
|
|
STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>UDF_STATIC</SPAN><SPAN class=any1-symbol>()
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-string>"udf_static"
|
|
|
|
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>UDF</SPAN><SPAN class=any1-symbol>()
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-string>"udf"
|
|
|
|
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>UDF2_STATIC</SPAN><SPAN class=any1-symbol>()
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-string>"udf2_static"
|
|
|
|
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>UDF2</SPAN><SPAN class=any1-symbol>()
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-string>"udf2"
|
|
</SPAN></SPAN>
|
|
</CODE></PRE></BODY></HTML>
|