B :: Gerar

B :: Gerar é um módulo Perl que você pode criar suas próprias árvores op.
Baixe Agora

B :: Gerar Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Simon Cozens
  • Site do editor:
  • http://search.cpan.org/~simon/Sub-Versive-0.01/Versive.pm

B :: Gerar Tag


B :: Gerar Descrição

B :: Gerar é um módulo Perl que você pode criar suas próprias árvores op. B :: Gerar é um módulo Perl que você pode criar seu próprio uso op trees.SYNOPSIS B :: Gerar; # Não fazer nada, lentamente. VERIFICAÇÃO {my $ null = new B :: OP ( "null", 0); my $ introduzir = new B :: OP ( "enter", 0); my $ policial = new B :: COP (0, "hiya", 0); my $ licença = new B :: LISTOP ( "licença", 0, $ entrar, $ null); $ Deixar-> crianças (3); $ Empre-> irmão ($ policial); $ Empre-> próxima ($ policial); $ COP> irmão ($ null); $ Nulo> próxima ($ licença); $ COP> próxima ($ licença); # Diga Perl onde encontrar nossa árvore. B :: main_root ($ licença); B :: main_start ($ enter); } WARNINGThis módulo irá criar falhas de segmentação, se você não sabe como usá-lo corretamente. Além disso aviso: às vezes eu não sei como usá-lo properly.There muitos outros métodos e funções de utilidade, mas eles não estão documentadas aqui. Esta é deliberada, e não apenas por preguiça. Está prevista para ter lido as fontes Perl e XS a este módulo antes de tentar fazer qualquer coisa com o módulo B do it.Patches welcome.Malcolm Beattie permite que você examine a árvore op Perl em tempo de execução, no espaço Perl; que é a base do compilador Perl. Mas o que não deixa você fazer é manipular essa árvore op: ele não vai deixar você criar novos ops, ou modificar os antigos. Agora você can.Well, se você está intimamente familiarizado com internos do Perl, você can.B :: Gerar voltas métodos de acesso do B em métodos get-definidos. Assim, em vez de simplesmente dizer $ op2 = $ OP> ao lado, você pode agora dizer $ OP> próxima ($ op2), para definir o próximo op na cadeia. Ele também adiciona métodos construtores para criar novas ops. Este é onde fica realmente peludo. novo B :: OP (tipo, bandeiras) novo B :: UNOP (tipo, bandeiras, em primeiro lugar) novo B :: BINOP (tipo, bandeiras, em primeiro lugar, último) novo B :: logop (tipo, bandeiras, em primeiro lugar, outro) novo B :: LISTOP (tipo, bandeiras, em primeiro lugar, a final) novo B :: COP (bandeiras, nome, primeiro) Em todos os construtores acima, tipo é um valor numérico que representa o tipo op (62 é o operador de adição, por exemplo) ou o nome do op. ( "Add") (Aliás, se você sabe sobre ops personalizados e têm registed-los corretamente com o intérprete, você pode criar ops personalizados por nome:. New B :: OP ( "mycustomop", 0), ou qualquer outro) em primeiro lugar, durar e outros são ops a serem anexados ao op atual; estes devem ser objetos B :: OP. Se você não tiver criado os ops, no entanto, não se preocupe; dar um valor falso, e preenchê-los mais tarde: $ x = new B :: UNOP ( "negação", 0, undef); # ... criar mais alguns ops ... $ x-> primeiro ($ y); Além disso, pode-se criar um novo operador nextstate com NewState B :: op (bandeiras, etiqueta, op) da mesma maneira como B :: COP :: nova - isto também, no entanto, adicionar o lineseq op.Finally, você pode definir a raiz principal eo op começando pela passagem de ops para o B :: main_root e B :: main_start functions.This módulo pode, obviamente, ser usado para todos os tipos de efeitos divertidos. O melhor será em conjunto com filtros de origem; ter o seu filtro de origem analisar um arquivo de entrada em uma língua estrangeira, criar uma árvore op para ele e obter Perl para executá-lo. Em seguida, enviar e-mail me e me diga como você fez isso. E porque. Requisitos: · Perl.


B :: Gerar Software Relacionado