NAME

MarpaX::Languages::C::AST::Util - C Translation to AST - Class method utilities

VERSION

version 0.48

SYNOPSIS

use MarpaX::Languages::C::AST::Util qw/:all/;

my $whoami = whoami();
my $whowasi = whowasi();
callIt(0, '1', [2], {3 => 4});

sub callIt {
    my $hash = traceAndUnpack(['var1', 'var2', 'array1p', 'hash1p'], @_);
}

DESCRIPTION

This modules implements some function utilities.

EXPORTS

The methods whoami(), whowasi() and traceAndUnpack() are exported on demand.

SUBROUTINES/METHODS

whoami($base)

Returns the name of the calling routine. Optional $base prefix is removed. Typical usage is whoami(__PACKAGE__).

whowasi($base)

Returns the name of the parent's calling routine. Optional $base prefix is removed. Typical usage is whowasi(__PACKAGE__).

traceAndUnpack($nameOfArgumentsp, @arguments)

Returns a hash mapping @{$nameOfArgumentsp} to @arguments and trace it. The tracing is done using a method quite similar to Log::Any. Tracing and hash mapping stops at the end of @nameOfArguments or @arguments.

logCroak($fmt, @arg)

Formats a string using Log::Any, issue a $log->fatal with it, and croak with it.

showLineAndCol($line, $col, $sourcep)

Returns a string showing the request line, followed by another string that shows what is the column of interest, in the form "------^".

lineAndCol($impl, $g1)

Returns the output of Marpa's line_column at a given $g1 location. Default $g1 is Marpa's current_g1_location(). If $start is given, $g1 is ignored.

startAndLength($impl, $g1)

Returns the output of Marpa's g1_location_to_span at a given $g1 location. Default $g1 is Marpa's current_g1_location().

lastCompleted($impl, $symbol)

Returns the string corresponding the last completion of $symbol.

depth($impl, $subGrammar)

Returns an array of rules ordered by depth for optional sub grammar $subGrammar (default is 'G1'). Each array item is a hash reference with the following keys:

ruleId

Rule Id

ruleName

Rule Id

lhsId

LHS id of this rule

lhsName

LHS name of this rule

rhsIds

Rhs ids of this rule as an array reference

rhsNames

Rhs names of this rule as an array reference

depth

Rule depth

AUTHOR

Jean-Damien Durand <jeandamiendurand@free.fr>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Jean-Damien Durand.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.