From 75fe6e2d9a72c0a8537e05c6dfebeffa9e837345 Mon Sep 17 00:00:00 2001 From: Jeffrey Kegler Date: Mon, 14 Nov 2011 20:33:14 -0800 Subject: [PATCH] Elminating symbol callback: t+ --- r2/lib/Marpa/R2/Grammar.pm | 7 +++++++ r2/lib/Marpa/R2/Value.pm | 9 +++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/r2/lib/Marpa/R2/Grammar.pm b/r2/lib/Marpa/R2/Grammar.pm index b1b67fb97..bc13b4d6e 100644 --- a/r2/lib/Marpa/R2/Grammar.pm +++ b/r2/lib/Marpa/R2/Grammar.pm @@ -1245,6 +1245,13 @@ sub message_cb { return; } ## end sub message_cb +sub Marpa::R2::Grammar::symbol_name { + my ( $grammar, $id ) = @_; + my $symbols = $grammar->[Marpa::R2::Internal::Grammar::SYMBOLS]; + my $name = $symbols->[$id]->[Marpa::R2::Internal::Symbol::NAME]; + return $name if defined $name; +} + sub wrap_symbol_cb { my ( $grammar_id, $symbol_id ) = @_; my $grammar = get_grammar_by_id($grammar_id); diff --git a/r2/lib/Marpa/R2/Value.pm b/r2/lib/Marpa/R2/Value.pm index 2395268bf..fe01d7cbb 100644 --- a/r2/lib/Marpa/R2/Value.pm +++ b/r2/lib/Marpa/R2/Value.pm @@ -361,7 +361,7 @@ sub Marpa::R2::Internal::Recognizer::set_null_values { if ($trace_values) { print {$Marpa::R2::Internal::TRACE_FH} 'Setting null value for symbol ', - $symbol->[Marpa::R2::Internal::Symbol::NAME], + $grammar->symbol_name($symbol_id), ' to ', Data::Dumper->new( [ \$null_value ] )->Terse(1)->Dump or Marpa::R2::exception('Could not print to trace file'); } ## end if ($trace_values) @@ -483,8 +483,7 @@ sub Marpa::R2::Internal::Recognizer::set_actions { # a fatal error. FIND_CLOSURE_BY_LHS: { my $lhs_id = $grammar_c->rule_lhs($rule_id); - my $action = - $symbols->[$lhs_id]->[Marpa::R2::Internal::Symbol::NAME]; + my $action = $grammar->symbol_name($lhs_id); last FIND_CLOSURE_BY_LHS if substr( $action, -1 ) eq ']'; my $closure = Marpa::R2::Internal::Recognizer::resolve_semantics( $recce, @@ -762,9 +761,7 @@ sub Marpa::R2::Internal::Recognizer::evaluate { $recce_c->and_node_order_get( $or_node_id, $choice ); my $token_name; if ( defined $token_id ) { - $token_name = - $symbols->[$token_id] - ->[Marpa::R2::Internal::Symbol::NAME]; + $token_name = $grammar->symbol_name($token_id); } print {$Marpa::R2::Internal::TRACE_FH}