From 00c599101c01f0dfd8415d6559531d2bb5e55afd Mon Sep 17 00:00:00 2001 From: fennecdjay Date: Sat, 6 Jul 2019 15:30:03 +0200 Subject: [PATCH] :art: Change comments --- ast | 2 +- .../00_First_Steps/01_InstallingGwion.mdr | 4 +- docs/01_Overview/Testing.mdr | 12 +- docs/01_Overview/declaration.mdr | 2 +- docs/02_Reference/01_Functions/function.mdr | 12 +- docs/09_Benchmarks.md | 238 ++++++++++++++++++ docs/assets/benchmark/binary-trees.dat | 6 +- docs/assets/benchmark/binary-trees.png | Bin 11255 -> 12020 bytes docs/assets/benchmark/fib-recurs.dat | 6 +- docs/assets/benchmark/fib-recurs.png | Bin 9561 -> 9713 bytes docs/assets/benchmark/fib.dat | 6 +- docs/assets/benchmark/fib.png | Bin 8736 -> 8415 bytes docs/assets/benchmark/method-call.dat | 6 +- docs/assets/benchmark/method-call.png | Bin 10377 -> 10397 bytes tests/benchmark/binary-trees.gw | 4 +- tests/benchmark/fib-recurs.gw | 2 +- tests/bug/Tester.gw | 4 +- tests/bug/class_doc.gw | 8 +- tests/bug/do_while.gw | 4 +- tests/bug/dot_member_func.gw | 2 +- tests/bug/float.gw | 142 +++++------ tests/bug/float2.gw | 4 +- tests/bug/ugen.gw | 20 +- tests/error/0_size_variable.gw | 2 +- tests/error/abstract.gw | 2 +- tests/error/already_parent.gw | 2 +- tests/error/arg_prim_ref.gw | 2 +- tests/error/arg_res.gw | 2 +- tests/error/array_assign_exp.gw | 2 +- tests/error/array_depth_match.gw | 2 +- tests/error/array_err2.gw | 2 +- tests/error/array_err3.gw | 2 +- tests/error/array_excess.gw | 2 +- tests/error/array_incompatible.gw | 2 +- tests/error/array_invalid.gw | 2 +- tests/error/array_invalid1.gw | 2 +- tests/error/array_multi_except.gw | 2 +- tests/error/array_multi_oob.gw | 2 +- tests/error/array_mutable.gw | 2 +- tests/error/array_no_member.gw | 2 +- tests/error/array_oob.gw | 2 +- tests/error/array_oob_multi.gw | 2 +- tests/error/array_type_match.gw | 2 +- tests/error/auto_not_array.gw | 2 +- tests/error/break_out.gw | 2 +- tests/error/cant_find_in_nspc.gw | 2 +- tests/error/case_const.gw | 4 +- tests/error/case_not_const.gw | 2 +- tests/error/case_postfix.gw | 2 +- tests/error/cast_unknown.gw | 2 +- tests/error/class_enum.gw | 2 +- tests/error/class_inside.gw | 2 +- tests/error/complex_too_big.gw | 2 +- tests/error/conflict_super.gw | 2 +- tests/error/const_arg.gw | 2 +- tests/error/const_non_mutable.gw | 2 +- tests/error/continue_out.gw | 2 +- tests/error/default_case_defined.gw | 2 +- tests/error/defined_class.gw | 2 +- tests/error/divide_by_zero.gw | 2 +- tests/error/dtor_outside_class.gw | 2 +- tests/error/dup_case.gw | 2 +- tests/error/empty_for.gw | 2 +- tests/error/empty_member_ptr.gw | 2 +- tests/error/empty_obj_data.gw | 2 +- tests/error/enum_declared.gw | 2 +- tests/error/enum_defined.gw | 2 +- tests/error/enum_defined2.gw | 2 +- tests/error/enum_defined3.gw | 2 +- tests/error/enum_defined_var.gw | 2 +- tests/error/error.gw | 2 +- tests/error/ev.gw | 2 +- tests/error/fail_assign.gw | 2 +- tests/error/func_arg_array_empty.gw | 2 +- tests/error/func_arg_defined.gw | 2 +- tests/error/func_arg_unknown.gw | 2 +- tests/error/func_code_error.gw | 2 +- tests/error/func_error_scan2.gw | 2 +- tests/error/func_no_match.gw | 2 +- tests/error/func_non.gw | 2 +- tests/error/func_ptr_empty.gw | 2 +- tests/error/func_ret_array_empty.gw | 2 +- tests/error/func_unknown_ret.gw | 2 +- tests/error/function_arg_no_size.gw | 2 +- tests/error/function_nested.gw | 2 +- tests/error/function_ret_ref_prim.gw | 2 +- tests/error/function_used.gw | 2 +- tests/error/global_func_already_defined.gw | 2 +- tests/error/if_exp_compat.gw | 2 +- tests/error/if_exp_invalid_cond.gw | 2 +- tests/error/invalid_array_acces.gw | 2 +- tests/error/invalid_cast.gw | 2 +- tests/error/invalid_for.gw | 2 +- tests/error/invalid_return.gw | 2 +- tests/error/invalid_switch.gw | 2 +- tests/error/invalid_until.gw | 2 +- tests/error/invalid_while.gw | 2 +- tests/error/label_defined.gw | 2 +- tests/error/label_defined_not_used.gw | 2 +- tests/error/label_not_defined1.gw | 2 +- tests/error/label_not_defined2.gw | 2 +- tests/error/lambda_mismatch1.gw | 2 +- tests/error/lambda_mismatch2.gw | 2 +- tests/error/lambda_mismatch3.gw | 2 +- tests/error/loop_not_int.gw | 2 +- tests/error/member_from_static.gw | 2 +- tests/error/modulo_zero.gw | 2 +- tests/error/multi_decl.gw | 2 +- tests/error/name_conflict.gw | 2 +- tests/error/named_union_global_private.gw | 2 +- .../named_union_global_private_static.gw | 2 +- tests/error/named_union_global_static.gw | 2 +- tests/error/negative_array.gw | 2 +- tests/error/negative_array2.gw | 2 +- tests/error/new_empty_array.gw | 2 +- tests/error/new_prim.gw | 2 +- tests/error/no_cast.gw | 2 +- tests/error/no_compat_sub.gw | 2 +- tests/error/no_compat_sub2.gw | 2 +- tests/error/no_member.gw | 2 +- tests/error/non_function_template.gw | 2 +- tests/error/not_legit.gw | 2 +- tests/error/null_array_access.gw | 2 +- tests/error/null_array_access_multi.gw | 2 +- tests/error/null_auto.gw | 2 +- tests/error/op_match.gw | 2 +- tests/error/op_test.gw | 2 +- tests/error/override_confict.gw | 2 +- tests/error/override_static.gw | 2 +- tests/error/override_static2.gw | 2 +- tests/error/pointer_outside_class.gw | 2 +- tests/error/pointer_unknown.gw | 2 +- tests/error/pointer_unknown_arg.gw | 2 +- tests/error/polar_invalid_mod.gw | 2 +- tests/error/polar_invalid_ph.gw | 2 +- tests/error/polar_too_big.gw | 2 +- tests/error/postfix.gw | 2 +- tests/error/postfix_const.gw | 2 +- tests/error/postfix_no_match.gw | 2 +- tests/error/prim_parent.gw | 2 +- tests/error/prim_ref.gw | 2 +- tests/error/private.gw | 2 +- tests/error/private_func_call_out.gw | 2 +- tests/error/private_func_nocall_out.gw | 2 +- tests/error/private_func_out.gw | 2 +- tests/error/private_global.gw | 2 +- tests/error/private_other.gw | 2 +- tests/error/provide_array.gw | 2 +- tests/error/ptr_arg_0_size.gw | 2 +- tests/error/ptr_arg_array.gw | 2 +- tests/error/ptr_assign_global.gw | 2 +- tests/error/ptr_assign_member.gw | 2 +- tests/error/ptr_assign_other.gw | 2 +- tests/error/ptr_defined.gw | 2 +- tests/error/ptr_no_match.gw | 2 +- tests/error/ptr_ref_prim.gw | 2 +- tests/error/ptr_static_outside.gw | 2 +- tests/error/ptr_static_outside2.gw | 2 +- tests/error/recursive_class_def.gw | 2 +- tests/error/return_out.gw | 2 +- tests/error/right_mutable.gw | 2 +- tests/error/spork_non_func.gw | 2 +- tests/error/static_out.gw | 2 +- tests/error/stray.gw | 2 +- tests/error/template_class_no_type.gw | 2 +- tests/error/template_enough.gw | 2 +- tests/error/template_n_mismatch.gw | 4 +- tests/error/template_no_match.gw | 4 +- tests/error/template_non_member.gw | 2 +- tests/error/template_ternary.gw | 2 +- tests/error/template_unknown.gw | 2 +- tests/error/this.gw | 2 +- tests/error/this_instance.gw | 2 +- tests/error/this_static.gw | 2 +- tests/error/type_not_template.gw | 2 +- tests/error/type_path_test.gw | 2 +- tests/error/unary_times.gw | 2 +- tests/error/undef_parent.gw | 2 +- tests/error/union.gw | 2 +- tests/error/union_array_empty.gw | 2 +- tests/error/union_global_private.gw | 2 +- tests/error/union_global_private_static.gw | 2 +- tests/error/union_global_static.gw | 2 +- tests/error/union_invalid.gw | 2 +- tests/error/union_object_ref.gw | 2 +- tests/error/union_unknown.gw | 2 +- tests/error/unknown_escape.gw | 2 +- tests/error/unknown_new.gw | 2 +- tests/error/unknown_type.gw | 4 +- tests/error/upper_label.gw | 2 +- tests/error/var_defined.gw | 2 +- tests/error/variadic_end_no_start.gw | 4 +- tests/error/variadic_start_twice.gw | 2 +- tests/error/variadic_test.gw | 4 +- tests/error/vector_invalid.gw | 2 +- tests/error/vector_too_big.gw | 2 +- tests/error/without_instance.gw | 2 +- tests/fptr/class_ptr01.gw | 2 +- tests/fptr/class_ptr31.gw | 2 +- tests/import/callback2.gw | 10 +- tests/import/class_template.gw | 24 +- tests/import/enum.gw | 10 +- tests/import/static_string.gw | 2 +- tests/new/break.gw | 4 +- tests/new/global_func0.gw | 2 +- tests/new/global_func1.gw | 4 +- tests/new/lambda.gw | 46 ++-- tests/new/lambda2.gw | 10 +- tests/new/spork.gw | 2 +- tests/new/spork_in_func.gw | 4 +- tests/new/stackov.gw | 4 +- tests/new/stackov2.gw | 2 +- tests/new/static.gw | 2 +- tests/pp/already_defined.gw | 2 +- tests/pp/call_not_enough.gw | 2 +- tests/pp/call_too_many.gw | 2 +- tests/pp/conditional.gw | 4 +- tests/pp/define_empty.gw | 2 +- tests/pp/define_empty_args.gw | 2 +- tests/pp/define_empty_vararg.gw | 2 +- tests/pp/define_text.gw | 2 +- tests/pp/define_text_args.gw | 2 +- tests/pp/file_not_found.gw | 2 +- tests/pp/include.gw | 2 +- tests/pp/undefined_macro.gw | 2 +- tests/tree/ast_doc.gw | 2 +- tests/tree/cast_test.gw | 2 +- tests/tree/class_dot.gw | 4 +- tests/tree/class_template.gw | 4 +- tests/tree/dot.gw | 2 +- tests/tree/false.gw | 2 +- tests/tree/member_op.gw | 6 +- tests/tree/protect.gw | 4 +- tests/tree/return_void.gw | 4 +- tests/tree/shredule_test.gw | 2 +- tests/tree/spork_in_func.gw | 4 +- tests/tree/spork_member.gw | 6 +- tests/tree/uncalled_functions.gw | 2 +- tests/tree/vec_num_dim.gw | 2 +- 239 files changed, 642 insertions(+), 404 deletions(-) create mode 100644 docs/09_Benchmarks.md diff --git a/ast b/ast index 6860cd22..1b4487bf 160000 --- a/ast +++ b/ast @@ -1 +1 @@ -Subproject commit 6860cd22ad558e5efa3bb183fa71bf3c10bc80a7 +Subproject commit 1b4487bfbb845050d0b5c0ed1a1564c9edf4f7ec diff --git a/docs/01_Overview/00_First_Steps/01_InstallingGwion.mdr b/docs/01_Overview/00_First_Steps/01_InstallingGwion.mdr index 1e7717b2..b64f4273 100644 --- a/docs/01_Overview/00_First_Steps/01_InstallingGwion.mdr +++ b/docs/01_Overview/00_First_Steps/01_InstallingGwion.mdr @@ -2,12 +2,12 @@ ## Get the sources -The source is accessible on [github](https://github.com). +The source is accessible on [github](https:#!github.com). Provided you have git installed, you can get it with: ``` sh -git clone https://github.com/fennecdjay/gwion +git clone https:#!github.com/fennecdjay/gwion ``` then change to the source directory diff --git a/docs/01_Overview/Testing.mdr b/docs/01_Overview/Testing.mdr index 3c3a79dd..5dde62b4 100644 --- a/docs/01_Overview/Testing.mdr +++ b/docs/01_Overview/Testing.mdr @@ -1,16 +1,16 @@ # Tests -[test.sh](https://github.com/fennecdjay/Gwion/blob/dev/util/test.sh) -requires [valgrind](http://valgrind.org/) +[test.sh](https:#!github.com/fennecdjay/Gwion/blob/dev/util/test.sh) +requires [valgrind](http:#!valgrind.org/) there are two kinds of tests: * [gwion](#gwion-tests) * [bash](#bash-tests) ## Gwion tests those tests are just gwion (.gw) files, handling special comments: - * `// [skip]` (*optionally* followed by reason to skip) - * `// [todo]` (*optionally* followed by reason to delay testing) - * `// [contains]` followed by string to match - * `// [excludes]` followed by string not to match + * `#! [skip]` (*optionally* followed by reason to skip) + * `#! [todo]` (*optionally* followed by reason to delay testing) + * `#! [contains]` followed by string to match + * `#! [excludes]` followed by string not to match ## Shell test those tests are just bash (.sh) files. diff --git a/docs/01_Overview/declaration.mdr b/docs/01_Overview/declaration.mdr index 07e6d07b..79754b31 100644 --- a/docs/01_Overview/declaration.mdr +++ b/docs/01_Overview/declaration.mdr @@ -15,7 +15,7 @@ However ... @``` decl1.gw Object @ref; <<< "Reference points to no object yet: ", ref >>>; -//Object o @=> ref; +#!Object o @=> ref; new Object @=> ref; <<< "But now it does: ", ref >>>; @``` diff --git a/docs/02_Reference/01_Functions/function.mdr b/docs/02_Reference/01_Functions/function.mdr index e2a26cfa..2fab4d37 100644 --- a/docs/02_Reference/01_Functions/function.mdr +++ b/docs/02_Reference/01_Functions/function.mdr @@ -3,17 +3,17 @@ ## a simple (commented example) @``` function0.gw -// declare function 'test_function' -// with return type int -// taking an int as argument +#! declare function 'test_function' +#! with return type int +#! taking an int as argument fun int test_function(int arg) { - // return the argument + 2 + #! return the argument + 2 return arg + 2; } -// now call the function (and debug print the result) +#! now call the function (and debug print the result) <<< test_function(0) >>>; -// or use alternate syntax +#! or use alternate syntax <<< 1 => test_function >>>; @``` @exec make -s function0.test diff --git a/docs/09_Benchmarks.md b/docs/09_Benchmarks.md new file mode 100644 index 00000000..bc87638f --- /dev/null +++ b/docs/09_Benchmarks.md @@ -0,0 +1,238 @@ +# Benchmarks + +We'll need a bash script + +
+ +### and a gnuplot script + +
+ +## Show the results +Then just run it +binary-trees +### binary-trees +
+![](assets/benchmark/binary-trees.png) +fib +### fib +
+![](assets/benchmark/fib.png) +fib-recurs +### fib-recurs +
+![](assets/benchmark/fib-recurs.png) +method-call +### method-call +
+![](assets/benchmark/method-call.png) diff --git a/docs/assets/benchmark/binary-trees.dat b/docs/assets/benchmark/binary-trees.dat index fb8e99ce..b1e8e6f5 100644 --- a/docs/assets/benchmark/binary-trees.dat +++ b/docs/assets/benchmark/binary-trees.dat @@ -1,3 +1,3 @@ -gwion 0.191172 0.51 -wren 0.23937 0.44 -lua 0.30958 0.46 +gwion 0.18819 0.63 +wren 0.24076 2.13 +lua 0.32172 0.82 diff --git a/docs/assets/benchmark/binary-trees.png b/docs/assets/benchmark/binary-trees.png index 61bef3ec6039069d5aeda98ab419d7e4b3907c79..26a4742220992df87a1481a0c21515c3c0bad71b 100644 GIT binary patch literal 12020 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 literal 11255 zcmd6N2{_gJ`tJ{gB4Z&$J5nK(d9D;0QkjPgm3hw0GOSXmOhqUec7zOTnddoE2%$x0 zl6hF>*;@Ct_c`}}&)NI@?>YB5|L30dJd(B6Z~A`U_x%j-`}~%=(vicghYTUx%Eo>$@NbP2K(vNhBW)8-kofl&@aa@{FAy^w-k#h$k+g zYH4d&o{^lmeK9(Y-QA>K#x7_%&g1)=nGM`pgKjLIL3RP1F zF|%(k(r{&VO+Rq{Zlo)DTEpDt-SjQPt@m~fnTTQ zo^+Ala2bx?xghAs@Mz9e>NJ9k81Z%-L=d6l^wkJLc?ltdntGWHselqW2OvQ@WX)<q7AfaDbH;Mw%iH6}k4HvE&d<*W(sHh^t;zaq zX6L#MSNe9P+;HJ6@!Q)LwrtBUD&my!ycPc8ru<%h&tq9xSsV^`?%cUUhYrF27k1<} z23#!LVy9I_L!VZbdhp}1?N2x+FE4K=wy?6&IGj7LcQ-ppqN?RvnFpS? zReZ?veqX+|ds#*MAx@_1ij*5SZtT_2`i&g+OYM3a8(VJC8sk^w?&g-Jl@9wa7e=Gz zS$^OM<*yoP@xJT&x+}ew3HA;Sg$5Yf(ABjyINDA0{{8z#wF`q~9wXHcISGq_tRad~ z<8R)uD2EG}RL=RmKE|h0++Jwj!c;a$=uqN3*UF_7nh7zJ%~|T6P*_%0mY8^Nyg5=% zP7X`rT~V2vn>&p0^YgoK;R10pjJUZoOe9RSz6(evd4o`zUPAx+>q&Wed0iLSvT$xu zQBhe5jnuA^RNY&*UJg3wa!mgGSq|~DwY3E|r=F_WTalXDD5{r%Q-6E0-nS5<^4qs> zpFUkt4p)zpa)ay6&Dkl3%Mo{7dP63E45k+J+8G%cQP6U@4*Ryp%Zk0j3}eE%kB2n8 zdGjWOO?<|+^jZ+p5{D4aF;W(~YKI~Z50A1KafgAI+~;Iuc57bo;uMIlIHcX@Eai84 zh1+Eq+1dG(J0tmYy^kzzZ1_86VGN6Ow6u2Dvi$epC+^Lgk3OWcO=l8Z{ms9)EG=}| z6d0J849lX{SH11$341$x4w2l}L*-t?B~D_;(2(Eq&!)x2MYq}Ry&nI)=*c89MsgBr z$`L0C^>~?Sn|O%__txinZ{NNh5c9JwPMU;-1Ur#)zmYt*r#X_(vNgtSaipfRQ)7I6 z<8F$2TptcM?p1hBGi7ScJE>!;`P)NBw?ov_cPf3h_O}v^M)G=PUgjY@2t2JREcvx- z*ZjA;5*&ugw`wRjj~+W#vDCn}ASg;(_u?2I%?YVhoUX}Wx!20x#;~J<1IK4$*j9ag z{br>sVPRp};NXyu3YW>Y>8@1Sn{N^lOiWCwAhSwKOWWGoRHFqdR@$WHiCgVEgMHt> z7kjVGEH5t?78XLV?Dbde8S3gr8)tETZ6X`vghz&$Jbd^tJghKkeNKGX$Aw7PBQDYs zg}y7pjpTbS-K#K`_gEO1nVEU?=n=_6F@&IUc)UNsYrJ4KP`}LGUPq_frCoNCfU2h5 z?g;Z+t!Fm59{!cgKV?)E!z(7t(=buSoat4KV zy+}JL3;w6yFrGxH2C8D8sgTclujNg-tq)TM=q9L-JkfCbu=(3NJO0Z}XA*5mctnjK zk@LJ7Z;6KJGECMuA?bY8^?bEiFrq=5@R@L`ETyy&aPI``wNxVX5wx*8J77pi+pw4h0WO(eIn|5l5MnLeQ_f$)JEwK3>nu1^>j z^iLBZPWls+qQ;2?JTZ#H^Fn%gxzBWGvQ2@MgoNkX3@%#0$k~3oUeJ%8iK+YV(Pl_m zoBB(&V1@JLDyR;)3|(817+qtpYvCWLm<2M8E4;T?ryo9icvE)m8`M)HVF>vTN7%&p z^|GrgEPHd!ZF{iV9R7JfSPFTGv9+<` z<>w#Bv%HBymE}%1$`f*QGDP31sdSlLyb&jbtC*ghEi-EhH)f2Aj?U7{`LWc?0k ztgVfUllEW|G@c{iTSuMdzUPb;^cch0`YL^Q*5~`%rKu^W z*A8E~v!H9@Tj06$!@4U)TU%RHTpZ4N>hx(?wXGmqXQpbil^;QZQgQ03UA;J*+mE{E z6B82VKxI@BmX$Ti>fsB6e6Y=`n3$bK z?X25Fv2_?M{qTX?ybEqC<;J@d8FdvEmFw4?ZhY_SlX9E+X5U|Ut~EB69ZGDh#3-u} zm^}Pd|Kb>SVxx+<2T-Hi^?T-REDY`}w+Qz4 z_nSan(R4SJAzB{rczd)2h6@ymw?PD=X8|(y$hG zc9}Sv6Qg;bvXAU`W@z#DFw870U_XA;D{)Q^3k$PF8)s!@X1a>%BN43?s0|u+iN#t@ z!mXr^&$*d0wNNtkVJ$--uY@G*?d?7ALvfNWDJV-TtBBEPuDib8~Y$A>#>UJYXR&O^ZnMpX5h3RgXFq?_(dkw0q{qk5)@R>T7ChfI}Uj zrNvKA)9VdAt~;?P!N|bCKu6~^)^KE_t-D*NXKZU_GVtls7&V@VrVj(FEY#%5(|9~_ zgss{Dqm!&r(tc986F_f3VQ{a6<$gEZMpaeSEJX9#+S(w*cNTNw!0_UI5;d92moFDN z4!h%lD3#7G0pR$p=OxIld=ZA*2}ScsMB;8LCyxy!rJLDrVr2gw%{lf8vI}{N8F8#7c+Eq2L#n zjlAn$pVM6RuIRA($t4z{qNVi>LRv~n>h**Paa(so_YHoagprPJ#0Jp#%l_35EN-q$ zymQpi(E+wngu%>rCaX$HN`}c3ig%EJ8dI@%a75DMsWAWDF<==HO{*ib?Jod{wRCmi zla+qQsy#Tq8)G;*JG-+zn}r&^Ba};ynmz_>16Bm~GAkovc5bfRb-Gg;U%s-EKparL zrttX7moM@0@xYLV0U3d$mbuTXsHwTy8|B=qf3FZ&xjmEdPTaAQNZ4s@Z6#HWtEL=T z+Alh%e|wFNjC{)RUM2bQuviCFtiIsfn^H3IS$dLNrk-k;XK_PQGh%tvQcVj;6fjN62S4gE z_45kt`%`=_^%bmreXkJ2EZ9A}21t#;Vg=5grPG@^z{8hN6mMtd^&{3(NlEGI)jC** zVei@V9R*1B)seX15gO0k60ensAi+w{(N9kR&;izAO@=E_;(UCnu0{y@@=0`K!pO)7 z>>+IV*RNmegP7st93 zZ}mzs=@1o_VSx>9GQoeLRf7a!q5nZvTvjG6DvG<8qou8_kLmvU^;U(k|9oG89EJbp zXdvWD#l}#X-=4R*x%s6_mzkJ}pB-HfH8C${I>a zjdQ(uMRvW*H;Jn^_ZCpI-RChnWl&T-hP*6qQH*E(Lc$X8*nihEn2vC6s%g3BrHZO* zQc_anDqtr@hmD#%sYBwWFTAvQao^H3mGUkjh+_OEg2iA$oi;MTL zv$Ols)<$#W$UbseF;ODbpBXu;#onDid-ijMQU*?nJ#>A2J#aqPby`C|itE%VIl|`H zSYw!yqGG7uTLcN_ULu)ulGvV~9*3KTV$Kv)Zz}ZR!v`N=J4rex5G3h}4>Id2RW`UV zbib%yn>P{`Bs)4RtbLzCX=#brc4zK$H_FDyLF&662=Y|H2Wf0zka zkWlupudk2Ky?ggEb!O>8XI+IK55n5hERn><$2;Wc0mFN3p`;YpWTtZSCg1jIbC6hK78+yugaPCPyH< z6C_;}vwCJ-OM`=he@9|q6Pm`@;|Th0%m)+7dhxrkbDKQ;2ZtYnnpdRyAC&O_FWl|l z>MD4iL;qXut7xy6SZrK!U=QMJl)^NK0eSLQfTUuJit3>ZNP-n%GAP83z8_B@n zU|dX$O^#lAdU~dgE#Rmz0OPztLIB7uD-qU}l@-T<;@cV;_b$E#(lpT9J1v(|TH3c2 z7Zt@M7z^$WR|^}-9SsdVVo?Pe?G)h&nw7^pQ2wRhIT+oXbfSi$S$*R%&dK^R}Yly|x@_1tyCx|hq<1AZ= zkT*9fjU}F{r{?v~FUY!=86|627Z}i@?ECW55)*$+btHkgv0B^kB|%I9Uo7~UZS93KYRAm=~6QH+JQc?i% zL(NK{vdB3eaI&zlxN_wR0JegH0z99)dtp_TKbRl6Yf#s6`I(uS`C5l}C&a{{4HXiRI-oTwM1-BZ44b{G<;S+M{y%YH$~z7doG0dF|69zx?tGYY5Nz^O%&BiMw2EY-}zr zE|cvESvnbRmzTE3oyY87h8| z)M53dy}jzen4+@s^CmNca?b~rmZ{OUt|C$ zr^f{Vc!^VTXnQe3u%=L9IvH*f>|ief=-S#swF`Ro3@Q>!D=B28S7jpAOZLCZ=9cDW z$Y!Nf(BXC^;{z6a*|?y~MuaSHDa zAn5n>LC7A=$x$2SI(JK%rM?b3sv6^Fb^vEO@xN&CJb3MMUxo z3d}7ncXoC_eVjGC87FnR#reU5oX*`=N54D}J+ZN|0|R#+oQ9>n^MmYrdpn3IekiKo z@0~i8SWr*^_8+JoUmCxi`J&Ux&F$^cgXNHUL+1fEN5judO8=TGqkNP7{@3ZQL_QYb zsPl|Q53TsgpDacK>!kAs$E2G3>VH|{KdPRQ4Nb0};D%%>XQM%eln^Se#V#hE2w;mf zi~h8AehUhlsppYPl;FfbelDQTaQ&8K8#M^xcnbbvU`8H~owoXG#{Ov<|7X8hezf}h z`SWaIc9e$>by$g5TU&!u%0V6-9ql+&E-4|Q7d8I$=~Lr(KldRw_%`+gu^;h}(J3Bk8tGCtiWMZ-Iet?|j-wsnCrul$H zswygN3Gya-dMse1GcY)BE{zXA`+tj~($dm_V()6 zw70ZmWM<~~+JRLGhQ6}0a`_QzgvA5uK22cKa6E}Ysq6Gm1!}VOU22C_l%R>yhTYYu~3`Y4RX* z$m`iWs+X3QK>jVrG7B09zj$$&ntJt92WP{yqA5gh6FkzNu~fnr*b%U(foQT5w193z z08WBO3I&pnF9S*)26J9ox_@|hcukfqRXr};yrj6;^Q30QYNsmj)gwoaoH%h}e0&^M zJI}Ix2o$$f6fMyA6-8ucYYQIynv&8P9v;Q3SMv)C!EpZaRyei2W&=O0TX|pOISx=; zKS~#4kZd%jG8QT$IZP61zI4WKJOBGw*s+$V z=h#akI*+J=9@hU#SIGco%)Si!3$XoXXT*O2@V|JU=nM4!L@tqM9Xo_nQ!;Q?4-O83 zox~KBoSxonQvg{uv$hTH;hN+oG-h@-@HZiWnwplJfno-qT>9_$sb@#xwdNB}fF9Aa z2N2T(&uK?MlTJ-d6&Fh+r|D!IArI)VI%;?fM3#yV($n4DP*+#HQPstctsCiVzSV%u&k^s4}6Jd z&nXKy1y$VsEWpw|EiEl*Eelc526nZ6ZlgvnRROF_PftU-W3lSi?yjzH)KXSgS4U~F zX=&CrHU`B`qgJnvAk|Y#ivI*_TDnAD^^fX%Aaffjf~Nl&f~>Es@bU2lg@&rDsRciK zW@T@W`S|e-Slx8w_`ZT!sPyCkms7hy(4CW%?6nhHv40KQq!b^EM>pqgGRpfJ%q=y( zFmJi4dyoqM;eBsi}FMNflgroDEeg9kpRf1Wo|B?Cue!=WFgl#hMTWI7Uv zCf43VQw7yX!|9-GLo1}`{~#yqo7@oUAHZ!jrE3^g{rbo7bH=E9HX zXP{N=4gDx^wd{v0D>5_ZU==_x(;KlO2$?8h;m@71>n2F`=0*6F1bKrr4DWY18UMRJ z;-X$hXJ_u++NUpH(uF8SL`CUnYL4A?^77i+9{>mlFxPjmvYIMbi?}JLU+S7>fPqnu z?cu$_VNo$L8XuE(vTm#qpS)?!ql3-e4Gj%2ngS9q12+RU(;W1r?QLz@n%hbJZAWZt zS58mO&G``bHki*FeCV)(TBL(9SlgORD8ny!je8CauJl!3KfZZyYQq^7pFW)W%DBh7 zA^7+LnRUxDVH%v z+M`EmY30E{!h_EYemj%~GE&m;hzR2Dq&%OYY*wtF$40rB&?)i)78w)4cFnaimZLDX zg5?|P?EEo9++Atc&D5hmc1+vI$QQbPU|zymhzlN7Y)?3wBqr-voPK_$R}QzawT+yZ z?=K2?^vD=BFWQbecJ%1=egA7vT2n(KF)`8G+xxWzbQZF*@G!POk&FM8Tq3RwM5=PQ zS&rW83FsC&3|G$g8R+YuQ`WeB`_*I~+A_d^Eui#3a{_&TrEgg$`$)6b_l1g812z_V z1ytg#)l%d5)ESQpXNfh=w5A?e73(o7$)zrnp&4hy#Kc5J-RM%KB%LT^cwR?EDS~lc zUw`gKfq}gcOR(Y?UCPCGt-$_a071nC1SX6`fDgu*V^G!A+v^3KAG#1qoW5GqU>j*? z;IJgn?TF-VvMC7Ne19hLGA87*5h<8lkt(8YGg`@#-y^$hJv?Z!M}nV?%H00###kr1 zo;hbyNK+K={Je~W9Re*2qIN+xCkHxYZdZ+~K=8wRwF#-rU{)0MN3zAq#mRVSYzvSH znbqpEaR^+7*%^0tcL-`|rf?RP1xAi}ZTR(&KehNAG+Hw&`aNy?4z+j1PC)l|j6MtWHs-zcP_5DY!7F351JL5ZS3PAK! zRQP6VLT4zZbpi+|Un>kr8J9SZ!*~c6!FaACNeT4D_JB+KS_!x>=LH1?Pn|jiwwYO& zbT74+z04c~zfq}H)Ht*&p;xxKxikjVPlbr+w$-|OOnTXyetw$G!r@*aa}$TZ2SYA@ zRAAVmhtR0SvxPK(A=(xrs+xgY=r793&R*PiF5Yw2*6pv~@A3@%ooJlRV5KigRka0L z17oFBUW>=xk6KwMHRx# z&%GQL>Zh+?zlLdytJ9pn1(rZOEbV>DpwYWMEh}1k0#ED)W!g`T{it$7x$ z-q0S6Y{1nJAJU`Xw24C#Ah-P#NcZRiSGi!uSn*dpp{HD>^$n8wP9k zJC!h{<@?>ySk0oGPmZVVZxMjCZ+>hBJm@Urc^d(Pe5MO9);5m#Vqobn0e-?((40MDVIrQug{SjwYN84eU4(9dFjRuG*IKeQ7VC80FyJ0LD z11j<&f_7?vv zl#2Xj1GRfN*|dnKq12bf?2=I8Fd9-zeDh9|)fRT$39>dJt-2!>Tt)A7&e z?xV>I#AHk!L0>aGoMF66WPbnwhKNW>Nx`&_#Oz_&+spVk3jeka!w8Y{>eTHFoHsaZ zkXsTwJUlQ())2zh+)XRL3xkHx_A{#T8??x)fU%WuZV>!lW0oRVNb!28(l9BJg|mU| z1@C-@z_w69Fj`w(mD%J>gI0KHA=A;Lb#-+I4jka-=H8vHB4q5`mcdKEBvDTl=H<14 zji-&jlEoZ%6eqW88s*l;wMj@l#=q^+g`)s?>em)Id2adEoB!x ze06cL{wscMSqOKDNdXoGbnV{W9=IdWwCo%hn3Ed;0~DYROblT2`y~Tr-Dc?tm(?h9 oyQbNzeL=FZD3|}+MxA!$k9QxOuK&r6Mc}1;P5mnNis_^O1$(t7(f|Me diff --git a/docs/assets/benchmark/fib-recurs.dat b/docs/assets/benchmark/fib-recurs.dat index 2a8f7e6b..0d9504d6 100644 --- a/docs/assets/benchmark/fib-recurs.dat +++ b/docs/assets/benchmark/fib-recurs.dat @@ -1,3 +1,3 @@ -gwion 5.3121 0.52 -wren 13.5283 0.47 -lua 7.4075 0.63 +gwion 5.4137 0.34 +wren 13.5268 0.22 +lua 7.2720 0.33 diff --git a/docs/assets/benchmark/fib-recurs.png b/docs/assets/benchmark/fib-recurs.png index 085ab844c176b8f8eab80f9694413443f9a3743f..7b7cc503459669a49970f4f9e253f8428482a9b5 100644 GIT binary patch literal 9713 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 literal 9561 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 literal 8736 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 int stretchDepth; Tree.new_Tree(0, maxDepth) @=> Tree@ longLivedTree; -// iterations = 2 ** maxDepth +#! iterations = 2 ** maxDepth 1 => int iterations; for (int d; d < maxDepth; ++d) 2 *=> iterations; diff --git a/tests/benchmark/fib-recurs.gw b/tests/benchmark/fib-recurs.gw index cb667e96..be2c4ab7 100644 --- a/tests/benchmark/fib-recurs.gw +++ b/tests/benchmark/fib-recurs.gw @@ -4,5 +4,5 @@ fun int recursive_fib(int n) { else return recursive_fib(n - 2) + recursive_fib(n - 1); } -//<<< 5 => recursive_fib >>>; +#!<<< 5 => recursive_fib >>>; <<< 40 => recursive_fib >>>; diff --git a/tests/bug/Tester.gw b/tests/bug/Tester.gw index bba45d65..ad9e9ab7 100644 --- a/tests/bug/Tester.gw +++ b/tests/bug/Tester.gw @@ -8,8 +8,8 @@ Tester t; Object o; Object @ref; "test" => string s; -//<<< t.assert_equal("test", 1, 1) >>>; -//<<< t.assert_equal("test", 2, 1) >>>; +#!<<< t.assert_equal("test", 1, 1) >>>; +#!<<< t.assert_equal("test", 2, 1) >>>; <<< t.assert_equal(s, 1, 1) >>>; <<< t.assert_equal(s, 2, 1 + 1) >>>; <<< t.assert_equal(s, 2, 1) >>>; diff --git a/tests/bug/class_doc.gw b/tests/bug/class_doc.gw index 7946c2ff..f4598a8c 100644 --- a/tests/bug/class_doc.gw +++ b/tests/bug/class_doc.gw @@ -1,11 +1,11 @@ -//! doc for class 'C' +#!! doc for class 'C' class C { - //! has an int + #!! has an int int i; - //! a fun + #!! a fun fun void test() {} - //! operator + #!! operator operator => void(C c, C d){ <<< c, " ", d >>>; } diff --git a/tests/bug/do_while.gw b/tests/bug/do_while.gw index a93a5cf1..83573d25 100644 --- a/tests/bug/do_while.gw +++ b/tests/bug/do_while.gw @@ -2,9 +2,9 @@ do { <<< i-- >>>; } while(i); 5 => float f; do { <<< 1 -=> f >>>; } while(f > 0.0); -// do { <<< 1 -=> f >>>; } while(f > 0); +#! do { <<< 1 -=> f >>>; } while(f > 0); 5 => f; do { <<< 1 -=> f >>>; } until(f == 0); -//do { <<< 1 -=> f >>>; } until(f == 0.0); +#!do { <<< 1 -=> f >>>; } until(f == 0.0); 5 => i; do { <<< i-- >>>; } until(!i); diff --git a/tests/bug/dot_member_func.gw b/tests/bug/dot_member_func.gw index c3df878a..24a85023 100644 --- a/tests/bug/dot_member_func.gw +++ b/tests/bug/dot_member_func.gw @@ -1,4 +1,4 @@ -// thanks to afl-fuzz +#! thanks to afl-fuzz SinOsc@s, t; Gain g => dac; 1 => t.freq; diff --git a/tests/bug/float.gw b/tests/bug/float.gw index 7197eed7..7dddd43d 100644 --- a/tests/bug/float.gw +++ b/tests/bug/float.gw @@ -1,487 +1,487 @@ -// coverage for 'float'. (generated by util/coverage.sh) +#! coverage for 'float'. (generated by util/coverage.sh) float a; -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1=variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1+variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1-variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1*variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; 1 => float variable2; <<< variable1/variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1&&variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1||variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1==variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1!=variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1>variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1>=variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1<=variable2 >>>; } -//testing operator for and float +#!testing operator for and float { float variable2; <<< -variable2 >>>; } -//testing operator for and int +#!testing operator for and int { int variable2; <<< !variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1=>variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1+=>variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1-=>variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1*=>variable2 >>>; } -//testing operator for float and float +#!testing operator for float and float { float variable1; float variable2; <<< variable1/=>variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1=variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1+variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1-variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1*variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1/variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1&&variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1||variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1==variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1!=variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1>variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1>=variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1<=variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1=>variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1+=>variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1-=>variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1*=>variable2 >>>; } -//testing operator for int and float +#!testing operator for int and float { int variable1; float variable2; <<< variable1/=>variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1+variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1-variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1*variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1/variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1&&variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1||variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1==variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1!=variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1>variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1>=variable2 >>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1>>; } -//testing operator for float and int +#!testing operator for float and int { float variable1; int variable2; <<< variable1<=variable2 >>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1=>variable2 >>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1+variable2 >>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1-variable2 >>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1*variable2 >>>; } -//testing operator for dur and float +#!testing operator for dur and float { dur variable1; float variable2; <<< variable1*variable2 >>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1/variable2 >>>; } -//testing operator for dur and float +#!testing operator for dur and float { dur variable1; float variable2; <<< variable1/variable2 >>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1>variable2 >>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1>=variable2 >>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1>>; } -//testing operator for dur and dur +#!testing operator for dur and dur { dur variable1; dur variable2; <<< variable1<=variable2 >>>; } -//testing operator for time and time +#!testing operator for time and time { time variable1; time variable2; <<< variable1=>variable2 >>>; } -//testing operator for dur and time +#!testing operator for dur and time { dur variable1; time variable2; <<< variable1=>variable2 >>>; } -//testing operator for dur and +#!testing operator for dur and { dur variable1; <<< variable1=> now >>>; } -//testing operator for time and dur +#!testing operator for time and dur { time variable1; dur variable2; <<< variable1+variable2 >>>; } -//testing operator for dur and time +#!testing operator for dur and time { dur variable1; time variable2; <<< variable1+variable2 >>>; } -//testing operator for time and time +#!testing operator for time and time { time variable1; time variable2; <<< variable1>variable2 >>>; } -//testing operator for time and time +#!testing operator for time and time { time variable1; time variable2; <<< variable1>=variable2 >>>; } -//testing operator for time and time +#!testing operator for time and time { time variable1; time variable2; <<< variable1>>; } -//testing operator for time and time +#!testing operator for time and time { time variable1; time variable2; diff --git a/tests/bug/float2.gw b/tests/bug/float2.gw index 33120f40..59f8352c 100644 --- a/tests/bug/float2.gw +++ b/tests/bug/float2.gw @@ -64,8 +64,8 @@ float f,g; <<< 0.0 || i >>>; -//<<< 1.0 == i >>>; -//<<< 1.0 != i >>>; +#!<<< 1.0 == i >>>; +#!<<< 1.0 != i >>>; <<< 1.0 +=> i >>>; diff --git a/tests/bug/ugen.gw b/tests/bug/ugen.gw index 00249b96..4329690a 100644 --- a/tests/bug/ugen.gw +++ b/tests/bug/ugen.gw @@ -1,21 +1,21 @@ UGen @u; -//u.last(); // should fail => fails. +#!u.last(); // should fail => fails. SinOsc s => Gain g => dac; for(-1 => int i;i < 6; i++) i => g.op; samp => now; s.last(); -//s.chan(2); -//dac.chan(1); +#!s.chan(2); +#!dac.chan(1); samp => now; -// there a bug somewhere. -// probably deref 'dac' to many mul ... -//dac => blackhole; -//dac =< blackhole; -//dac =< s; -//dac =< s; +#! there a bug somewhere. +#! probably deref 'dac' to many mul ... +#!dac => blackhole; +#!dac =< blackhole; +#!dac =< s; +#!dac =< s; s =< dac; s =< dac; -//dac =< s; +#!dac =< s; diff --git a/tests/error/0_size_variable.gw b/tests/error/0_size_variable.gw index d5e4e8d9..11ca4d63 100644 --- a/tests/error/0_size_variable.gw +++ b/tests/error/0_size_variable.gw @@ -1,2 +1,2 @@ -// [contains] cannot +#! [contains] cannot void this_won_t_work; diff --git a/tests/error/abstract.gw b/tests/error/abstract.gw index 38421718..19930d17 100644 --- a/tests/error/abstract.gw +++ b/tests/error/abstract.gw @@ -1,2 +1,2 @@ -// [contains] is abstract, declare as ref +#! [contains] is abstract, declare as ref Shred shred; diff --git a/tests/error/already_parent.gw b/tests/error/already_parent.gw index 16ac6592..63959026 100644 --- a/tests/error/already_parent.gw +++ b/tests/error/already_parent.gw @@ -1,4 +1,4 @@ -// [contains] has already been defined in parent class +#! [contains] has already been defined in parent class class C { int i; } diff --git a/tests/error/arg_prim_ref.gw b/tests/error/arg_prim_ref.gw index 2e78acc6..a8191668 100644 --- a/tests/error/arg_prim_ref.gw +++ b/tests/error/arg_prim_ref.gw @@ -1,2 +1,2 @@ -// [contains] primitive types cannot be used as reference +#! [contains] primitive types cannot be used as reference fun void test(int @i){} diff --git a/tests/error/arg_res.gw b/tests/error/arg_res.gw index a94baa56..c4988725 100644 --- a/tests/error/arg_res.gw +++ b/tests/error/arg_res.gw @@ -1,2 +1,2 @@ -// [contains] this is reserved +#! [contains] this is reserved fun void test(int this){} diff --git a/tests/error/array_assign_exp.gw b/tests/error/array_assign_exp.gw index 15365ef9..5b44a0f2 100644 --- a/tests/error/array_assign_exp.gw +++ b/tests/error/array_assign_exp.gw @@ -1,2 +1,2 @@ -// [contains] do not provide array +#! [contains] do not provide array [1,2,3,4] @=> int loop[1]; diff --git a/tests/error/array_depth_match.gw b/tests/error/array_depth_match.gw index 44485602..e411cf94 100644 --- a/tests/error/array_depth_match.gw +++ b/tests/error/array_depth_match.gw @@ -1,2 +1,2 @@ -// [contains] array depths do not match +#! [contains] array depths do not match [1,2,3,4] @=> int k[1][1]; diff --git a/tests/error/array_err2.gw b/tests/error/array_err2.gw index a589e044..5afa3717 100644 --- a/tests/error/array_err2.gw +++ b/tests/error/array_err2.gw @@ -1,2 +1,2 @@ -// [contains] partially empty array init +#! [contains] partially empty array init int i[2][]; diff --git a/tests/error/array_err3.gw b/tests/error/array_err3.gw index 971933f5..7f1ed39d 100644 --- a/tests/error/array_err3.gw +++ b/tests/error/array_err3.gw @@ -1,2 +1,2 @@ -// [contains] partially empty array init +#! [contains] partially empty array init int i[][3]; diff --git a/tests/error/array_excess.gw b/tests/error/array_excess.gw index a5366648..ebb16797 100644 --- a/tests/error/array_excess.gw +++ b/tests/error/array_excess.gw @@ -1,3 +1,3 @@ -// [contains] exceeds defined dimension +#! [contains] exceeds defined dimension int i[2]; i[0][0]; diff --git a/tests/error/array_incompatible.gw b/tests/error/array_incompatible.gw index abedb313..0af41e4b 100644 --- a/tests/error/array_incompatible.gw +++ b/tests/error/array_incompatible.gw @@ -1,2 +1,2 @@ -// [contains] contains incompatible types +#! [contains] contains incompatible types [null, 1]; diff --git a/tests/error/array_invalid.gw b/tests/error/array_invalid.gw index cbc1a1ce..b4e738ee 100644 --- a/tests/error/array_invalid.gw +++ b/tests/error/array_invalid.gw @@ -1,3 +1,3 @@ -// [contains] must be of type 'int' +#! [contains] must be of type 'int' int i[4]; i[null]; diff --git a/tests/error/array_invalid1.gw b/tests/error/array_invalid1.gw index abe913b9..490d340e 100644 --- a/tests/error/array_invalid1.gw +++ b/tests/error/array_invalid1.gw @@ -1,2 +1,2 @@ -// [contains] invalid format for array init +#! [contains] invalid format for array init [ [1,2] [3,4] ]; diff --git a/tests/error/array_multi_except.gw b/tests/error/array_multi_except.gw index 1e28ca76..614905e1 100644 --- a/tests/error/array_multi_except.gw +++ b/tests/error/array_multi_except.gw @@ -1,4 +1,4 @@ -// [contains] NullPtrException +#! [contains] NullPtrException int i[1][1]; null @=> i[0]; <<< i[0][0] >>>; diff --git a/tests/error/array_multi_oob.gw b/tests/error/array_multi_oob.gw index b71375c6..0ab571b2 100644 --- a/tests/error/array_multi_oob.gw +++ b/tests/error/array_multi_oob.gw @@ -1,3 +1,3 @@ -// [contains] ArrayOutofBounds +#! [contains] ArrayOutofBounds Object o[1][1]; o[1]; diff --git a/tests/error/array_mutable.gw b/tests/error/array_mutable.gw index 744b1936..59446465 100644 --- a/tests/error/array_mutable.gw +++ b/tests/error/array_mutable.gw @@ -1,2 +1,2 @@ -// [contains] non-mutable +#! [contains] non-mutable [1,2,3,4] @=> [1][1]; diff --git a/tests/error/array_no_member.gw b/tests/error/array_no_member.gw index 5963e77b..de08f1fd 100644 --- a/tests/error/array_no_member.gw +++ b/tests/error/array_no_member.gw @@ -1,3 +1,3 @@ -// [contains] has no member +#! [contains] has no member int i[2][2]; i[0].test; diff --git a/tests/error/array_oob.gw b/tests/error/array_oob.gw index 2f395432..cb186b85 100644 --- a/tests/error/array_oob.gw +++ b/tests/error/array_oob.gw @@ -1,3 +1,3 @@ -// [contains] ArrayOutofBounds +#! [contains] ArrayOutofBounds Object i[1]; i[1]; diff --git a/tests/error/array_oob_multi.gw b/tests/error/array_oob_multi.gw index 051efbc6..2dcdb4ed 100644 --- a/tests/error/array_oob_multi.gw +++ b/tests/error/array_oob_multi.gw @@ -1,3 +1,3 @@ -// [contains] ArrayOutofBounds +#! [contains] ArrayOutofBounds Object i[1][1]; i[1][0]; diff --git a/tests/error/array_type_match.gw b/tests/error/array_type_match.gw index 52b7a544..63709514 100644 --- a/tests/error/array_type_match.gw +++ b/tests/error/array_type_match.gw @@ -1,2 +1,2 @@ -// [contains] array types do not match +#! [contains] array types do not match [1,2,3,4] @=> Object k[1]; diff --git a/tests/error/auto_not_array.gw b/tests/error/auto_not_array.gw index d418d9b4..95170ee8 100644 --- a/tests/error/auto_not_array.gw +++ b/tests/error/auto_not_array.gw @@ -1,4 +1,4 @@ -// [contains] not allowed in auto loop +#! [contains] not allowed in auto loop Object i; for(auto a: i) <<< a >>>; diff --git a/tests/error/break_out.gw b/tests/error/break_out.gw index 7ff8e15a..a48ab274 100644 --- a/tests/error/break_out.gw +++ b/tests/error/break_out.gw @@ -1,2 +1,2 @@ -// [contains] 'break' found outside of for/while/until +#! [contains] 'break' found outside of for/while/until break; diff --git a/tests/error/cant_find_in_nspc.gw b/tests/error/cant_find_in_nspc.gw index cbab52eb..0513e7b3 100644 --- a/tests/error/cant_find_in_nspc.gw +++ b/tests/error/cant_find_in_nspc.gw @@ -1,4 +1,4 @@ -// [contains] cannot find class +#! [contains] cannot find class class C { class D { int i; diff --git a/tests/error/case_const.gw b/tests/error/case_const.gw index 03fe98ea..9613f147 100644 --- a/tests/error/case_const.gw +++ b/tests/error/case_const.gw @@ -1,5 +1,5 @@ -// [contains] is not constant -// also coverage for 'case' +#! [contains] is not constant +#! also coverage for 'case' enum {zero, one, a , b, c }; class C { diff --git a/tests/error/case_not_const.gw b/tests/error/case_not_const.gw index aa0b6847..bb965417 100644 --- a/tests/error/case_not_const.gw +++ b/tests/error/case_not_const.gw @@ -1,4 +1,4 @@ -// [contains] is not const +#! [contains] is not const int i; switch(maybe) { case i: diff --git a/tests/error/case_postfix.gw b/tests/error/case_postfix.gw index c5c9f752..78a00a2c 100644 --- a/tests/error/case_postfix.gw +++ b/tests/error/case_postfix.gw @@ -1,4 +1,4 @@ -// [contains] unhandled expression type +#! [contains] unhandled expression type int i[1]; switch(maybe) { case i[0]: break; diff --git a/tests/error/cast_unknown.gw b/tests/error/cast_unknown.gw index b2dbc4ed..81379281 100644 --- a/tests/error/cast_unknown.gw +++ b/tests/error/cast_unknown.gw @@ -1,2 +1,2 @@ -// [contains] unknown type +#! [contains] unknown type 1 $ UnknownType; diff --git a/tests/error/class_enum.gw b/tests/error/class_enum.gw index d4e68cfa..3a16175f 100644 --- a/tests/error/class_enum.gw +++ b/tests/error/class_enum.gw @@ -1,4 +1,4 @@ -// [contains] unary operator '--' cannot be used on non-mutable data-types +#! [contains] unary operator '--' cannot be used on non-mutable data-types class C { enum { a, b }; diff --git a/tests/error/class_inside.gw b/tests/error/class_inside.gw index 324772a8..22afc751 100644 --- a/tests/error/class_inside.gw +++ b/tests/error/class_inside.gw @@ -1,4 +1,4 @@ -// [contains] declared inside itself +#! [contains] declared inside itself class c { c var; } diff --git a/tests/error/complex_too_big.gw b/tests/error/complex_too_big.gw index 20f5c56c..c9c0c150 100644 --- a/tests/error/complex_too_big.gw +++ b/tests/error/complex_too_big.gw @@ -1,2 +1,2 @@ -// [contains] extraneous component of complex value +#! [contains] extraneous component of complex value #(0,0,0,0); diff --git a/tests/error/conflict_super.gw b/tests/error/conflict_super.gw index c9fbeecb..72199c4b 100644 --- a/tests/error/conflict_super.gw +++ b/tests/error/conflict_super.gw @@ -1,4 +1,4 @@ -// [contains] function name 'test' conflicts with previously defined value +#! [contains] function name 'test' conflicts with previously defined value class C { int test; } diff --git a/tests/error/const_arg.gw b/tests/error/const_arg.gw index 13923814..916fdacd 100644 --- a/tests/error/const_arg.gw +++ b/tests/error/const_arg.gw @@ -1,4 +1,4 @@ -// [contains] right-side operand is non-mutable +#! [contains] right-side operand is non-mutable fun void test(const int i) { 10 => i; } diff --git a/tests/error/const_non_mutable.gw b/tests/error/const_non_mutable.gw index 5b46158e..d7b32ef3 100644 --- a/tests/error/const_non_mutable.gw +++ b/tests/error/const_non_mutable.gw @@ -1,4 +1,4 @@ -// [contains] right-side operand is non-mutable +#! [contains] right-side operand is non-mutable 10 => const int i; 12 => i; <<< i >>>; diff --git a/tests/error/continue_out.gw b/tests/error/continue_out.gw index 0c5513c0..45570ccb 100644 --- a/tests/error/continue_out.gw +++ b/tests/error/continue_out.gw @@ -1,2 +1,2 @@ -// [contains] 'continue' found outside of for/while/until +#! [contains] 'continue' found outside of for/while/until continue; diff --git a/tests/error/default_case_defined.gw b/tests/error/default_case_defined.gw index 73ade6cc..b551a8bf 100644 --- a/tests/error/default_case_defined.gw +++ b/tests/error/default_case_defined.gw @@ -1,4 +1,4 @@ -// (contains] default case already defined +#! (contains] default case already defined switch(maybe) { default: default: diff --git a/tests/error/defined_class.gw b/tests/error/defined_class.gw index 30910dd3..10a26a2f 100644 --- a/tests/error/defined_class.gw +++ b/tests/error/defined_class.gw @@ -1,3 +1,3 @@ -// [contains] already defined +#! [contains] already defined class C{} class C{} diff --git a/tests/error/divide_by_zero.gw b/tests/error/divide_by_zero.gw index 724f3621..56a09b04 100644 --- a/tests/error/divide_by_zero.gw +++ b/tests/error/divide_by_zero.gw @@ -1,2 +1,2 @@ -// [contains] ZeroDivideException +#! [contains] ZeroDivideException [ #(0.0, 0/0) ]; diff --git a/tests/error/dtor_outside_class.gw b/tests/error/dtor_outside_class.gw index 29d1541f..e5324905 100644 --- a/tests/error/dtor_outside_class.gw +++ b/tests/error/dtor_outside_class.gw @@ -1,2 +1,2 @@ -// [contains] dtor must be in class def!! +#! [contains] dtor must be in class def!! dtor {} diff --git a/tests/error/dup_case.gw b/tests/error/dup_case.gw index ad1092ad..6714af14 100644 --- a/tests/error/dup_case.gw +++ b/tests/error/dup_case.gw @@ -1,4 +1,4 @@ -// [contains] duplicated cases value +#! [contains] duplicated cases value switch(maybe) { case 1: case 1: diff --git a/tests/error/empty_for.gw b/tests/error/empty_for.gw index c82dabec..f4bf893f 100644 --- a/tests/error/empty_for.gw +++ b/tests/error/empty_for.gw @@ -1,3 +1,3 @@ -// [contains] empty for loop condition +#! [contains] empty for loop condition <<< "test" >>>; for(;;){} diff --git a/tests/error/empty_member_ptr.gw b/tests/error/empty_member_ptr.gw index d950e990..e5a900a2 100644 --- a/tests/error/empty_member_ptr.gw +++ b/tests/error/empty_member_ptr.gw @@ -1,4 +1,4 @@ -// [contains] NullPtrException +#! [contains] NullPtrException class C { typedef void test(); diff --git a/tests/error/empty_obj_data.gw b/tests/error/empty_obj_data.gw index 768eceb9..8921e2b9 100644 --- a/tests/error/empty_obj_data.gw +++ b/tests/error/empty_obj_data.gw @@ -1,4 +1,4 @@ -// [contains] NullPtrException +#! [contains] NullPtrException class C { int i; diff --git a/tests/error/enum_declared.gw b/tests/error/enum_declared.gw index 6003476f..9cb712f9 100644 --- a/tests/error/enum_declared.gw +++ b/tests/error/enum_declared.gw @@ -1,4 +1,4 @@ -// [contains] already been defined +#! [contains] already been defined int i; enum { diff --git a/tests/error/enum_defined.gw b/tests/error/enum_defined.gw index 828a4adf..8cc8d79e 100644 --- a/tests/error/enum_defined.gw +++ b/tests/error/enum_defined.gw @@ -1,4 +1,4 @@ -// [contains] already declared +#! [contains] already declared enum { first diff --git a/tests/error/enum_defined2.gw b/tests/error/enum_defined2.gw index 27394d5d..a38d127c 100644 --- a/tests/error/enum_defined2.gw +++ b/tests/error/enum_defined2.gw @@ -1,4 +1,4 @@ -// [contains] already been defined +#! [contains] already been defined int i; enum { diff --git a/tests/error/enum_defined3.gw b/tests/error/enum_defined3.gw index bc326655..39fc8189 100644 --- a/tests/error/enum_defined3.gw +++ b/tests/error/enum_defined3.gw @@ -1,4 +1,4 @@ -// [contains] already declared +#! [contains] already declared enum { first diff --git a/tests/error/enum_defined_var.gw b/tests/error/enum_defined_var.gw index 81f14489..5ca10822 100644 --- a/tests/error/enum_defined_var.gw +++ b/tests/error/enum_defined_var.gw @@ -1,4 +1,4 @@ -// [contains] already declared as variable +#! [contains] already declared as variable enum { first, diff --git a/tests/error/error.gw b/tests/error/error.gw index 37c41f23..f38df732 100644 --- a/tests/error/error.gw +++ b/tests/error/error.gw @@ -1,4 +1,4 @@ -// [contains] right-side operand is non-mutable +#! [contains] right-side operand is non-mutable const int i; 12 => i; diff --git a/tests/error/ev.gw b/tests/error/ev.gw index 90889571..45864d29 100644 --- a/tests/error/ev.gw +++ b/tests/error/ev.gw @@ -1,3 +1,3 @@ -// [contains] NullEventWait +#! [contains] NullEventWait Event @e; e => now; diff --git a/tests/error/fail_assign.gw b/tests/error/fail_assign.gw index e697c0e3..1384a540 100644 --- a/tests/error/fail_assign.gw +++ b/tests/error/fail_assign.gw @@ -1,3 +1,3 @@ -// [contains] not allowed +#! [contains] not allowed class C extends Event{} Event e @=> C o; diff --git a/tests/error/func_arg_array_empty.gw b/tests/error/func_arg_array_empty.gw index 70d28d36..776033ab 100644 --- a/tests/error/func_arg_array_empty.gw +++ b/tests/error/func_arg_array_empty.gw @@ -1,2 +1,2 @@ -// [contains] must be defined with empty +#! [contains] must be defined with empty fun int[] my_func(int i[2]){} diff --git a/tests/error/func_arg_defined.gw b/tests/error/func_arg_defined.gw index 3b5fbf85..fbfb35ca 100644 --- a/tests/error/func_arg_defined.gw +++ b/tests/error/func_arg_defined.gw @@ -1,2 +1,2 @@ -// [contains] already declared +#! [contains] already declared fun void test(int i, int i){} diff --git a/tests/error/func_arg_unknown.gw b/tests/error/func_arg_unknown.gw index c64c738e..bde6775b 100644 --- a/tests/error/func_arg_unknown.gw +++ b/tests/error/func_arg_unknown.gw @@ -1,2 +1,2 @@ -// [contains] unknown type +#! [contains] unknown type fun void my_func(unknown_type unknown_arg){} diff --git a/tests/error/func_code_error.gw b/tests/error/func_code_error.gw index 61041f6c..229933d4 100644 --- a/tests/error/func_code_error.gw +++ b/tests/error/func_code_error.gw @@ -1,2 +1,2 @@ -// [contains] in function: +#! [contains] in function: fun void test() { <<< b >>>; } diff --git a/tests/error/func_error_scan2.gw b/tests/error/func_error_scan2.gw index 5909dd8b..5b621ace 100644 --- a/tests/error/func_error_scan2.gw +++ b/tests/error/func_error_scan2.gw @@ -1,2 +1,2 @@ -// [contains] unknown type +#! [contains] unknown type fun void test() { skfuv sd; } diff --git a/tests/error/func_no_match.gw b/tests/error/func_no_match.gw index b59e3c4b..05961a5b 100644 --- a/tests/error/func_no_match.gw +++ b/tests/error/func_no_match.gw @@ -1,4 +1,4 @@ -// [contains] argument type(s) do not match for fun +#! [contains] argument type(s) do not match for fun fun void test(){} fun void test(int i[], int j[]){} test(1,2); diff --git a/tests/error/func_non.gw b/tests/error/func_non.gw index 39be5236..a4a97f4a 100644 --- a/tests/error/func_non.gw +++ b/tests/error/func_non.gw @@ -1,2 +1,2 @@ -// [contains] function call using a non-function value +#! [contains] function call using a non-function value null(); diff --git a/tests/error/func_ptr_empty.gw b/tests/error/func_ptr_empty.gw index e3184973..3b59ce85 100644 --- a/tests/error/func_ptr_empty.gw +++ b/tests/error/func_ptr_empty.gw @@ -1,4 +1,4 @@ -// [contains] NullPtrException +#! [contains] NullPtrException typedef void Test() Test test; test(); diff --git a/tests/error/func_ret_array_empty.gw b/tests/error/func_ret_array_empty.gw index 7ff64da7..dd326cf2 100644 --- a/tests/error/func_ret_array_empty.gw +++ b/tests/error/func_ret_array_empty.gw @@ -1,2 +1,2 @@ -// [contains] must be defined with empty +#! [contains] must be defined with empty fun int[1] my_func(int i[]){} diff --git a/tests/error/func_unknown_ret.gw b/tests/error/func_unknown_ret.gw index 70fc88b6..5574068c 100644 --- a/tests/error/func_unknown_ret.gw +++ b/tests/error/func_unknown_ret.gw @@ -1,2 +1,2 @@ -// [contains] unknown type +#! [contains] unknown type fun unknwon_type my_function(){} diff --git a/tests/error/function_arg_no_size.gw b/tests/error/function_arg_no_size.gw index daca37ab..f3ee9cee 100644 --- a/tests/error/function_arg_no_size.gw +++ b/tests/error/function_arg_no_size.gw @@ -1,2 +1,2 @@ -// [contains] cannot declare variables of size +#! [contains] cannot declare variables of size fun void test(void v){} diff --git a/tests/error/function_nested.gw b/tests/error/function_nested.gw index 4c7f35aa..0ce4549b 100644 --- a/tests/error/function_nested.gw +++ b/tests/error/function_nested.gw @@ -1,4 +1,4 @@ -// [contains] +#! [contains] fun void test() { fun void nested(){} diff --git a/tests/error/function_ret_ref_prim.gw b/tests/error/function_ret_ref_prim.gw index df101357..1dc38819 100644 --- a/tests/error/function_ret_ref_prim.gw +++ b/tests/error/function_ret_ref_prim.gw @@ -1,2 +1,2 @@ -// [contains] primitive types cannot be used as reference +#! [contains] primitive types cannot be used as reference fun int@ test(){} diff --git a/tests/error/function_used.gw b/tests/error/function_used.gw index 9e2e417e..65c4163b 100644 --- a/tests/error/function_used.gw +++ b/tests/error/function_used.gw @@ -1,3 +1,3 @@ -// [contains] is already used by another value +#! [contains] is already used by another value int i; fun void i(){} diff --git a/tests/error/global_func_already_defined.gw b/tests/error/global_func_already_defined.gw index 7678ce18..57358f7b 100644 --- a/tests/error/global_func_already_defined.gw +++ b/tests/error/global_func_already_defined.gw @@ -1,3 +1,3 @@ -// [contains] global function 'test' already defined for those arguments +#! [contains] global function 'test' already defined for those arguments fun void test(){} fun void test(){} diff --git a/tests/error/if_exp_compat.gw b/tests/error/if_exp_compat.gw index 2b757fc1..2cc6d045 100644 --- a/tests/error/if_exp_compat.gw +++ b/tests/error/if_exp_compat.gw @@ -1,2 +1,2 @@ -// [contains] incompatible types +#! [contains] incompatible types maybe ? null : 1; diff --git a/tests/error/if_exp_invalid_cond.gw b/tests/error/if_exp_invalid_cond.gw index 6e600b40..98a16df3 100644 --- a/tests/error/if_exp_invalid_cond.gw +++ b/tests/error/if_exp_invalid_cond.gw @@ -1,2 +1,2 @@ -// [contains] Invalid type +#! [contains] Invalid type null ? <<< 1 >>> : <<< 2 >>>; diff --git a/tests/error/invalid_array_acces.gw b/tests/error/invalid_array_acces.gw index 8f6f2bea..76cfbc3e 100644 --- a/tests/error/invalid_array_acces.gw +++ b/tests/error/invalid_array_acces.gw @@ -1,3 +1,3 @@ -// [contains] invalid array acces expression +#! [contains] invalid array acces expression int j[]; j[1,2,3,4] @=> i; diff --git a/tests/error/invalid_cast.gw b/tests/error/invalid_cast.gw index 00aa7f71..0770d9cb 100644 --- a/tests/error/invalid_cast.gw +++ b/tests/error/invalid_cast.gw @@ -1,4 +1,4 @@ -// [contains] no match found for operator +#! [contains] no match found for operator class C {} class D {} D d; diff --git a/tests/error/invalid_for.gw b/tests/error/invalid_for.gw index 80044ac9..9e8dce9c 100644 --- a/tests/error/invalid_for.gw +++ b/tests/error/invalid_for.gw @@ -1,2 +1,2 @@ -// [contains] in 'for' condition +#! [contains] in 'for' condition for(;null;); diff --git a/tests/error/invalid_return.gw b/tests/error/invalid_return.gw index 03ebbf66..20d5989d 100644 --- a/tests/error/invalid_return.gw +++ b/tests/error/invalid_return.gw @@ -1,2 +1,2 @@ -// [contains] invalid return type +#! [contains] invalid return type fun void test() { return 1; } diff --git a/tests/error/invalid_switch.gw b/tests/error/invalid_switch.gw index f20ec93a..b5bd929e 100644 --- a/tests/error/invalid_switch.gw +++ b/tests/error/invalid_switch.gw @@ -1,2 +1,2 @@ -// [contains] conditional must be of type +#! [contains] conditional must be of type switch(null){} diff --git a/tests/error/invalid_until.gw b/tests/error/invalid_until.gw index 66f78149..3314df6e 100644 --- a/tests/error/invalid_until.gw +++ b/tests/error/invalid_until.gw @@ -1,2 +1,2 @@ -// [contains] in 'until' condition +#! [contains] in 'until' condition until(null); diff --git a/tests/error/invalid_while.gw b/tests/error/invalid_while.gw index 57deda5e..bf2235d2 100644 --- a/tests/error/invalid_while.gw +++ b/tests/error/invalid_while.gw @@ -1,2 +1,2 @@ -// [contains] in 'while' condition +#! [contains] in 'while' condition while(null); diff --git a/tests/error/label_defined.gw b/tests/error/label_defined.gw index 108ee94a..51e6b434 100644 --- a/tests/error/label_defined.gw +++ b/tests/error/label_defined.gw @@ -1,4 +1,4 @@ -// [contains] already defined +#! [contains] already defined test: test: ; diff --git a/tests/error/label_defined_not_used.gw b/tests/error/label_defined_not_used.gw index 71a276df..e308ad05 100644 --- a/tests/error/label_defined_not_used.gw +++ b/tests/error/label_defined_not_used.gw @@ -1,3 +1,3 @@ -// [contains] defined but not used +#! [contains] defined but not used test: ; diff --git a/tests/error/label_not_defined1.gw b/tests/error/label_not_defined1.gw index e0dc264a..e552ce98 100644 --- a/tests/error/label_not_defined1.gw +++ b/tests/error/label_not_defined1.gw @@ -1,2 +1,2 @@ -// [contains] used but not defined +#! [contains] used but not defined goto test; diff --git a/tests/error/label_not_defined2.gw b/tests/error/label_not_defined2.gw index 3a46a9eb..37db4849 100644 --- a/tests/error/label_not_defined2.gw +++ b/tests/error/label_not_defined2.gw @@ -1,4 +1,4 @@ -// [contains] used but not defined +#! [contains] used but not defined goto here; here: goto test; diff --git a/tests/error/lambda_mismatch1.gw b/tests/error/lambda_mismatch1.gw index 449f0528..5635d4cf 100644 --- a/tests/error/lambda_mismatch1.gw +++ b/tests/error/lambda_mismatch1.gw @@ -1,2 +1,2 @@ -// [contains] argument number does not match for lambda +#! [contains] argument number does not match for lambda \a b { <<< a, " ", b >>>; }(1); diff --git a/tests/error/lambda_mismatch2.gw b/tests/error/lambda_mismatch2.gw index 808c008b..2f3fb527 100644 --- a/tests/error/lambda_mismatch2.gw +++ b/tests/error/lambda_mismatch2.gw @@ -1,4 +1,4 @@ -// [contains] argument number does not match for lambda +#! [contains] argument number does not match for lambda typedef void ptr_t(int i); \a b { <<< a, " ", b >>>; } @=> ptr_t ptr; ptr(2); diff --git a/tests/error/lambda_mismatch3.gw b/tests/error/lambda_mismatch3.gw index d1de1676..03e785f0 100644 --- a/tests/error/lambda_mismatch3.gw +++ b/tests/error/lambda_mismatch3.gw @@ -1,4 +1,4 @@ -// [contains] argument number does not match for lambda +#! [contains] argument number does not match for lambda typedef void ptr_t(int i); \a b { <<< a, " ", b >>>; } @=> ptr_t ptr; fun void test(ptr_t ptr) { diff --git a/tests/error/loop_not_int.gw b/tests/error/loop_not_int.gw index 538e8a3e..0ed3ca5d 100644 --- a/tests/error/loop_not_int.gw +++ b/tests/error/loop_not_int.gw @@ -1,4 +1,4 @@ -// [contains] conditional must be of type +#! [contains] conditional must be of type complex c; repeat(c) <<< "error" >>>; diff --git a/tests/error/member_from_static.gw b/tests/error/member_from_static.gw index 1c69586f..8af9f87d 100644 --- a/tests/error/member_from_static.gw +++ b/tests/error/member_from_static.gw @@ -1,4 +1,4 @@ -// [contains] +#! [contains] class C { int i; fun static void test() { diff --git a/tests/error/modulo_zero.gw b/tests/error/modulo_zero.gw index 848ab154..1d52ac77 100644 --- a/tests/error/modulo_zero.gw +++ b/tests/error/modulo_zero.gw @@ -1,2 +1,2 @@ -// [contains] ZeroDivideException +#! [contains] ZeroDivideException [ 1%0, 2, 3, 4, 5 ]; diff --git a/tests/error/multi_decl.gw b/tests/error/multi_decl.gw index 140b2ca7..fd79b7e8 100644 --- a/tests/error/multi_decl.gw +++ b/tests/error/multi_decl.gw @@ -1,2 +1,2 @@ -// [contains] from/to a multi-variable declaration +#! [contains] from/to a multi-variable declaration int i, ii => float f; diff --git a/tests/error/name_conflict.gw b/tests/error/name_conflict.gw index 48a252fe..8342f0e6 100644 --- a/tests/error/name_conflict.gw +++ b/tests/error/name_conflict.gw @@ -1,4 +1,4 @@ -// [contains] conflicts with previously defined value +#! [contains] conflicts with previously defined value class C { int test; } diff --git a/tests/error/named_union_global_private.gw b/tests/error/named_union_global_private.gw index 8b9c7458..901cf424 100644 --- a/tests/error/named_union_global_private.gw +++ b/tests/error/named_union_global_private.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope. +#! [contains] can only be used at class scope. union private { int i; } u; diff --git a/tests/error/named_union_global_private_static.gw b/tests/error/named_union_global_private_static.gw index b202b70e..7f8c6c30 100644 --- a/tests/error/named_union_global_private_static.gw +++ b/tests/error/named_union_global_private_static.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope. +#! [contains] can only be used at class scope. union static private { int i; } u; diff --git a/tests/error/named_union_global_static.gw b/tests/error/named_union_global_static.gw index 426ef577..704217b9 100644 --- a/tests/error/named_union_global_static.gw +++ b/tests/error/named_union_global_static.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope. +#! [contains] can only be used at class scope. union static { int i; } u; diff --git a/tests/error/negative_array.gw b/tests/error/negative_array.gw index b094b399..66a272cc 100644 --- a/tests/error/negative_array.gw +++ b/tests/error/negative_array.gw @@ -1,3 +1,3 @@ -// [contains] NegativeArraySize: while allocating arrays +#! [contains] NegativeArraySize: while allocating arrays int i[-1]; <<< i >>>; diff --git a/tests/error/negative_array2.gw b/tests/error/negative_array2.gw index d0646f7d..c7c868dc 100644 --- a/tests/error/negative_array2.gw +++ b/tests/error/negative_array2.gw @@ -1,4 +1,4 @@ -// [contains] ArrayOutofBounds +#! [contains] ArrayOutofBounds int i[2][2]; <<< i[1][-1] >>>; <<< -1 >>>; diff --git a/tests/error/new_empty_array.gw b/tests/error/new_empty_array.gw index 1655e517..80000dba 100644 --- a/tests/error/new_empty_array.gw +++ b/tests/error/new_empty_array.gw @@ -1,2 +1,2 @@ -// [contains] instantiate with empty +#! [contains] instantiate with empty new Object[]; diff --git a/tests/error/new_prim.gw b/tests/error/new_prim.gw index 00d30a12..dc7b6778 100644 --- a/tests/error/new_prim.gw +++ b/tests/error/new_prim.gw @@ -1,2 +1,2 @@ -// [contains] primitive types cannot be used as reference +#! [contains] primitive types cannot be used as reference new int; diff --git a/tests/error/no_cast.gw b/tests/error/no_cast.gw index 7cff67a0..c05a98b2 100644 --- a/tests/error/no_cast.gw +++ b/tests/error/no_cast.gw @@ -1,4 +1,4 @@ -// [contains] no match found for operator +#! [contains] no match found for operator class C{} class D{} diff --git a/tests/error/no_compat_sub.gw b/tests/error/no_compat_sub.gw index a32ed0cb..1ce8ae8e 100644 --- a/tests/error/no_compat_sub.gw +++ b/tests/error/no_compat_sub.gw @@ -1,4 +1,4 @@ -// [contains] must be of type 'int' +#! [contains] must be of type 'int' int i[4]; Object o; i[o]; diff --git a/tests/error/no_compat_sub2.gw b/tests/error/no_compat_sub2.gw index 96d75970..3473fab1 100644 --- a/tests/error/no_compat_sub2.gw +++ b/tests/error/no_compat_sub2.gw @@ -1,4 +1,4 @@ -// [contains] incompatible array subscript type +#! [contains] incompatible array subscript type Object o; int i[o]; <<< i >>>; diff --git a/tests/error/no_member.gw b/tests/error/no_member.gw index 17fcf802..6175713a 100644 --- a/tests/error/no_member.gw +++ b/tests/error/no_member.gw @@ -1,4 +1,4 @@ -// [contains] does not have members - invalid use in dot expression +#! [contains] does not have members - invalid use in dot expression int i; i.nothing; diff --git a/tests/error/non_function_template.gw b/tests/error/non_function_template.gw index 42d95502..78b28cca 100644 --- a/tests/error/non_function_template.gw +++ b/tests/error/non_function_template.gw @@ -1,3 +1,3 @@ -// [contains] template call of non-function value +#! [contains] template call of non-function value int test; test<~int~>(); diff --git a/tests/error/not_legit.gw b/tests/error/not_legit.gw index b3234447..ec026756 100644 --- a/tests/error/not_legit.gw +++ b/tests/error/not_legit.gw @@ -1,2 +1,2 @@ -// [contains] not legit +#! [contains] not legit s; diff --git a/tests/error/null_array_access.gw b/tests/error/null_array_access.gw index fdc5f823..7b1a534c 100644 --- a/tests/error/null_array_access.gw +++ b/tests/error/null_array_access.gw @@ -1,3 +1,3 @@ -// [contains] NullPtrException +#! [contains] NullPtrException int i[]; i[0]; diff --git a/tests/error/null_array_access_multi.gw b/tests/error/null_array_access_multi.gw index bd973cbd..03a570ba 100644 --- a/tests/error/null_array_access_multi.gw +++ b/tests/error/null_array_access_multi.gw @@ -1,3 +1,3 @@ -// [contains] NullPtrException +#! [contains] NullPtrException int i[][]; i[0][0]; diff --git a/tests/error/null_auto.gw b/tests/error/null_auto.gw index eb45296d..673ee992 100644 --- a/tests/error/null_auto.gw +++ b/tests/error/null_auto.gw @@ -1,4 +1,4 @@ -// [contains] NullPtrException +#! [contains] NullPtrException int i[]; for(auto a : i) <<< a >>>; diff --git a/tests/error/op_match.gw b/tests/error/op_match.gw index 25d3ebfd..9abaf80c 100644 --- a/tests/error/op_match.gw +++ b/tests/error/op_match.gw @@ -1,3 +1,3 @@ -// [contains] no match found for operator +#! [contains] no match found for operator Object o; null +=> o; diff --git a/tests/error/op_test.gw b/tests/error/op_test.gw index 3d236058..0d1777b3 100644 --- a/tests/error/op_test.gw +++ b/tests/error/op_test.gw @@ -1,4 +1,4 @@ -// [contains] no match found for operator +#! [contains] no match found for operator class C { diff --git a/tests/error/override_confict.gw b/tests/error/override_confict.gw index 72ece0d7..9b8eb68c 100644 --- a/tests/error/override_confict.gw +++ b/tests/error/override_confict.gw @@ -1,4 +1,4 @@ -// [contains] conflicts with previously defined value +#! [contains] conflicts with previously defined value class C { int test; diff --git a/tests/error/override_static.gw b/tests/error/override_static.gw index 47fa35f0..b7b1d4b8 100644 --- a/tests/error/override_static.gw +++ b/tests/error/override_static.gw @@ -1,4 +1,4 @@ -// [contains] but cannot override +#! [contains] but cannot override class C { fun static void test() {} diff --git a/tests/error/override_static2.gw b/tests/error/override_static2.gw index 4b326b83..7fdd71bf 100644 --- a/tests/error/override_static2.gw +++ b/tests/error/override_static2.gw @@ -1,4 +1,4 @@ -// [contains] but cannot override +#! [contains] but cannot override class C { fun void test() {} diff --git a/tests/error/pointer_outside_class.gw b/tests/error/pointer_outside_class.gw index 51c099c8..cd1c9327 100644 --- a/tests/error/pointer_outside_class.gw +++ b/tests/error/pointer_outside_class.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope +#! [contains] can only be used at class scope typedef static void my_fun(){} diff --git a/tests/error/pointer_unknown.gw b/tests/error/pointer_unknown.gw index d53fc486..66ddfcad 100644 --- a/tests/error/pointer_unknown.gw +++ b/tests/error/pointer_unknown.gw @@ -1,2 +1,2 @@ -// [contains] unknown type +#! [contains] unknown type typedef unknown_type my_fun(){} diff --git a/tests/error/pointer_unknown_arg.gw b/tests/error/pointer_unknown_arg.gw index 3d7ee93f..c3197721 100644 --- a/tests/error/pointer_unknown_arg.gw +++ b/tests/error/pointer_unknown_arg.gw @@ -1,2 +1,2 @@ -// [contains] unknown type +#! [contains] unknown type typedef void my_func(unknown_type type); diff --git a/tests/error/polar_invalid_mod.gw b/tests/error/polar_invalid_mod.gw index 2a7cccf6..3ecfc3a1 100644 --- a/tests/error/polar_invalid_mod.gw +++ b/tests/error/polar_invalid_mod.gw @@ -1,2 +1,2 @@ -// [contains] polar value #1 +#! [contains] polar value #1 %(null, 0); diff --git a/tests/error/polar_invalid_ph.gw b/tests/error/polar_invalid_ph.gw index acf44abf..44470ba0 100644 --- a/tests/error/polar_invalid_ph.gw +++ b/tests/error/polar_invalid_ph.gw @@ -1,2 +1,2 @@ -// [contains] polar value #2 +#! [contains] polar value #2 %(0, null); diff --git a/tests/error/polar_too_big.gw b/tests/error/polar_too_big.gw index cb91af9f..5ad3b535 100644 --- a/tests/error/polar_too_big.gw +++ b/tests/error/polar_too_big.gw @@ -1,2 +1,2 @@ -// [contains] extraneous component of polar value +#! [contains] extraneous component of polar value %(0,0,0,0); diff --git a/tests/error/postfix.gw b/tests/error/postfix.gw index c71b4842..dd59edcb 100644 --- a/tests/error/postfix.gw +++ b/tests/error/postfix.gw @@ -1,2 +1,2 @@ -// [contains] cannot be used on non-mutable data-type +#! [contains] cannot be used on non-mutable data-type 1++; diff --git a/tests/error/postfix_const.gw b/tests/error/postfix_const.gw index 63c5bb1a..76defe9a 100644 --- a/tests/error/postfix_const.gw +++ b/tests/error/postfix_const.gw @@ -1,2 +1,2 @@ -// [contains] cannot be used on non-mutable data-type +#! [contains] cannot be used on non-mutable data-type true++; diff --git a/tests/error/postfix_no_match.gw b/tests/error/postfix_no_match.gw index 8de5ab9f..f64c7982 100644 --- a/tests/error/postfix_no_match.gw +++ b/tests/error/postfix_no_match.gw @@ -1,3 +1,3 @@ -// [contains] no match found for operator +#! [contains] no match found for operator Object o; o++; diff --git a/tests/error/prim_parent.gw b/tests/error/prim_parent.gw index 25f9c40e..fe6f6b71 100644 --- a/tests/error/prim_parent.gw +++ b/tests/error/prim_parent.gw @@ -1,2 +1,2 @@ -// [contains] cannot extend primitive +#! [contains] cannot extend primitive class C extends int {} diff --git a/tests/error/prim_ref.gw b/tests/error/prim_ref.gw index 4a60e2d6..3e4b2930 100644 --- a/tests/error/prim_ref.gw +++ b/tests/error/prim_ref.gw @@ -1,2 +1,2 @@ -// [contains] primitive types cannot be used as reference +#! [contains] primitive types cannot be used as reference int @i; diff --git a/tests/error/private.gw b/tests/error/private.gw index e71b04db..87909a51 100644 --- a/tests/error/private.gw +++ b/tests/error/private.gw @@ -1,4 +1,4 @@ -// [contains] can't access private +#! [contains] can't access private class C { private int i; } C c; diff --git a/tests/error/private_func_call_out.gw b/tests/error/private_func_call_out.gw index a0e286e5..b2e66f02 100644 --- a/tests/error/private_func_call_out.gw +++ b/tests/error/private_func_call_out.gw @@ -1,4 +1,4 @@ -// [contains] can't access private +#! [contains] can't access private class C { fun private void test(){} } diff --git a/tests/error/private_func_nocall_out.gw b/tests/error/private_func_nocall_out.gw index 686c54b2..5c090166 100644 --- a/tests/error/private_func_nocall_out.gw +++ b/tests/error/private_func_nocall_out.gw @@ -1,4 +1,4 @@ -// [contains] can't access private +#! [contains] can't access private class C { fun private void test(){} } diff --git a/tests/error/private_func_out.gw b/tests/error/private_func_out.gw index 1d88460c..f87a5235 100644 --- a/tests/error/private_func_out.gw +++ b/tests/error/private_func_out.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope +#! [contains] can only be used at class scope fun private void test(){} diff --git a/tests/error/private_global.gw b/tests/error/private_global.gw index 7be2bb35..b656e00b 100644 --- a/tests/error/private_global.gw +++ b/tests/error/private_global.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope +#! [contains] can only be used at class scope private int i; diff --git a/tests/error/private_other.gw b/tests/error/private_other.gw index ee7d52ee..f9ab4063 100644 --- a/tests/error/private_other.gw +++ b/tests/error/private_other.gw @@ -1,4 +1,4 @@ -// [contains] can't access private +#! [contains] can't access private class C { private int i; } class D { diff --git a/tests/error/provide_array.gw b/tests/error/provide_array.gw index 20b4b5b1..b25cdc5a 100644 --- a/tests/error/provide_array.gw +++ b/tests/error/provide_array.gw @@ -1,2 +1,2 @@ -// [contains] must provide values/expressions for array +#! [contains] must provide values/expressions for array [ ]; diff --git a/tests/error/ptr_arg_0_size.gw b/tests/error/ptr_arg_0_size.gw index c9765c94..1f0229b6 100644 --- a/tests/error/ptr_arg_0_size.gw +++ b/tests/error/ptr_arg_0_size.gw @@ -1,2 +1,2 @@ -// [contains] cannot declare variables of size '0' +#! [contains] cannot declare variables of size '0' typedef void my_func(void arg){} diff --git a/tests/error/ptr_arg_array.gw b/tests/error/ptr_arg_array.gw index b4eef2ec..ba2ca796 100644 --- a/tests/error/ptr_arg_array.gw +++ b/tests/error/ptr_arg_array.gw @@ -1,2 +1,2 @@ -// [contains] must be defined with empty +#! [contains] must be defined with empty typedef void my_func (int i[4]){} diff --git a/tests/error/ptr_assign_global.gw b/tests/error/ptr_assign_global.gw index 17038c96..1f5e985e 100644 --- a/tests/error/ptr_assign_global.gw +++ b/tests/error/ptr_assign_global.gw @@ -1,4 +1,4 @@ -// [contains] can't assign non member function to member function pointer +#! [contains] can't assign non member function to member function pointer class C { typedef void Test(); Test test; diff --git a/tests/error/ptr_assign_member.gw b/tests/error/ptr_assign_member.gw index fa68cf44..b97d13ed 100644 --- a/tests/error/ptr_assign_member.gw +++ b/tests/error/ptr_assign_member.gw @@ -1,4 +1,4 @@ -// [contains] can't assign member function to non member function pointer +#! [contains] can't assign member function to non member function pointer typedef void Test(); Test test; class D { diff --git a/tests/error/ptr_assign_other.gw b/tests/error/ptr_assign_other.gw index ca2caa5c..4b3e5ee1 100644 --- a/tests/error/ptr_assign_other.gw +++ b/tests/error/ptr_assign_other.gw @@ -1,4 +1,4 @@ -// [contains] can't assign member function to a pointer of an other class +#! [contains] can't assign member function to a pointer of an other class class C { typedef void Test(); Test test; diff --git a/tests/error/ptr_defined.gw b/tests/error/ptr_defined.gw index 99bcf9e7..bfb6abf1 100644 --- a/tests/error/ptr_defined.gw +++ b/tests/error/ptr_defined.gw @@ -1,3 +1,3 @@ -// [contains] has already been defined in the same scope +#! [contains] has already been defined in the same scope int i; typedef void i(){} diff --git a/tests/error/ptr_no_match.gw b/tests/error/ptr_no_match.gw index 0dc5b75d..00258008 100644 --- a/tests/error/ptr_no_match.gw +++ b/tests/error/ptr_no_match.gw @@ -1,4 +1,4 @@ -// [contains] no match found +#! [contains] no match found fun void test(int i){} fun void test(float f){} diff --git a/tests/error/ptr_ref_prim.gw b/tests/error/ptr_ref_prim.gw index 4216fe4c..d550dc30 100644 --- a/tests/error/ptr_ref_prim.gw +++ b/tests/error/ptr_ref_prim.gw @@ -1,2 +1,2 @@ -// [contains] primitive types cannot be used as reference +#! [contains] primitive types cannot be used as reference typedef void my_func(int @i){} diff --git a/tests/error/ptr_static_outside.gw b/tests/error/ptr_static_outside.gw index e2ba117b..c9a3497e 100644 --- a/tests/error/ptr_static_outside.gw +++ b/tests/error/ptr_static_outside.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope +#! [contains] can only be used at class scope typedef static void Test(); diff --git a/tests/error/ptr_static_outside2.gw b/tests/error/ptr_static_outside2.gw index d4a6c152..8d81b3b7 100644 --- a/tests/error/ptr_static_outside2.gw +++ b/tests/error/ptr_static_outside2.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope +#! [contains] can only be used at class scope typedef static void Test(int i); diff --git a/tests/error/recursive_class_def.gw b/tests/error/recursive_class_def.gw index 18bfe4fa..7d78cac3 100644 --- a/tests/error/recursive_class_def.gw +++ b/tests/error/recursive_class_def.gw @@ -1,4 +1,4 @@ -// [contains] recursive +#! [contains] recursive class C {} class D extends C {} class E extends F {} diff --git a/tests/error/return_out.gw b/tests/error/return_out.gw index 2535c861..10f4c645 100644 --- a/tests/error/return_out.gw +++ b/tests/error/return_out.gw @@ -1,2 +1,2 @@ -// [contains] 'return' statement found outside function definition +#! [contains] 'return' statement found outside function definition return; diff --git a/tests/error/right_mutable.gw b/tests/error/right_mutable.gw index 9b1d870c..af135749 100644 --- a/tests/error/right_mutable.gw +++ b/tests/error/right_mutable.gw @@ -1,2 +1,2 @@ -// [contains] right-side operand is non-mutable +#! [contains] right-side operand is non-mutable 2 => 1; diff --git a/tests/error/spork_non_func.gw b/tests/error/spork_non_func.gw index 6dba49f2..96f996db 100644 --- a/tests/error/spork_non_func.gw +++ b/tests/error/spork_non_func.gw @@ -1,4 +1,4 @@ -// [contains] only function calls can be sporked +#! [contains] only function calls can be sporked int i; <<< i >>>; spork i; diff --git a/tests/error/static_out.gw b/tests/error/static_out.gw index 11b948d1..294b07ef 100644 --- a/tests/error/static_out.gw +++ b/tests/error/static_out.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope +#! [contains] can only be used at class scope static int i; diff --git a/tests/error/stray.gw b/tests/error/stray.gw index d1c26270..ca84fac1 100644 --- a/tests/error/stray.gw +++ b/tests/error/stray.gw @@ -1,2 +1,2 @@ -// [contains somewhere] stray in program +#! [contains somewhere] stray in program **µ diff --git a/tests/error/template_class_no_type.gw b/tests/error/template_class_no_type.gw index fd81f4ed..40b87094 100644 --- a/tests/error/template_class_no_type.gw +++ b/tests/error/template_class_no_type.gw @@ -1,4 +1,4 @@ -// [contains] you must provide template types +#! [contains] you must provide template types class<~A~> C { A a; } diff --git a/tests/error/template_enough.gw b/tests/error/template_enough.gw index af3391ac..2c0cef0e 100644 --- a/tests/error/template_enough.gw +++ b/tests/error/template_enough.gw @@ -1,3 +1,3 @@ -// [contains] +#! [contains] fun void test<~A,B~>(){} test(); diff --git a/tests/error/template_n_mismatch.gw b/tests/error/template_n_mismatch.gw index dbd9a538..74b77c72 100644 --- a/tests/error/template_n_mismatch.gw +++ b/tests/error/template_n_mismatch.gw @@ -1,6 +1,6 @@ -// [contains] arguments do not match for template call +#! [contains] arguments do not match for template call fun void test<~A~>(){ <<< "func" >>>;} fun void test<~A~>(int i){<<< "other func" >>>;} test<~int, float, int~>(); -//test<~int~>(); +#!test<~int~>(); diff --git a/tests/error/template_no_match.gw b/tests/error/template_no_match.gw index 0868e24a..82fef43a 100644 --- a/tests/error/template_no_match.gw +++ b/tests/error/template_no_match.gw @@ -1,9 +1,9 @@ -// [contains] arguments do not match for template call +#! [contains] arguments do not match for template call class C { fun void test<~A~>(float f) {} fun void test<~A~>() {} } C c; -//c.test<~int~>(); +#!c.test<~int~>(); c.test<~int~>(2.3); c.test<~int~>(2.3, 2.3); diff --git a/tests/error/template_non_member.gw b/tests/error/template_non_member.gw index 1d287d6b..6f6f232d 100644 --- a/tests/error/template_non_member.gw +++ b/tests/error/template_non_member.gw @@ -1,2 +1,2 @@ -// [contains] +#! [contains] Math.rand<~int~>(); diff --git a/tests/error/template_ternary.gw b/tests/error/template_ternary.gw index 6b99bf58..5c1e04d5 100644 --- a/tests/error/template_ternary.gw +++ b/tests/error/template_ternary.gw @@ -1,4 +1,4 @@ -// [contains] invalid expression for function call +#! [contains] invalid expression for function call fun void test<~A~>(A a){} (maybe ? test : test)(1); diff --git a/tests/error/template_unknown.gw b/tests/error/template_unknown.gw index f9d96219..e9009fe1 100644 --- a/tests/error/template_unknown.gw +++ b/tests/error/template_unknown.gw @@ -1,4 +1,4 @@ -// [contains] unknown type +#! [contains] unknown type fun void my_function<~A~>() { <<< "test" >>>; } my_function<~unknown_type~>(); diff --git a/tests/error/this.gw b/tests/error/this.gw index be8ec7c8..1ba2b0f3 100644 --- a/tests/error/this.gw +++ b/tests/error/this.gw @@ -1,2 +1,2 @@ -// [contains] keyword 'this' can be used only inside class definition +#! [contains] keyword 'this' can be used only inside class definition this; diff --git a/tests/error/this_instance.gw b/tests/error/this_instance.gw index a1eed8be..8822e8e0 100644 --- a/tests/error/this_instance.gw +++ b/tests/error/this_instance.gw @@ -1,3 +1,3 @@ -// [contains] keyword 'this' must be associated with object instance +#! [contains] keyword 'this' must be associated with object instance class C {} C.this; diff --git a/tests/error/this_static.gw b/tests/error/this_static.gw index 8483049b..8c0c1766 100644 --- a/tests/error/this_static.gw +++ b/tests/error/this_static.gw @@ -1,4 +1,4 @@ -// [contains] keyword 'this' cannot be used inside static functions +#! [contains] keyword 'this' cannot be used inside static functions class C { fun static void test(){ <<< this >>>; } diff --git a/tests/error/type_not_template.gw b/tests/error/type_not_template.gw index 4436e0d4..adbbf23c 100644 --- a/tests/error/type_not_template.gw +++ b/tests/error/type_not_template.gw @@ -1,2 +1,2 @@ -// [contains] is not template +#! [contains] is not template <~int~>Object o; diff --git a/tests/error/type_path_test.gw b/tests/error/type_path_test.gw index 1e255e09..a12af900 100644 --- a/tests/error/type_path_test.gw +++ b/tests/error/type_path_test.gw @@ -1,2 +1,2 @@ -// [contains] unknown type +#! [contains] unknown type fun void test(B->C a){} diff --git a/tests/error/unary_times.gw b/tests/error/unary_times.gw index d5626a17..4c296607 100644 --- a/tests/error/unary_times.gw +++ b/tests/error/unary_times.gw @@ -1,3 +1,3 @@ -// [contains] no match found for operator +#! [contains] no match found for operator int i; *i; diff --git a/tests/error/undef_parent.gw b/tests/error/undef_parent.gw index 47a83ed3..228a53ad 100644 --- a/tests/error/undef_parent.gw +++ b/tests/error/undef_parent.gw @@ -1,4 +1,4 @@ -// [contains] unknown type +#! [contains] unknown type class C extends Undefined {} C c; <<< c >>>; \ No newline at end of file diff --git a/tests/error/union.gw b/tests/error/union.gw index 1b89e8e1..2987f24e 100644 --- a/tests/error/union.gw +++ b/tests/error/union.gw @@ -1,4 +1,4 @@ -// [contains] +#! [contains] union { one; two; diff --git a/tests/error/union_array_empty.gw b/tests/error/union_array_empty.gw index e1264e20..cfc880ea 100644 --- a/tests/error/union_array_empty.gw +++ b/tests/error/union_array_empty.gw @@ -1,4 +1,4 @@ -// [contains] must be defined with empty +#! [contains] must be defined with empty union { int i; int @array[4]; diff --git a/tests/error/union_global_private.gw b/tests/error/union_global_private.gw index 8de35d31..188ecb23 100644 --- a/tests/error/union_global_private.gw +++ b/tests/error/union_global_private.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope. +#! [contains] can only be used at class scope. union static { int i; }; diff --git a/tests/error/union_global_private_static.gw b/tests/error/union_global_private_static.gw index 2564afc9..d1661269 100644 --- a/tests/error/union_global_private_static.gw +++ b/tests/error/union_global_private_static.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope. +#! [contains] can only be used at class scope. union static private { int i; }; diff --git a/tests/error/union_global_static.gw b/tests/error/union_global_static.gw index c9fb1065..76f37242 100644 --- a/tests/error/union_global_static.gw +++ b/tests/error/union_global_static.gw @@ -1,2 +1,2 @@ -// [contains] can only be used at class scope. +#! [contains] can only be used at class scope. union private { int i; }; diff --git a/tests/error/union_invalid.gw b/tests/error/union_invalid.gw index 4ea2c658..b170fa0f 100644 --- a/tests/error/union_invalid.gw +++ b/tests/error/union_invalid.gw @@ -1,4 +1,4 @@ -// [contains] Unions should only contain declarations +#! [contains] Unions should only contain declarations union { one; two; diff --git a/tests/error/union_object_ref.gw b/tests/error/union_object_ref.gw index 5e626dbf..e006098d 100644 --- a/tests/error/union_object_ref.gw +++ b/tests/error/union_object_ref.gw @@ -1,4 +1,4 @@ -// [contains] In union, Objects must be declared as reference (use '@') +#! [contains] In union, Objects must be declared as reference (use '@') union { int i; diff --git a/tests/error/union_unknown.gw b/tests/error/union_unknown.gw index 857977ad..b40d7d8b 100644 --- a/tests/error/union_unknown.gw +++ b/tests/error/union_unknown.gw @@ -1,4 +1,4 @@ -// [contains] unknown_type +#! [contains] unknown_type union { unknown_type unknown_variable; diff --git a/tests/error/unknown_escape.gw b/tests/error/unknown_escape.gw index 9cdf4e7e..bf9dc2b6 100644 --- a/tests/error/unknown_escape.gw +++ b/tests/error/unknown_escape.gw @@ -1,2 +1,2 @@ -// (contains] unrecognized escape sequence +#! (contains] unrecognized escape sequence '\o'; diff --git a/tests/error/unknown_new.gw b/tests/error/unknown_new.gw index 9ced64fe..b925ca4d 100644 --- a/tests/error/unknown_new.gw +++ b/tests/error/unknown_new.gw @@ -1,2 +1,2 @@ -// [contains] unknown type +#! [contains] unknown type new kugsqd; diff --git a/tests/error/unknown_type.gw b/tests/error/unknown_type.gw index ed9a31d0..92c1f3fa 100644 --- a/tests/error/unknown_type.gw +++ b/tests/error/unknown_type.gw @@ -1,3 +1,3 @@ -// [contains] unknown type - // hit the error with an unknown type +#! [contains] unknown type + #! hit the error with an unknown type unknown_type variable; diff --git a/tests/error/upper_label.gw b/tests/error/upper_label.gw index 286df405..e4da9b19 100644 --- a/tests/error/upper_label.gw +++ b/tests/error/upper_label.gw @@ -1,3 +1,3 @@ -// [contains] you are trying to use a upper label +#! [contains] you are trying to use a upper label end: goto end; diff --git a/tests/error/var_defined.gw b/tests/error/var_defined.gw index 2a4f05c9..51811b01 100644 --- a/tests/error/var_defined.gw +++ b/tests/error/var_defined.gw @@ -1,3 +1,3 @@ -// [contains] has already been defined in the same scope +#! [contains] has already been defined in the same scope int i; int i; diff --git a/tests/error/variadic_end_no_start.gw b/tests/error/variadic_end_no_start.gw index 8c159c81..89aed11f 100644 --- a/tests/error/variadic_end_no_start.gw +++ b/tests/error/variadic_end_no_start.gw @@ -1,7 +1,7 @@ -// [contains] vararg.start not used before vararg.end. this is an error +#! [contains] vararg.start not used before vararg.end. this is an error fun void test(int i, ...) { vararg.end; -// vararg.start; +#! vararg.start; } test(1, 2.3, null); diff --git a/tests/error/variadic_start_twice.gw b/tests/error/variadic_start_twice.gw index ff87db0e..59e93491 100644 --- a/tests/error/variadic_start_twice.gw +++ b/tests/error/variadic_start_twice.gw @@ -1,2 +1,2 @@ -// [contains] vararg.start already used. this is an error +#! [contains] vararg.start already used. this is an error fun void test(...) { vararg.start; vararg.start;} diff --git a/tests/error/variadic_test.gw b/tests/error/variadic_test.gw index 8c159c81..89aed11f 100644 --- a/tests/error/variadic_test.gw +++ b/tests/error/variadic_test.gw @@ -1,7 +1,7 @@ -// [contains] vararg.start not used before vararg.end. this is an error +#! [contains] vararg.start not used before vararg.end. this is an error fun void test(int i, ...) { vararg.end; -// vararg.start; +#! vararg.start; } test(1, 2.3, null); diff --git a/tests/error/vector_invalid.gw b/tests/error/vector_invalid.gw index e540248e..f14ca9ce 100644 --- a/tests/error/vector_invalid.gw +++ b/tests/error/vector_invalid.gw @@ -1,2 +1,2 @@ -// [contains] in vector value +#! [contains] in vector value @(0,0,0,null); diff --git a/tests/error/vector_too_big.gw b/tests/error/vector_too_big.gw index 639b0f91..0d5eb436 100644 --- a/tests/error/vector_too_big.gw +++ b/tests/error/vector_too_big.gw @@ -1,2 +1,2 @@ -// [contains] extraneous component of +#! [contains] extraneous component of @(0,0,0,0,0); diff --git a/tests/error/without_instance.gw b/tests/error/without_instance.gw index 9247edb9..92fc4ec0 100644 --- a/tests/error/without_instance.gw +++ b/tests/error/without_instance.gw @@ -1,4 +1,4 @@ -// [contains] cannot access member +#! [contains] cannot access member class C { int i; } diff --git a/tests/fptr/class_ptr01.gw b/tests/fptr/class_ptr01.gw index 04df1a4e..0bc05495 100644 --- a/tests/fptr/class_ptr01.gw +++ b/tests/fptr/class_ptr01.gw @@ -1,4 +1,4 @@ -//[contains] cant't assign +#![contains] cant't assign class C { fun static void test(int i) { <<< "int arg" >>>; } typedef void PtrType(int i); diff --git a/tests/fptr/class_ptr31.gw b/tests/fptr/class_ptr31.gw index 46ebf444..f09a5a01 100644 --- a/tests/fptr/class_ptr31.gw +++ b/tests/fptr/class_ptr31.gw @@ -1,4 +1,4 @@ -// [contains] can't assign +#! [contains] can't assign class C { fun void test(int i) { <<< "int arg" >>>; } typedef static void PtrType(int i); diff --git a/tests/import/callback2.gw b/tests/import/callback2.gw index 91f4f5cb..ef2ea3be 100644 --- a/tests/import/callback2.gw +++ b/tests/import/callback2.gw @@ -1,14 +1,14 @@ fun Vec4 test(int i) { <<< "test with arg ", i >>>; } -//typedef Vec4 PT(); -//test @=> +#!typedef Vec4 PT(); +#!test @=> PtrTypeI p; test @=> p; -//test @=> PT ti; +#!test @=> PT ti; <<< test >>>; -//<<< ti >>>; +#!<<< ti >>>; <<< p >>>; -//ti(); +#!ti(); <<< "test" >>>; p(2); <<< "end" >>>; diff --git a/tests/import/class_template.gw b/tests/import/class_template.gw index 24a29c2c..cc6dc083 100644 --- a/tests/import/class_template.gw +++ b/tests/import/class_template.gw @@ -1,15 +1,15 @@ -//class child {} -//template<~A, B~> -//class C{ A key; B value; } -//<~int, int~>C c1; -//C c2; -//<<< c1 >>>; -//<<< c2 >>>; -//<<< c2.value >>>; +#!class child {} +#!template<~A, B~> +#!class C{ A key; B value; } +#!<~int, int~>C c1; +#!C c2; +#!<<< c1 >>>; +#!<<< c2 >>>; +#!<<< c2.value >>>; <~int, int~>ClassTemplate ct; <<< ct.key >>>; -//ClassTemplate ct2; -//<<< ct2.key >>>; -//ClassTemplate ct3; -//<<< ct3.key >>>; +#!ClassTemplate ct2; +#!<<< ct2.key >>>; +#!ClassTemplate ct3; +#!<<< ct3.key >>>; diff --git a/tests/import/enum.gw b/tests/import/enum.gw index 368151d5..0d8ddb59 100644 --- a/tests/import/enum.gw +++ b/tests/import/enum.gw @@ -1,4 +1,4 @@ -// untyped global enum +#! untyped global enum <<< ENUM0 >>>; <<< ENUM1 >>>; <<< ENUM2 >>>; @@ -10,7 +10,7 @@ <<< ENUM8 >>>; <<< ENUM9 >>>; -// typed global enum +#! typed global enum <<< TYPED_ENUM0 >>>; <<< TYPED_ENUM1 >>>; <<< TYPED_ENUM2 >>>; @@ -22,8 +22,8 @@ <<< TYPED_ENUM8 >>>; <<< TYPED_ENUM9 >>>; -// in class -// untyped global enum +#! in class +#! untyped global enum <<< Enum.ENUM0 >>>; <<< Enum.ENUM1 >>>; <<< Enum.ENUM2 >>>; @@ -35,7 +35,7 @@ <<< Enum.ENUM8 >>>; <<< Enum.ENUM9 >>>; -// Enum.typed global enum +#! Enum.typed global enum <<< Enum.TYPED_ENUM0 >>>; <<< Enum.TYPED_ENUM1 >>>; <<< Enum.TYPED_ENUM2 >>>; diff --git a/tests/import/static_string.gw b/tests/import/static_string.gw index 60da0664..dc3f911a 100644 --- a/tests/import/static_string.gw +++ b/tests/import/static_string.gw @@ -1,2 +1,2 @@ -//<<< StaticString.self >>>; +#!<<< StaticString.self >>>; <<< self >>>; diff --git a/tests/new/break.gw b/tests/new/break.gw index d3f5f2be..359bab68 100644 --- a/tests/new/break.gw +++ b/tests/new/break.gw @@ -4,10 +4,10 @@ fun void t(int i) { 1/i; <<< "id: ", (spork t(i-1)).id() >>>; me.yield(); -//samp => now; +#!samp => now; } 10 => t; -//me.yield(); +#!me.yield(); second => now; me.yield(); <<< "end" >>>; diff --git a/tests/new/global_func0.gw b/tests/new/global_func0.gw index 2773c4fd..ee373b2e 100644 --- a/tests/new/global_func0.gw +++ b/tests/new/global_func0.gw @@ -6,6 +6,6 @@ class global C { global C g_c; <<< g_c, "->i => ", g_c.i >>>; fun global void g_test() { <<< g_i >>>; <<< g_c >>>; <<< g_c.i >>>; <<< "test" >>>; } -//fun global void g_test() { <<< "test" >>>; } +#!fun global void g_test() { <<< "test" >>>; } <<< g_test >>>; <<< g_test() >>>; diff --git a/tests/new/global_func1.gw b/tests/new/global_func1.gw index e6935d9c..c12ad16d 100644 --- a/tests/new/global_func1.gw +++ b/tests/new/global_func1.gw @@ -4,5 +4,5 @@ <<< g_test >>>; g_test(); -//g_test(); -//g_test(); +#!g_test(); +#!g_test(); diff --git a/tests/new/lambda.gw b/tests/new/lambda.gw index 83b2a3b3..8481c1c0 100644 --- a/tests/new/lambda.gw +++ b/tests/new/lambda.gw @@ -1,32 +1,32 @@ class C { typedef void ptr_t(int i,int j); \a b { <<< this, " ", a, " ", b, " test" >>>; } @=> ptr_t ptr; -// `a,b` { <<< "test" >>>; } @=> -// ptr_t ptr; -// ptr(1,2); +#! `a,b` { <<< "test" >>>; } @=> +#! ptr_t ptr; +#! ptr(1,2); fun void test(int i, int j) { <<< this, " ", i, " ", j >>>; } -// fun void test(ptr_t t, int i) { -//<<< t >>>; -// t(2,i); -// } -// test(`a,b` { <<< this, " lambda argument" >>>; }, 2); +#! fun void test(ptr_t t, int i) { +#!<<< t >>>; +#! t(2,i); +#! } +#! test(`a,b` { <<< this, " lambda argument" >>>; }, 2); } -//<<< C c >>>; +#!<<< C c >>>; C c; <<< c >>>; -//<<< c.test >>>; -//<<< c.ptr >>>; -//c.ptr(1,2); -//<<< c.test >>>; +#!<<< c.test >>>; +#!<<< c.ptr >>>; +#!c.ptr(1,2); +#!<<< c.test >>>; c.test @=> c.ptr; -//c.ptr; -//<<< c.ptr >>>; -//c.test(1,2); +#!c.ptr; +#!<<< c.ptr >>>; +#!c.test(1,2); c.ptr(1, 2); -//c.ptr(1, 2); -//c.ptr(1, 2); -//(1,2) => c.ptr; -//c.test(`a,b` { <<< this, "lambda argument" >>>; }, 2); -//c.test(c.ptr, 2); -//<<< c.ptr >>>; -//c.ptr; +#!c.ptr(1, 2); +#!c.ptr(1, 2); +#!(1,2) => c.ptr; +#!c.test(`a,b` { <<< this, "lambda argument" >>>; }, 2); +#!c.test(c.ptr, 2); +#!<<< c.ptr >>>; +#!c.ptr; diff --git a/tests/new/lambda2.gw b/tests/new/lambda2.gw index e8a0474c..0ad67254 100644 --- a/tests/new/lambda2.gw +++ b/tests/new/lambda2.gw @@ -2,18 +2,18 @@ class C { typedef void ptr_t(int i); \a { <<< this, " ", a >>>; } @=> ptr_t ptr; -//ptr(3); +#!ptr(3); fun void t1(int i) { <<< this, " t1 ", i >>>; } fun void test(ptr_t ptr) { <<< this >>>; ptr(1); } t1 @=> ptr_t t1p; -//test(t1$ptr_t); +#!test(t1$ptr_t); test(t1p); -//test(ptr); -//<<< t1 >>>; -//<<< t1$ptr_t >>>; +#!test(ptr); +#!<<< t1 >>>; +#!<<< t1$ptr_t >>>; } <<< C c >>>; <<< c.test(c.ptr) >>>; diff --git a/tests/new/spork.gw b/tests/new/spork.gw index 6003f577..da3462e6 100644 --- a/tests/new/spork.gw +++ b/tests/new/spork.gw @@ -1,6 +1,6 @@ fun void _t() { <<< __func__ >>>; } fun int t() { -//<<< 1 >>>; +#!<<< 1 >>>; spork _t(); spork \a{ <<< __func__, " ", a >>>; }(1); diff --git a/tests/new/spork_in_func.gw b/tests/new/spork_in_func.gw index 2aebdf88..88b852ec 100644 --- a/tests/new/spork_in_func.gw +++ b/tests/new/spork_in_func.gw @@ -1,6 +1,6 @@ fun void test() { -// <<< 1 >>>; -//spork \{<<< 2 >>>;}(); +#! <<< 1 >>>; +#!spork \{<<< 2 >>>;}(); } test(); test(); diff --git a/tests/new/stackov.gw b/tests/new/stackov.gw index 7c197ad2..1fffc758 100644 --- a/tests/new/stackov.gw +++ b/tests/new/stackov.gw @@ -10,7 +10,7 @@ fun void launch(int i) { } spork launch(2); -//second => now; +#!second => now; me.yield(); -//.1::samp => now; +#!.1::samp => now; launch(12); diff --git a/tests/new/stackov2.gw b/tests/new/stackov2.gw index 8b948eea..06767a7d 100644 --- a/tests/new/stackov2.gw +++ b/tests/new/stackov2.gw @@ -1,5 +1,5 @@ fun void launch(int i) { <<< " launch ", i >>>; } -//spork launch(2); +#!spork launch(2); me.yield(); diff --git a/tests/new/static.gw b/tests/new/static.gw index 5ccef63d..3503c334 100644 --- a/tests/new/static.gw +++ b/tests/new/static.gw @@ -1,4 +1,4 @@ class C { fun static C t() { C c; <<< c, " something" >>>; return c; } } -//C c; +#!C c; <<< C.t() >>>; diff --git a/tests/pp/already_defined.gw b/tests/pp/already_defined.gw index 95aa6234..a7de5d34 100644 --- a/tests/pp/already_defined.gw +++ b/tests/pp/already_defined.gw @@ -1,3 +1,3 @@ -//[contains] macro already defined +#![contains] macro already defined #define macro #define macro diff --git a/tests/pp/call_not_enough.gw b/tests/pp/call_not_enough.gw index 94e5b7dd..404c3e5c 100644 --- a/tests/pp/call_not_enough.gw +++ b/tests/pp/call_not_enough.gw @@ -1,3 +1,3 @@ -//[contains] not enough arguments +#![contains] not enough arguments #define macro(a, b) a, b <<< macro(1) >>>; diff --git a/tests/pp/call_too_many.gw b/tests/pp/call_too_many.gw index e29f4726..72753f9e 100644 --- a/tests/pp/call_too_many.gw +++ b/tests/pp/call_too_many.gw @@ -1,3 +1,3 @@ -//[contains] too many arguments +#![contains] too many arguments #define macro(a) a <<< macro(1,2) >>>; diff --git a/tests/pp/conditional.gw b/tests/pp/conditional.gw index 30be49b6..8ba5dcc5 100644 --- a/tests/pp/conditional.gw +++ b/tests/pp/conditional.gw @@ -1,5 +1,5 @@ -//[contains] 'macro' defined" -//[contains] 'macro' undefined (after undefining)" +#![contains] 'macro' defined" +#![contains] 'macro' undefined (after undefining)" #define macro #ifdef macro <<< "'macro' defined" >>>; diff --git a/tests/pp/define_empty.gw b/tests/pp/define_empty.gw index 754c7b08..4bce1e10 100644 --- a/tests/pp/define_empty.gw +++ b/tests/pp/define_empty.gw @@ -1,4 +1,4 @@ -//[contains] end of text +#![contains] end of text #define macro macro diff --git a/tests/pp/define_empty_args.gw b/tests/pp/define_empty_args.gw index 2eeeec08..81e39aef 100644 --- a/tests/pp/define_empty_args.gw +++ b/tests/pp/define_empty_args.gw @@ -1,4 +1,4 @@ -//[contains] end of test +#![contains] end of test #define macro(a,b) macro(1,2); diff --git a/tests/pp/define_empty_vararg.gw b/tests/pp/define_empty_vararg.gw index a096c61b..ae6fd2b3 100644 --- a/tests/pp/define_empty_vararg.gw +++ b/tests/pp/define_empty_vararg.gw @@ -1,3 +1,3 @@ -//[contains] 123 +#![contains] 123 #define macro(...) __VA_ARGS__ <<< macro(1,2,3) >>>; diff --git a/tests/pp/define_text.gw b/tests/pp/define_text.gw index d91f89e2..e7431071 100644 --- a/tests/pp/define_text.gw +++ b/tests/pp/define_text.gw @@ -1,3 +1,3 @@ -//[contains] test +#![contains] test #define macro "test" <<< macro >>>; diff --git a/tests/pp/define_text_args.gw b/tests/pp/define_text_args.gw index 82171662..eac94955 100644 --- a/tests/pp/define_text_args.gw +++ b/tests/pp/define_text_args.gw @@ -1,3 +1,3 @@ -//[contains] test12 +#![contains] test12 #define macro(a,b) "test", a, b <<< macro(1,2) >>>; diff --git a/tests/pp/file_not_found.gw b/tests/pp/file_not_found.gw index bef1377d..b1814a22 100644 --- a/tests/pp/file_not_found.gw +++ b/tests/pp/file_not_found.gw @@ -1,2 +1,2 @@ -//[contains] file not found +#![contains] file not found #include diff --git a/tests/pp/include.gw b/tests/pp/include.gw index 4bc3a313..608ce297 100644 --- a/tests/pp/include.gw +++ b/tests/pp/include.gw @@ -1,2 +1,2 @@ -//[contains] tests/pp/header.gw +#![contains] tests/pp/header.gw #include diff --git a/tests/pp/undefined_macro.gw b/tests/pp/undefined_macro.gw index 7a9a7efa..f6d764a3 100644 --- a/tests/pp/undefined_macro.gw +++ b/tests/pp/undefined_macro.gw @@ -1,2 +1,2 @@ -//[contains] undefined macro +#![contains] undefined macro #undef macro diff --git a/tests/tree/ast_doc.gw b/tests/tree/ast_doc.gw index 8601f0f5..3832cefa 100644 --- a/tests/tree/ast_doc.gw +++ b/tests/tree/ast_doc.gw @@ -1,3 +1,3 @@ int i; <<< i >>>; -//! document the AST +#!! document the AST diff --git a/tests/tree/cast_test.gw b/tests/tree/cast_test.gw index 6bda1429..c7c0fe73 100644 --- a/tests/tree/cast_test.gw +++ b/tests/tree/cast_test.gw @@ -9,7 +9,7 @@ D d; E e; F f; G g; -//<<< f $ D >>>; +#!<<< f $ D >>>; <<< [ f, g ] >>>; <<< maybe ? f : D >>>; <<< c, " ", d, " ", e, " ", g >>>; diff --git a/tests/tree/class_dot.gw b/tests/tree/class_dot.gw index 829c06bc..f4437f8c 100644 --- a/tests/tree/class_dot.gw +++ b/tests/tree/class_dot.gw @@ -1,8 +1,8 @@ class C { int i[]; int j[2]; -// Machine.shreds() @=> i; -// null @=> i; +#! Machine.shreds() @=> i; +#! null @=> i; } C c; diff --git a/tests/tree/class_template.gw b/tests/tree/class_template.gw index ca6b1437..c53724e6 100644 --- a/tests/tree/class_template.gw +++ b/tests/tree/class_template.gw @@ -9,13 +9,13 @@ class<~A,B~> C { } } -//<<< C >>>; +#!<<< C >>>; <~int, int~>C c; <~float, int~>C d; <~polar, int~>C e; <~Vec3, int~>C f; <~Object, int~>C g; -//C c; +#!C c; <<< c.a >>>; <<< d.a >>>; <<< e.a >>>; diff --git a/tests/tree/dot.gw b/tests/tree/dot.gw index 20d0fed4..c46e379b 100644 --- a/tests/tree/dot.gw +++ b/tests/tree/dot.gw @@ -1,3 +1,3 @@ int i[]; Machine.shreds() @=> i; -//null @=> i; +#!null @=> i; diff --git a/tests/tree/false.gw b/tests/tree/false.gw index 838cff46..24e79a71 100644 --- a/tests/tree/false.gw +++ b/tests/tree/false.gw @@ -1,2 +1,2 @@ -// always return 0 +#! always return 0 <<< false >>>; diff --git a/tests/tree/member_op.gw b/tests/tree/member_op.gw index 3d39b169..10232855 100644 --- a/tests/tree/member_op.gw +++ b/tests/tree/member_op.gw @@ -1,9 +1,9 @@ class C { operator => void(C c, int i){<<< c, " ", i >>>;} -// this => this; -//fun void test_op(C c){ this => c; } +#! this => this; +#!fun void test_op(C c){ this => c; } this => int i; } C c; -//c.test_op(c); +#!c.test_op(c); diff --git a/tests/tree/protect.gw b/tests/tree/protect.gw index b317f599..43068202 100644 --- a/tests/tree/protect.gw +++ b/tests/tree/protect.gw @@ -4,6 +4,6 @@ class C { } C c; <<< c.i >>>; -//<<< ++c.i >>>; -//1 => c.i; +#!<<< ++c.i >>>; +#!1 => c.i; 2 +=> c.i; diff --git a/tests/tree/return_void.gw b/tests/tree/return_void.gw index 190b9931..60dbe600 100644 --- a/tests/tree/return_void.gw +++ b/tests/tree/return_void.gw @@ -1,6 +1,6 @@ -// define a simple variable: 'i'. +#! define a simple variable: 'i'. int i; -// define a funs that returns 1 if 'i' is non zero, and 0 othervise. +#! define a funs that returns 1 if 'i' is non zero, and 0 othervise. fun int test() { return i ? 1 : 0; } <<< test() >>>; 1 => i; diff --git a/tests/tree/shredule_test.gw b/tests/tree/shredule_test.gw index 29ca5f4b..896f4839 100644 --- a/tests/tree/shredule_test.gw +++ b/tests/tree/shredule_test.gw @@ -1,4 +1,4 @@ -// catch free gc +#! catch free gc Event e; spork { e => now; }; spork { samp => now; 4::samp => now;}; diff --git a/tests/tree/spork_in_func.gw b/tests/tree/spork_in_func.gw index b7c589f9..137b15a3 100644 --- a/tests/tree/spork_in_func.gw +++ b/tests/tree/spork_in_func.gw @@ -1,7 +1,7 @@ fun void test() { spork { <<< 2 >>>; }; } -//spork { <<< 1 >>>; }; -//spork test(); +#!spork { <<< 1 >>>; }; +#!spork test(); test(); second => now; diff --git a/tests/tree/spork_member.gw b/tests/tree/spork_member.gw index 1939a9a3..dcdebe68 100644 --- a/tests/tree/spork_member.gw +++ b/tests/tree/spork_member.gw @@ -6,12 +6,12 @@ class C <<< "test2" >>>; }; } -// spork test(2); -// spork { <<< "test", this >>>; }; +#! spork test(2); +#! spork { <<< "test", this >>>; }; } C c; <<< c >>>; -//spork +#!spork c.test(1); c.test(2); samp => now; diff --git a/tests/tree/uncalled_functions.gw b/tests/tree/uncalled_functions.gw index 0157635a..82e30fd7 100644 --- a/tests/tree/uncalled_functions.gw +++ b/tests/tree/uncalled_functions.gw @@ -1,4 +1,4 @@ -// just to check uncalled fun to not push the stack +#! just to check uncalled fun to not push the stack class C { fun void test(){} fun static void stest() {}} C c; diff --git a/tests/tree/vec_num_dim.gw b/tests/tree/vec_num_dim.gw index 894f7584..5f6e00bc 100644 --- a/tests/tree/vec_num_dim.gw +++ b/tests/tree/vec_num_dim.gw @@ -1,2 +1,2 @@ -// a vec3 with only two expressions +#! a vec3 with only two expressions [ @(0.0- 0.0, 0.0) ]; -- 2.43.0