From 69c68955b910a9f284fa25b9ebb30eff5c040e0b Mon Sep 17 00:00:00 2001 From: fche Date: Thu, 2 Jun 2005 19:43:55 +0000 Subject: 2005-06-02 Frank Ch. Eigler Parse foreach construct. Added fuller copyright notices throughout. * staptree.h (foreach_loop): New tree node type. * staptree.cxx: Print it, visit it, love it, leave it. * parse.cxx: Parse it. (parse_stmt_block): Don't require ";" separators between statements. (parse_array_in): Use [] as index group operator instead of (). * elaborate.cxx (visit_foreach_loop): New code. * translate.cxx: Slightly tighten errorcount/actioncount handling. * main.cxx: Accept "-" as script file name standing for stdin. (visit_arrayindex): Switch to simpler set_arity call. * configure.ac: Generate DATE macro. * Makefile.in, configure, config.in: Regenerated. * testsuite/*: New/updated tests for syntax changes, foreach (). --- testsuite/semok/ten.stp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'testsuite/semok/ten.stp') diff --git a/testsuite/semok/ten.stp b/testsuite/semok/ten.stp index d56c2a4a..bb353a9f 100755 --- a/testsuite/semok/ten.stp +++ b/testsuite/semok/ten.stp @@ -1,10 +1,15 @@ -#! stap -p1 +#! stap -p2 -global a1, a2, a3 +global arr,rra -probe all -{ - a = "1" in a1; - a = ("1", a) in a2; - a = (a, a+a, a1[a], a2[0+a]) in a3; +probe begin { + arr["key"]=0 + rra[0]="value" +} +probe end { + # confirm that typechecking works the same way for all array indexing + if (k in arr) { k.""; arr[k]+0 } + foreach (l in arr) { l.""; arr[l]+0 } + if (m in rra) { m+0; rra[m]."" } + foreach (n in rra) { n+0; rra[n]."" } } -- cgit