#!/usr/local/bin/perl package Parser; use 5.008007; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(DynaLoader Exporter); our %EXPORT_TAGS = ( 'all' => [ qw() ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw(); our $VERSION = '1.261'; #require XSLoader; #XSLoader::load('Parser', $VERSION); bootstrap Parser $VERSION; # Preloaded methods go here. #### Accessors sub new { my $class = shift; $class = ref $class if ref $class; my $self = { strip_autos=>0, @_}; bless $self, $class; return $self; } sub read { my $self = shift; my %param = (@_); if (!-r $param{filename}) { print "%Error: file not found: $param{filename}, stopped";} $self->_read_xs($param{filename}, $param{strip_autos}||$self->{strip_autos}); } sub read_include { my $self = shift; my %param = (@_); if (!-r $param{filename}) { print "%Error: file not found: $param{filename}, stopped";} $self->_read_include_xs($param{filename}); } #In Parser.XS: # sub _read_xs {class} # sub _read_include_xs {class} # sub filename {class} # sub lineno {class} ###################################################################### #### Called by the parser sub auto {} sub cell {} sub cell_decl {} sub ctor {} sub enum_value {} sub module {} sub module_continued {} sub pin {} sub pin_template {} sub preproc_sp {} sub signal {} sub text {} sub fileline { my $self = shift; return ($self->filename||"").":".($self->lineno||""); } sub error { my ($self,$text,$token)=@_; my $fileline = $self->filename.":".$self->lineno; croak ("%Error: $fileline: $text\n" ."%Error: ".(" "x length($fileline)).": At token '$token'\nStopped"); } ###################################################################### 1;