Parrot::Pmc2c

Parrot::Pmc2c is a PMC to C Code Generation.
Download

Parrot::Pmc2c Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • The Parrot Project Team
  • Publisher web site:
  • http://search.cpan.org/~ltoetsch/parrot-0.4.5/lib/Parrot/OpTrans.pm

Parrot::Pmc2c Tags


Parrot::Pmc2c Description

Parrot::Pmc2c is a PMC to C Code Generation. Parrot::Pmc2c is a PMC to C Code Generation.SYNOPSIS use Parrot::Pmc2c;Parrot::Pmc2c (and the subclasses defined in this file) is used by tools/build/pmc2c.pl to generate C code from PMC files.Functionsdoes_write($method, $section)Returns whether a method writes.count_newlines($string)Returns the number of newlines (n) in $string.dont_edit($pmcfile)Returns the "DO NOT EDIT THIS FILE" warning text. $pmcfile is the name of the original source *.pmc file.gen_ret($method, $body)Generate the C code for a return statement, if the body is empty then make a cast if needed.This method is imported by subclasses.class_name($self, $class)Returns the appropriate Parrot::Pmc2c subclass for the PMC ($self->{class}). $self is the hash reference passed to new(), and $class is Parrot::Pmc2c.dynext_load_code($library_name, %classes)$library_name is the name of the dynamic library to be created.%classes is a map from the PMC names for which code is to be generated, to dump info (PMC metadata).This function is exported.Class Methodsnew($self, $opt)Returns $self as a new instance.$self is a hash reference eval-ed from a *.dump file generated by tools/build/pmc2c.pl from a *.pmc file. It is bless-ed either into Parrot::Pmc2c::::Standard, or into one of the other special PMCs: default, delegate, Null, Ref or SharedRef.$opt is a hash reference.Instance Methodsline_directive($self,$line,$file)Generates the C pre processor string for a #line directive, or an empty string if $self-{opt}{nolines}> is true.line_directive_here($self,$output,$file)Generates the C pre processor string for a #line directive to reset the compiler's line number to the next physical line in the output.get_vtable_section()Creates a hash of all the method names containing vtable section. Called from init().make_const($class)If the PMC had its const_too flag set then this method is called in init() to to create the read-only set methods.init($class)Initializes the instance. $class is its class.decl($classname, $method, $for_header)Returns the C code for the PMC method declaration. $for_header indicates whether the code is for a header or implementation file.includes()Returns the C #include for the header file of each of the PMC's superclasses.full_arguments($args)Prepends INTERP, SELF to $args.proto($type,$parameters)Determines the prototype (argument signature) for a method body (see src/call_list).rewrite_nci_method($class, $method, $super, $super_table)Rewrites the method body performing the various macro substitutions for nci method bodies (see tools/build/pmc2c.pl).rewrite_vtable_method($class, $method, $super, $super_table)Rewrites the method body performing the various macro substitutions for vtable method bodies (see tools/build/pmc2c.pl).body($method, $line, $out_name)Returns the C code for the method body. $line is used to accumulate the number of lines, $out_name is the name of the output file we are generating.methods($line, $out_name)Returns the C code for the vtable methods. $line is used to accumulate the number of lines, $out_name is the name of the output file we are generating.lib_load_code()Returns the C code for loading a library.pmc_is_dynpmcDetermines if a given PMC type is dynamically loaded or not.init_func()Returns the C code for the PMC's initialization method, or an empty string if the PMC has a no_init flag.gen_c($out_name)Generates the C implementation file code for the PMC. $out_name is the name of the output file we are generating.hdecls()Returns the C code function declarations for all the methods for inclusion in the PMC's C header file.TODO include MMD variants.gen_h($out_name)Generates the C header file code for the PMC. $out_name is the name of the output file we are generating.implements($method)True if this class generates code for the method $method.implements_vtable($method)True if this class generates code for VTABLE method $method. Requirements: · Perl


Parrot::Pmc2c Related Software