@header@

Loop test

you should see numbers from 3 to 5

@numbers[3..5,1](@value@
)@

using step parameter every second after 2 by 10

@numbers[2..10,2](@value@
)@

using variable limits from @start@ and up to array limit

@numbers[@start@..,1](@value@
)@

This is 4th element

@numbers[3](@value@
)@

switch test

@color{ @red(This is red - @color@)@ @green(This is green)@ @(This is other @color@)@ }@

data range test

@x{ @0..4(x is between 0 and 4
)@ @..0,10(x less than 0 or 10
)@ @9..(bigger than 8 @x@
)@ @hello, bye, " ok"(x is hello bye or  ok
)@ @ @something@ (x is @something@
)@ @(x is @x@)@}@

date range test

@when{ @ 10/10/02..@today@(between 10/10/02 and now
)@ @(some other time @when@)@ }@

Format test

it was on @today?DMM/dd/yy EEE@ or on @today?Ddate_format@ or on @today?D'MM/dd''yy@

something costly $@x?C00.00@

You should see switch

When side_url is defined, you should see URL link
If side_logo is defined, then the link will be image link.

@side_url{ @"",(@side_url@)@ @(

 here @side_logo{ @""(@side_url@)@ @()@ }@

)@ }@

Include

@*'copy.txt'@

Process template

@%'copy.htm'@

One more

@%copy@

Method call

today.getTime()= @today.getTime*()*@;

More complex call: myobject.format('3456',(java.lang.String)today,1009);
@myobject.format*('3456',java.lang.Object^@today@,1009)*@

Array work, call myobject.toArray('name','red','blue','yellow');
@myobject.toArray*(name,red,blue,yellow)*( @name@
)@ @myobject.toArray*(name,red,blue,yellow)*[0..1]( @name@
)@

Hello Substitutor example

@page_map.put*(java.lang.Object^foo,java.lang.Object^Substitutor)*@

Hello @foo@!

Test switch by function result

@myobject.getColor*(red)*{@red(This is in red)@@blue(No blue)@@(none of them)@}@