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

📄 concat.pm

📁 这是一个DFA简化和生成LL(1)分析表的程序,自动生成表格及图形
💻 PM
字号:
#: Kid/AST/concat.pm - generated from template/leftop.pm.tt

package concat;

use strict;
use warnings;
#use Data::Dumper::Simple;

sub concat {
    my $self = shift;
    if (!exists $self->{concat}) {
        my $rlist = $self->{'modified_atom(s?)'};
        return nil->new if not $rlist;
        my @modified_atoms = @$rlist;
        my $modified_atom = pop @modified_atoms;
        my $concat;
        if (@modified_atoms) {
            $concat = bless {'modified_atom(s?)' => \@modified_atoms}, ref $self;
        } else {
            $concat = nil->new;
        }
        $self->{concat} = $concat;
        $self->{modified_atom} = $modified_atom;
        #delete $self->{'modified_atom(s?)'};
        #warn Dumper($self);
    }
    return $self->{concat};
}

sub modified_atom {
    my $self = shift;
    if (!exists $self->{modified_atom}) {
        $self->concat;
    }
    if (@_) {
        $self->{modified_atom} = shift;
    } else {
        $self->{modified_atom} || nil->new;
    }
}

sub get_all {
    my $list = shift;
    my @elems;
    while (ref $list eq 'concat') {
        unshift @elems, $list->modified_atom;
        $list = $list->concat;
    }
    @elems;
}


1;

⌨️ 快捷键说明

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