From 30263a7389d5c2712536b74656193708bbc64d49 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Tue, 23 Feb 2010 20:31:00 -0500 Subject: PR11005: @defined($tvar) predicate, part 1 * staptree.h (defined_op): New class. * all files: Extend all visitors as appropriate, mostly dummy/pass-through implementation. * parse.cxx (parse_target_symbol): New function, factored out of parse_symbol(). (parse_define_op): New function. * NEWS: Mention it. * parse.h: Corresponding changes. * tapsets.cxx (var_expanding_visitor::visit_defined_op): Implement @defined() semantics. (dwarf_var_expanding_visitor::visit_target_symbol): Adjust. * tapset-utrace.c (visit_target_symbol_arg): Avoid crashes on $argZZZ. * tapsets.cxx (sdt_var_expanding_visitor): Ditto. * semok/thirtysix.stp: New test. --- parse.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'parse.h') diff --git a/parse.h b/parse.h index 0ff8664c..8f34442a 100644 --- a/parse.h +++ b/parse.h @@ -1,5 +1,5 @@ // -*- C++ -*- -// Copyright (C) 2005-2007 Red Hat Inc. +// Copyright (C) 2005-2010 Red Hat Inc. // Copyright (C) 2007 Bull S.A.S // // This file is part of systemtap, and is free software. You can @@ -188,6 +188,8 @@ private: // nonterminals continue_statement* parse_continue_statement (); indexable* parse_indexable (); const token *parse_hist_op_or_bare_name (hist_op *&hop, std::string &name); + target_symbol *parse_target_symbol (const token* t); + expression* parse_defined_op (const token* t); expression* parse_expression (); expression* parse_assignment (); expression* parse_ternary (); -- cgit