From 56099f083d7a68722ace316be4d288d21caabaee Mon Sep 17 00:00:00 2001 From: fche Date: Wed, 2 Mar 2005 01:28:50 +0000 Subject: * some semantic analysis 2005-03-01 Frank Ch. Eigler * parse.cxx: Implement left-associativity for several types of operators. Add some more statement types. Parse functions. Be able to print tokens. Simplify error generating functions. Save tokens in all parse tree nodes. * parse.h: Corresponding changes. * staptree.cxx: Move tree-printing functions here. Add many new functions for symbol and type resolution. * staptree.h: Corresponding changes. * semtest.cxx: New semantic analysis pass & test driver. * testsuite/sem*/*: New tests. * parsetest.cxx: Separated parse test driver. * testsuite/parse*/*: Adapt tests to parsetest driver. * Makefile.am: Build semtest. Run its tests. * Makefile.in: Regenerated. * parse.cxx, parse.h: New files: parser. --- testsuite/semko/four.stp | 12 ++++++++++++ testsuite/semko/one.stp | 8 ++++++++ testsuite/semko/three.stp | 6 ++++++ testsuite/semko/two.stp | 8 ++++++++ 4 files changed, 34 insertions(+) create mode 100755 testsuite/semko/four.stp create mode 100755 testsuite/semko/one.stp create mode 100755 testsuite/semko/three.stp create mode 100755 testsuite/semko/two.stp (limited to 'testsuite/semko') diff --git a/testsuite/semko/four.stp b/testsuite/semko/four.stp new file mode 100755 index 00000000..e73cc88d --- /dev/null +++ b/testsuite/semko/four.stp @@ -0,0 +1,12 @@ +#! semtest + +global a, b; # types unknown + +function bar () +{ + # no return statement +} + +probe foo { + a = b; +} diff --git a/testsuite/semko/one.stp b/testsuite/semko/one.stp new file mode 100755 index 00000000..994bb451 --- /dev/null +++ b/testsuite/semko/one.stp @@ -0,0 +1,8 @@ +#! semtest + +function stamp (syscall) +{ + # no return expression => unknown function type +} + +probe kernel:syscall:read { stamp ("read"); } diff --git a/testsuite/semko/three.stp b/testsuite/semko/three.stp new file mode 100755 index 00000000..bfdeec66 --- /dev/null +++ b/testsuite/semko/three.stp @@ -0,0 +1,6 @@ +#! semtest + +probe foo { + a << 2; + b[a] = 4; # must not index with stats variable +} diff --git a/testsuite/semko/two.stp b/testsuite/semko/two.stp new file mode 100755 index 00000000..39b77f6a --- /dev/null +++ b/testsuite/semko/two.stp @@ -0,0 +1,8 @@ +#! semtest + +function zoo (p) { p << 5; return 0 } # passing stats as function arg + +probe foo { + bar = 2 + "string"; # mixing integer+string arithmetic + zoo (car) +} -- cgit