www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Beispielprogramm

calc.pl
#!/usr/local/bin/perl -w
# calc.pl -- Taschenrechner mit der Perl-Version von lex und yacc;
#      Vorher aufrufen: byacc -d -P CalcParser calc.y

use Parse::YYLex;                            # CPAN-Modul

use Getopt::Std;                             # Standardmodul
use vars qw ( $opt_v );
getopts("v") || die "usage: $0 [-v]\n";      # -v: Debugging
$debug = defined $opt_v ? 1 : 0;

my @tokens = (
      number    => '\d+',
      eol       => '\n',
      opplus    => '\+', opminus => '-',
      optimes   => '\*', opdiv => '/',
      braceopen => '[({[]', braceclose => '[)}\]]',
      other     => '.'
          );

my $lexer = Parse::YYLex->new(@tokens);

use CalcParser;      # aus: byacc -d -P CalcParser calc.y
my $parser = CalcParser->new($lexer->getyylex, \&yyerror, $debug);

$lexer->from(\*STDIN);
$parser->yyparse(\*STDIN);

sub yyerror {
    my $errmsg = shift;
    print STDERR "Error: $errmsg\n";
    exit 0;
}
   

[Prev] [Up] [Relevant Chapter] [Next]

[Alte Quelle]


Last modified: $Date: 2006/05/18 12:55:52 $
FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy
FreeBSD Logo