Wilson Snyder > SystemC-Vregs > SystemC::Vregs::Rules

Download:
SystemC-Vregs-1.470.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 1.470   Source  

NAME ^

SystemC::Vregs::Rules - Rules for outputting class headers

SYNOPSIS ^

    In a I<package>__rules.pl file:

    before_file_body    (replace => 1,
                         text => "#include \"myinclude.h\"\n",);
    before_enum_begin (  name => qr/_mine$/,
                         text => "    static const bool  MINE = true\n", );
    after_enum_end (     name => 'Foo',
                         prog => sub { fprint "   // enum foo\n"; }, );

DESCRIPTION ^

This package is used to execute Vregs rule files. These files describe exceptions and additional text to be included in Vregs outputs.

RULE DECLARATIONS ^

These functions are used to describe a rule. A rule has a number of rule parameters, generally a name which must match, and a text or prog parameter.

after_any_file

Specifies a rule to be invoked at the bottom of any type of file.

before_any_file

Specifies a rule to be invoked at the top of any type of file.

after_file_body

Specifies a rule to be invoked at the bottom of the class.h file.

before_file_body

Specifies a rule to be invoked to produce the #include and other text at the top of the class.h file.

after_class_begin

Specifies a rule to be invoked right after the 'class foo {' line.

before_class_end

Specifies a rule to be invoked right before the '}' ending a class declaration.

after_class_end

Specifies a rule to be invoked right after the '}' ending a class declaration.

after_defines_body

Specifies a rule to be invoked at the bottom of the defs.h file.

before_defines_body

Specifies a rule to be invoked at the top of the defs.h file.

after_enum_begin

Specifies a rule to be invoked right after the 'enum foo {' line.

before_enum_end

Specifies a rule to be invoked right before the '}' ending a enum declaration.

after_enum_end

Specifies a rule to be invoked right after the '}' ending a enum declaration.

RULE PARAMETERS ^

name => 'string' =item name => qr/regexp/

Must be either a string which must match for the rule to be invoked, or a regexp reference (qr/regexp/) which if matches will invoke the rule.

replace => 1

Generally rules are cumulative, in that defining additional rules will place additional cases to be tested. With the replace flag, the rule will replace all existing rules, including default rules. This is generally useful for replacing the default #include section with the before_file_body rule.

text => 'text'

A text string to output to the file.

prog => sub { subroutine }

A reference to a subroutine that generates the code for the file.

RULE SUBROUTINES ^

These functions and variables are useful when writing prog=> subroutines.

$self

Reference to a SystemC::Vregs::Enum or SystemC::Vregs::Type, as appropriate. This can be used to get information about the thing to be printed, for example $self->{name} is the name of the object, and $self->{attributes}{foo} checks for a specific attribute.

fprint

Print to the file.

fprintf

Formatted print to the file.

DISTRIBUTION ^

Vregs is part of the http://www.veripool.org/ free Verilog software tool suite. The latest version is available from CPAN and from http://www.veripool.org/vregs. /www.veripool.org/>.

Copyright 2001-2010 by Wilson Snyder. This package is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0.

AUTHORS ^

Wilson Snyder <wsnyder@wsnyder.org>

SEE ALSO ^

vreg, SystemC::Vregs

syntax highlighting: