⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_spike.pm.svn-base

📁 这是一个DFA简化和生成LL(1)分析表的程序,自动生成表格及图形
💻 SVN-BASE
字号:
# test_spike.pm# testbed for spike.plpackage test_spike;use Test::Base -Base;use File::Temp qw/ tempfile /;our @EXPORT = qw(run_tests);my $pmfile;my @pmfiles;mkdir 'tmp' if !-d 'tmp';my $counter = 0;my $parser;filters {    ast => 'eval',};sub run_tests() {    for my $block (blocks()) {        run_test($block);    }}sub run_test($) {    my $block = shift;    my $gm = $block->grammar;    my $input = $block->input;    my $expected_ast = $block->ast;    my $name = $block->name;    if (defined $gm) {        my ($fh, $gmfile) =            tempfile('gm_XXXXXX', SUFFIX => '.grammar', UNLINK => 1, DIR => 'tmp');        #warn "Grammar File: $gmfile";        print $fh $gm;        close $fh;        my $class = 'Parser' . (++$counter);        is system($^X, 'spike.pl', '-m', "-n $class", $gmfile), 0, "$name - spike.pl";        ($pmfile = $gmfile) =~ s/\.grammar$/.pm/;        ok -f $pmfile, "$name - $pmfile ok";        ok require $pmfile, "$name - load module $pmfile ok";        $parser = $class->new;    }    #$::RD_TRACE = 1;    #$::RD_VERBOSE = 1;    my $ast = $parser->parse($input);    #use Data::Dumper::Simple;    #$::Data::Dumper::Indent = 1;    #warn Dumper($ast);    is_deeply $ast, $expected_ast, "$name - parse tree ok";    push @pmfiles, $pmfile;}END {    for my $file (@pmfiles) {        unlink $file;    }}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -