+ website
+ Added Harbour website (except art, docs and stat subdirs)
; TODO: configure automatic mechanism to extract site from
here and regularly updload to sf.net web area
; TODO: Clean HTML code, remove unused picture/files, avoid JS
Any takers?
; NOTE: Please make modifications to website code only in
SVN, then upload the content to web server manually.
IOW never update on web server directly.
144 lines
14 KiB
HTML
144 lines
14 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>codebloc.prg</TITLE>
|
|
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
|
|
<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-comment>// codeblocks test
|
|
|
|
</SPAN><SPAN class=any1-reservedword>function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>Main</SPAN><SPAN class=any1-symbol>()
|
|
</SPAN><SPAN class=any1-reservedword>local</SPAN><SPAN class=any1-space> B := </SPAN><SPAN class=any1-string>"this will never print"
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>local</SPAN><SPAN class=any1-space> a := { |b,c| </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"I am a codeblock"</SPAN><SPAN class=any1-space> + b + c ) }
|
|
</SPAN><SPAN class=any1-reservedword>local</SPAN><SPAN class=any1-space> d
|
|
</SPAN><SPAN class=any1-reservedword>local</SPAN><SPAN class=any1-space> de
|
|
</SPAN><SPAN class=any1-reservedword>local</SPAN><SPAN class=any1-space> ar := { </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> }
|
|
</SPAN><SPAN class=any1-reservedword>local</SPAN><SPAN class=any1-space> crlf:=</SPAN><SPAN class=any1-function>CHR</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-symbol>)+</SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-symbol>)
|
|
</SPAN><SPAN class=any1-reservedword>local</SPAN><SPAN class=any1-space> YY, X
|
|
</SPAN><SPAN class=any1-reservedword>local</SPAN><SPAN class=any1-space> x1, x2
|
|
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"this should print first"</SPAN><SPAN class=any1-space> )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
</SPAN><SPAN class=any1-function>Eval</SPAN><SPAN class=any1-symbol>( a, </SPAN><SPAN class=any1-string>" with parameters"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>" ... and it works!"</SPAN><SPAN class=any1-space> )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
d =</SPAN><SPAN class=any1-string>"with access to local variables"
|
|
|
|
</SPAN><SPAN class=any1-space> a ={ |b,c| </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"I am a second codeblock "</SPAN><SPAN class=any1-space> +d +b +;
|
|
</SPAN><SPAN class=any1-variable>IIF</SPAN><SPAN class=any1-symbol>(c==NIL, </SPAN><SPAN class=any1-string>' empty second parameter '</SPAN><SPAN class=any1-symbol>, c)), </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>(crlf), </SPAN><SPAN class=any1-string>"WITH return value"</SPAN><SPAN class=any1-space> }
|
|
</SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( a, </SPAN><SPAN class=any1-string>", codeblock parameters"</SPAN><SPAN class=any1-space> )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
</SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( a, </SPAN><SPAN class=any1-string>", codeblock parameters "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>"and with second parameter"</SPAN><SPAN class=any1-space> )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-variable>MyEval</SPAN><SPAN class=any1-symbol>( a ) )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
</SPAN><SPAN class=any1-variable>OtherTest</SPAN><SPAN class=any1-symbol>( a )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
</SPAN><SPAN class=any1-variable>AnotherTest</SPAN><SPAN class=any1-symbol>( a, </SPAN><SPAN class=any1-string>"==> Another "</SPAN><SPAN class=any1-space> )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
a ={|c| </SPAN><SPAN class=any1-variable>IIF</SPAN><SPAN class=any1-symbol>( c=NIL, {|a| </SPAN><SPAN class=any1-string>"First "</SPAN><SPAN class=any1-symbol>+a}, {|a| </SPAN><SPAN class=any1-string>"Second "</SPAN><SPAN class=any1-symbol>+a}) }
|
|
a =</SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( a )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( a, </SPAN><SPAN class=any1-string>"codeblock created in a codeblock"</SPAN><SPAN class=any1-space> ) )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( ar[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
a :={|| ar[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ]++}
|
|
</SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( a )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( ar[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
yy :=</SPAN><SPAN class=any1-number>5
|
|
</SPAN><SPAN class=any1-space> x :={|xx| </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-variable>LTRIM</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-function>STR</SPAN><SPAN class=any1-symbol>(xx))), </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-string>"+"</SPAN><SPAN class=any1-symbol>), </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-variable>LTRIM</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-function>STR</SPAN><SPAN class=any1-symbol>(yy))), </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-string>"="</SPAN><SPAN class=any1-symbol>), xx + yy }
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( x, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) ) </SPAN><SPAN class=any1-comment>//this is OK
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( CRLF )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( x, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ) ) </SPAN><SPAN class=any1-comment>//this should ignore unnecesary parameters
|
|
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>QOut</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-variable>RetBlock</SPAN><SPAN class=any1-symbol>(), </SPAN><SPAN class=any1-number>5</SPAN><SPAN class=any1-space> ) )
|
|
|
|
</SPAN><SPAN class=any1-comment>// BugToFix()
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Trying to use detached variable ..."</SPAN><SPAN class=any1-space> )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
x1 :=</SPAN><SPAN class=any1-number>5
|
|
</SPAN><SPAN class=any1-space> x2 :=</SPAN><SPAN class=any1-number>6
|
|
</SPAN><SPAN class=any1-space> de =</SPAN><SPAN class=any1-variable>DetachLocal</SPAN><SPAN class=any1-symbol>( x1, x2 )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( de ) )
|
|
</SPAN><SPAN class=any1-comment>//changing the value of variables
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( crlf )
|
|
x1 := </SPAN><SPAN class=any1-number>10
|
|
</SPAN><SPAN class=any1-space> x2 := </SPAN><SPAN class=any1-number>11
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>QOut</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( de ) )
|
|
de =</SPAN><SPAN class=any1-variable>DetachLocal</SPAN><SPAN class=any1-symbol>( x1, x2 )
|
|
</SPAN><SPAN class=any1-function>QOut</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( de ) )
|
|
|
|
</SPAN><SPAN class=any1-reservedword>return</SPAN><SPAN class=any1-space> nil
|
|
|
|
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>MyEval</SPAN><SPAN class=any1-symbol>( bCodeBlock )
|
|
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> D:=</SPAN><SPAN class=any1-string>"this is another variable"
|
|
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>(bCodeBlock, </SPAN><SPAN class=any1-string>" from "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>"MyEval Function"</SPAN><SPAN class=any1-space> ) )
|
|
|
|
</SPAN><SPAN class=any1-reservedword>PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>OtherTest</SPAN><SPAN class=any1-symbol>( cblock )
|
|
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> cb
|
|
|
|
cb :={|a,b| </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cblock,a,b ) }
|
|
|
|
</SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cb, </SPAN><SPAN class=any1-string>"--> with nested "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>"EVAL"</SPAN><SPAN class=any1-space> )
|
|
|
|
</SPAN><SPAN class=any1-reservedword>RETURN
|
|
|
|
PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>AnotherTest</SPAN><SPAN class=any1-symbol>( cb, a )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cb, a ) )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-symbol>)+</SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-symbol>) )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cb, a, </SPAN><SPAN class=any1-string>"again and again"</SPAN><SPAN class=any1-space> ) )
|
|
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-symbol>)+</SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-symbol>) )
|
|
</SPAN><SPAN class=any1-reservedword>RETURN
|
|
|
|
FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>DetachLocal</SPAN><SPAN class=any1-symbol>( x, y )
|
|
</SPAN><SPAN class=any1-comment>//NOTE! this should work
|
|
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> z:=x+y
|
|
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> cb:={|| </SPAN><SPAN class=any1-function>QOut</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-string>"z=x+y="</SPAN><SPAN class=any1-symbol>), </SPAN><SPAN class=any1-function>QOut</SPAN><SPAN class=any1-symbol>(z), </SPAN><SPAN class=any1-function>QOut</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-string>"x*x="</SPAN><SPAN class=any1-symbol>), </SPAN><SPAN class=any1-function>QOut</SPAN><SPAN class=any1-symbol>(x*x), </SPAN><SPAN class=any1-function>QOut</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-string>"x*x+z="</SPAN><SPAN class=any1-symbol>), x*x+z}
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( cb )
|
|
|
|
</SPAN><SPAN class=any1-reservedword>PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>BugToFix</SPAN><SPAN class=any1-symbol>()
|
|
|
|
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> b, a := {|| a+b }
|
|
|
|
b =</SPAN><SPAN class=any1-string>"bug "
|
|
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( a )
|
|
|
|
</SPAN><SPAN class=any1-reservedword>RETURN
|
|
|
|
FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>RetBlock</SPAN><SPAN class=any1-symbol>()
|
|
|
|
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( {|x| x*x} )
|
|
|
|
</SPAN></SPAN>
|
|
</CODE></PRE></BODY></HTML>
|