diff --git a/gdb-port/parser-type-instrumentation-gdb.py b/gdb-port/parser-type-instrumentation-gdb.py index e234409858945cce9538be980e99e3dd1921491b..fd46ec383c655db2be0152b80a86affdb84810d4 100644 --- a/gdb-port/parser-type-instrumentation-gdb.py +++ b/gdb-port/parser-type-instrumentation-gdb.py @@ -126,7 +126,7 @@ class ButNotEnv(HParserEnv): def __str__(self): return str([str(self.p1), str(self.p2)]) -class ActionEnv: +class ActionEnv(HParserEnv): def __init__(self, parser, top_level_parse): self.parser = parser @@ -136,11 +136,14 @@ class ActionEnv: # should return a HAction action = gdb.parse_and_eval("((HParseAction*) parser->env)->action"); - self.action = action + self.action = int(action) user_data_p = gdb.parse_and_eval("(HParseAction*) parser->env)->user_data"); - self.user_data_p = user_data_p + self.user_data_p = int(user_data_p) -class AndEnv: + def __str__(self): + return str([str(self.member_parser), str(hex(self.action)), str(hex(self.user_data_p))]) + +class AndEnv(HParserEnv): def __init__(self, parser, top_level_parse): self.parser = parser @@ -148,6 +151,9 @@ class AndEnv: parser_obj = top_level_parse.add_or_get_parser(member_parser_p) self.member_parser = parser_obj + def __str__(self): + return str([str(self.member_parser)])) + class ChEnv(HParserEnv): def __init__(self, parser, top_level_parse): self.parser = parser