#+Title: a collection of examples for ob-haxe tests #+OPTIONS: ^:nil * Simple :PROPERTIES: :ID: 966875e9-d10e-406c-9211-449555e3d3b2 :END: #+name: simple #+begin_src haxe :results output silent Sys.print(42); #+end_src #+name: simple_with_main #+begin_src haxe :results output silent static function main() { Sys.print(42); } #+end_src #+name: simple_with_public_main_interp #+begin_src haxe :results output silent public static function main() { Sys.print(42); } #+end_src #+name: simple_with_public_main_neko #+begin_src haxe :target neko :results output silent public static function main() { Sys.print(42); } #+end_src #+name: simple_with_public_main_hashlink #+begin_src haxe :target hashlink :results output silent public static function main() { Sys.print(42); } #+end_src #+name: simple_with_class #+begin_src haxe :results output silent class Simple { public static function main() { Sys.print(42); } } #+end_src #+name: simple_with_class_and_package #+begin_src haxe :results output silent package pkg; class Simple { public static function main() { Sys.print(42); } } #+end_src #+name: simple_with_class_attr #+begin_src haxe :results output silent :classname Simple public static function main() { Sys.print(42); } #+end_src #+name: simple_with_class_attr_with_package #+begin_src haxe :results output silent :classname pkg.Simple public static function main() { Sys.print(42); } #+end_src * Variables :PROPERTIES: :ID: ecbe8740-e254-4c53-84b2-21a61bf1afb4 :END: #+name: integer_var #+begin_src haxe :var a=42 :results output silent Sys.print(a); #+end_src #+name: var_with_main #+begin_src haxe :var a=42 :results output silent public static function main() { Sys.print(a); } #+end_src #+name: var_with_class #+begin_src haxe :var a=42 :results output silent class Main { public static function main() { Sys.print(a); } } #+end_src #+name: var_with_class_and_package #+begin_src haxe :var a=42 :results output silent package pkg; class Main { public static function main() { Sys.print(a); } } #+end_src #+name: var_with_class_and_hanging_curlies #+begin_src haxe :var a=42 :results output silent class Main { public static function main() { Sys.print(a); } } #+end_src #+name: two_vars #+begin_src haxe :var a=21 b=2 :results output silent Sys.print(a*b); #+end_src #+name: string_var #+begin_src haxe :var a="forty two" :results output silent Sys.print('$a, len=${a.length}'); #+end_src #+name: mulitline_string_var #+begin_src haxe :var a="forty\ntwo" :results output silent Sys.print('$a, len=${a.length}'); #+end_src * Array :PROPERTIES: :ID: 1e93864d-385b-4901-9d12-b566fdb5b813 :END: #+name: haxe_list - forty - two #+name: return_vector #+begin_src haxe :results vector silent return [[4], [2]]; #+end_src #+name: read_return_list #+begin_src haxe :var a=haxe_list :results silent return [a[0][0], a[1][0]]; #+end_src this is not an interesting test, but it demonstrates how to use ~:results output~ to write a neatly formatted list of strings which can include spaces. #+name: read_output_list #+begin_src haxe :var a=haxe_list :results output list raw silent Sys.println('forty two'); Sys.println('forty two'); #+end_src * Matrix :PROPERTIES: :ID: a93bb906-eef8-4089-b490-64f266f5696c :END: #+name: haxe_matrix | 2 | 1 | | 4 | 2 | #+name: list_var #+begin_src haxe :var a='("forty" "two") :results silent return [a[0], a[1]]; #+end_src #+name: vector_var #+begin_src haxe :var a='["forty" "two"] :results silent return [a[0], a[1]]; #+end_src #+name: matrix_var #+begin_src haxe :var a=haxe_matrix :results silent return [[a[0][0], a[1][0]], // transpose [a[0][1], a[1][1]]]; #+end_src #+name: matrix_var_with_header #+begin_src haxe :var a=haxe_matrix :results value table silent return [["col1","col2"], null, [a[0][0], a[1][0]], // transpose [a[0][1], a[1][1]]]; #+end_src this is not an interesting test, but it demonstrates how to use ~:results output~ to write a table with header. #+name: output_table_with_header #+begin_src haxe :var a=haxe_matrix :results output raw table silent Sys.println("|col1|col2|"); Sys.println("|-"); for (ii in 0...a.length) { for (jj in 0...a[0].length) { Sys.print('|${a[ii][jj]}'); } Sys.println(""); } #+end_src * Inhomogeneous Table :PROPERTIES: :ID: 192cbb7d-9038-47ca-bab3-a0cbf44b487d :END: #+name: haxe_table | string | number | |--------+--------| | forty | 2 | | two | 1 | #+name: inhomogeneous_table #+begin_src haxe :var a=haxe_table :results silent return [[a[0][0], a[0][1]*2], [a[1][0], a[1][1]*2]]; #+end_src * Library :PROPERTIES: :ID: 0b945cde-55a1-4723-8d78-5f69d98d09fa :END: #+name: import_library #+begin_src haxe :results output silent :imports haxe.crypto.Base64 haxe.io.Bytes var encoded = Base64.encode(Bytes.ofString("42")); var decoded = Base64.decode(encoded); Sys.print('encoded=$encoded, decoded=$decoded'); #+end_src #+name: import_library_inline #+begin_src haxe :results output silent import haxe.crypto.Base64; import haxe.io.Bytes; var encoded = Base64.encode(Bytes.ofString("42")); var decoded = Base64.decode(encoded); Sys.print('encoded=$encoded, decoded=$decoded'); #+end_src