Create Abstract Syntax Tree for Perl5
Perl C++ Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
builder
example
gen
include
lib/Compiler
src
t
.gitignore
Build.PL
Changes
LICENSE
META.json
README.md
cpanfile
cpanfile.snapshot
minil.toml
typemap

README.md

NAME

Compiler::Parser - Create Abstract Syntax Tree for Perl5

SYNOPSIS

use Compiler::Lexer;
use Compiler::Parser;
use Compiler::Parser::AST::Renderer;

my $filename = $ARGV[0];
open(my $fh, "<", $filename) or die("Cannot open $filename: $!");
my $script = do { local $/; <$fh> };
my $lexer  = Compiler::Lexer->new($filename);
my $tokens = $lexer->tokenize($script);
my $parser = Compiler::Parser->new();
my $ast = $parser->parse($tokens);
Compiler::Parser::AST::Renderer->new->render($ast);

DESCRIPTION

Compiler::Parser creates abstract syntax tree for perl5.

METHODS

  • my $parser = Compiler::Parser->new();

      Create new instance of Compiler::Parser.
    
  • my $ast = $parser->parse($tokens);

      Get blessed object of Compiler::Parser::AST.
      This method requires $tokens from Compiler::Lexer::tokenize.
    
  • my $renderer = Compiler::Parser::AST::Renderer->new();

      Create new instance of Compiler::Parser::AST::Renderer.
    
  • $renderer->render($ast)

      Render abstract syntax tree.
      This method requires $ast from Compiler::Parser::parse.
      Default rendering engine is Compiler::Parser::AST::Renderer::Engine::Text.
    

SEE ALSO

[Compiler::Lexer](http://search.cpan.org/perldoc?Compiler::Lexer)

AUTHOR

Masaaki Goshima (goccy) goccy54@gmail.com

COPYRIGHT AND LICENSE

Copyright (C) Masaaki Goshima (goccy).

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.