Files
harbour-core/harbour/website/samples/codebloc.prg.html
Viktor Szakats ef5378231b 2012-11-17 18:50 UTC+0100 Viktor Szakats (harbour syenar.net)
+ website/css/shCore.css
  + website/js
  + website/js/shBrushHarbour.js
  + website/js/shCore.js
    + added components for http://alexgorbatchev.com/SyntaxHighlighter/
      a JS based syntax highlighter by Alex Gorbatchev

  + website/css/shThemeDefault.css
    + added Harbour theme (it's based on the php one)

  * website/menu/harbour-menu.js
    ! fixed wrongly displayed bitmaps when used from
      under a subdir.

  * website/samples/array16.prg.html
  * website/samples/arreval.prg.html
  * website/samples/begin.prg.html
  * website/samples/byref.prg.html
  * website/samples/codebl.prg.html
  * website/samples/codebloc.prg.html
  * website/samples/dates3.prg.html
  * website/samples/foreach.prg.html
  * website/samples/function.cfm.html
  * website/samples/hello.prg.html
  * website/samples/initexit.prg.html
  * website/samples/longdev.prg.html
  * website/samples/mousetst.prg.html
  * website/samples/onidle.prg.html
  * website/samples/osshell.prg.html
  * website/samples/parseini.ini.html
  * website/samples/parseini.prg.html
  * website/samples/switch.prg.html
  * website/samples/testbrdb.prg.html
  * website/samples/testbrw.prg.html
  * website/samples/testhtml.prg.html
  * website/samples/testidle.prg.html
  * website/samples/tstmacro.prg.html
    + replaced static syntax highlighting
      with new JS based one. Old system
      used old HTML standard and old unfixed
      copies of tests. See f.e.:
         http://harbour-project.sourceforge.net/samples/testbrw.prg.html
      In new system the code can be copied
      as is from the source to these pages.
      (it'd be even better if a directly link could 
      be used to the source repo on the web)
    + updated all code with fresh copies
      from /tests directory

  * tests/parseini.prg
  * tests/testhtml.prg
    * minor cleanups

  * website/samples/array16.html
  * website/samples/arreval.html
  * website/samples/begin.html
  * website/samples/byref.html
  * website/samples/codebl.html
  * website/samples/codebloc.html
  * website/samples/dates3.html
  * website/samples/foreach.html
  * website/samples/hello.html
  * website/samples/HowToBuildOnLinux.html
  * website/samples/HowToBuildOnWindows.html
  * website/samples/initexit.html
  * website/samples/longdev.html
  * website/samples/mousetst.html
  * website/samples/onidle.html
  * website/samples/osshell.html
  * website/samples/parseini.html
  * website/samples/switch.html
  * website/samples/testbrdb.html
  * website/samples/testbrw.html
  * website/samples/testhtml.html
  * website/samples/testidle.html
  * website/samples/tstmacro.html
    + changed to use absolute paths to refer to
      common page elements
2012-11-17 17:54:21 +00:00

146 lines
3.3 KiB
HTML

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-min.js"></script>
<script type="text/javascript" src="http://www.xregexp.com/addons/backcompat.js"></script>
<script type="text/javascript" src="/js/shCore.js"></script>
<script type="text/javascript" src="/js/shBrushHarbour.js"></script>
<link href="/css/shCore.css" rel="stylesheet" type="text/css" />
<link href="/css/shThemeDefault.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">SyntaxHighlighter.all()</script>
</head>
<body>
<script type="syntaxhighlighter" class="brush: harbour"><![CDATA[
// codeblocks test
PROCEDURE Main()
LOCAL B := "this will never print"
LOCAL a := {| b, c | OutStd( "I am a codeblock" + b + c ) }
LOCAL d
LOCAL de
LOCAL ar := { 1, 2 }
LOCAL YY, X
LOCAL x1, x2
HB_SYMBOL_UNUSED( b )
OutStd( "this should print first" )
OutStd( hb_eol() )
Eval( a, " with parameters", " ... and it works!" )
OutStd( hb_eol() )
d := "with access to local variables"
a := {| b, c | OutStd( "I am a second codeblock " + d + b + ;
iif( c == NIL, " empty second parameter ", c ) ), OutStd( hb_eol() ), "WITH return value" }
Eval( a, ", codeblock parameters" )
OutStd( hb_eol() )
Eval( a, ", codeblock parameters ", "and with second parameter" )
OutStd( hb_eol() )
OutStd( MyEval( a ) )
OutStd( hb_eol() )
OtherTest( a )
OutStd( hb_eol() )
AnotherTest( a, "==> Another " )
OutStd( hb_eol() )
a := {| c | iif( c == NIL, {| a | "First " + a }, {| a | "Second " + a } ) }
a := Eval( a )
OutStd( hb_eol() )
OutStd( Eval( a, "codeblock created in a codeblock" ) )
OutStd( hb_eol() )
OutStd( ar[ 1 ] )
OutStd( hb_eol() )
a := {|| ar[ 1 ]++ }
Eval( a )
OutStd( ar[ 1 ] )
OutStd( hb_eol() )
yy := 5
x := {| xx | OutStd( hb_ntos( xx ) ), OutStd( "+" ), OutStd( hb_ntos( yy ) ), OutStd( "=" ), xx + yy }
OutStd( Eval( x, 1 ) ) // this is OK
OutStd( hb_eol() )
OutStd( Eval( x, 1, 2 ) ) // this should ignore unnecesary parameters
QOut( Eval( RetBlock(), 5 ) )
// BugToFix()
OutStd( hb_eol() )
OutStd( "Trying to use detached variable ..." )
OutStd( hb_eol() )
x1 := 5
x2 := 6
de := DetachLocal( x1, x2 )
OutStd( Eval( de ) )
// changing the value of variables
OutStd( hb_eol() )
x1 := 10
x2 := 11
QOut( Eval( de ) )
de := DetachLocal( x1, x2 )
QOut( Eval( de ) )
RETURN
FUNCTION MyEval( bCodeBlock )
LOCAL D := "this is another variable"
RETURN Eval( bCodeBlock, " from ", "MyEval Function" )
PROCEDURE OtherTest( cblock )
LOCAL cb
cb := {| a, b | Eval( cblock, a, b ) }
Eval( cb, "--> with nested ", "EVAL" )
RETURN
PROCEDURE AnotherTest( cb, a )
OutStd( Eval( cb, a ) )
OutStd( hb_eol() )
OutStd( Eval( cb, a, "again and again" ) )
OutStd( hb_eol() )
RETURN
FUNCTION DetachLocal( x, y )
// NOTE! this should work
LOCAL z := x + y
LOCAL cb := {|| QOut( "z=x+y=" ), QOut( z ), QOut( "x*x=" ), QOut( x * x ), QOut( "x*x+z=" ), x * x + z }
RETURN cb
PROCEDURE BugToFix()
LOCAL b, a := {|| a + b }
b := "bug "
Eval( a )
RETURN
FUNCTION RetBlock()
RETURN {| x | x * x }
]]></script>
</body>
</html>