Lexical Analyzer for Perl5
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
builder
example
experiments
gen
include
lib/Compiler
src
t
.gitignore
.travis.yml
Build.PL
Changes
LICENSE
META.json
README.md
cpanfile
cpanfile.snapshot
minil.toml
typemap

README.md

Build Status Coverage Status

NAME

Compiler::Lexer - Lexical Analyzer for Perl5

SYNOPSIS

use Compiler::Lexer;
use Data::Dumper;

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);
print Dumper $tokens;

my $modules = $lexer->get_used_modules($script);
print Dumper $modules;

METHODS

  • my $lexer = Compiler::Lexer->new($options);

    create new instance. You can create object from $options in hash reference.

    options list

    • filename
    • verbose : includes token of Pod, Comment and WhiteSpace
  • $lexer->tokenize($script);

    get token objects includes parameter of 'name' or 'type' or 'line' and so on. This method requires perl source code in string.

  • $lexer->set_library_path(['path1', 'path2' ...])

    set libraries path for reading recursively. Default paths are @INC.

  • $lexer->recursive_tokenize($script)

    get hash reference like { 'module_nameA' => [], 'module_nameB' => [] ... }. This method requires per source code in string.

  • $lexer->get_used_modules($script);

    get names of used module. This method requires perl source code in string.

AUTHOR

Masaaki Goshima (goccy) <goccy(at)cpan.org>

CONTRIBUTORS

tokuhirom: Tokuhiro Matsuno

LICENSE AND COPYRIGHT

Copyright (c) 2013, Masaaki Goshima (goccy). All rights reserved.

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