]> sourceware.org Git - systemtap.git/commit
parse: allow dereferencing operators on all expressions
authorJosh Stone <jistone@redhat.com>
Mon, 31 Mar 2014 21:52:03 +0000 (14:52 -0700)
committerJosh Stone <jistone@redhat.com>
Fri, 4 Apr 2014 23:33:20 +0000 (16:33 -0700)
commit0fb0cac98ad486ced03c8237ab9c20d9020e5ac3
tree9d3fb99c6987465da7cfbcc9756ea522de9cdce3
parent78a61181e4ce5d7641a5e251884a17319440f5c0
parse: allow dereferencing operators on all expressions

If it looks like a @cast, and smells like a @cast, make it a @cast!

* parse.cxx (parser::parse_dwarf_value): New step to parse dereferencing
  operands in a central place.  Add those components to existing
  target_symbol types, or else create a new @cast to contain them.
  (parser::parse_crement): Call parse_dwarf_value as the next step.
  (parser::parse_cast_op,parse_atvar_op): Split from parse_target_symbol.
  (parser::parse_value,parse_symbol): Don't worry about target_symbol
  types now, as parse_dwarf_value will do it.
  (parser::peek_target_symbol_components): Look for dereferences.
  (parser::parse_defined_op): Parse any expression operand, as below.
* staptree.h (defined_op): Take any expression as the operand.
* tapsets.cxx (var_expanding_visitor::visit_defined_op): Adapt to
  @defined's new generalized operand.
parse.cxx
staptree.cxx
staptree.h
tapsets.cxx
This page took 0.028212 seconds and 5 git commands to generate.