#!/usr/bin/perl -w use lib qw(./blib/lib ./blib/arch); use Moot; use JSON; use Getopt::Long; use File::Basename qw(basename); use Pod::Usage; ##------------------------------------------------------------------------------ ## Constants & Globals ##------------------------------------------------------------------------------ our $prog = basename($0); our $outfile = '-'; our $ifmt_request = ''; our $ifmt_default = Moot::tiofText(); ##------------------------------------------------------------------------------ ## Command-line ##------------------------------------------------------------------------------ GetOptions(##-- General 'help|h' => \$help, 'input-format|ifmt|format|fmt|I=s' => \$ifmt_request, ); pod2usage({-exitval=>0, -verbose=>0}) if ($help); ##------------------------------------------------------------------------------ ## MAIN push(@ARGV,'-') if (!@ARGV); foreach my $file (@ARGV) { my $tr = Moot::TokenIO::file_reader($file, $ifmt_request, 0, $ifmt_default) or die("$0: file_reader() failed for $file: $!"); print "%% FILE=$file : FORMAT=", Moot::TokenIO::format_canonical_string($tr->format), "\n"; my ($w); while (defined($w=$tr->get_token)) { $w->{type} .= ' '.$Moot::TokType[$w->{type}]; print to_json($w, {utf8=>1,pretty=>0,canonical=>1}), "\n"; } } __END__ =pod =head1 NAME moot-scan.perl - scan moot input file(s) into a stream of JSON objects =head1 SYNOPSIS moot-scan.perl [OPTIONS] INPUT_FILE(s)... Options: -help # this help message -input-format FORMAT # request a specific input format =cut ##------------------------------------------------------------------------------ ## Options and Arguments ##------------------------------------------------------------------------------ =pod =head1 OPTIONS AND ARGUMENTS not yet written. =cut ##------------------------------------------------------------------------------ ## Description ##------------------------------------------------------------------------------ =pod =head1 DESCRIPTION not yet written. =cut ##------------------------------------------------------------------------------ ## Footer ##------------------------------------------------------------------------------ =pod =head1 AUTHOR Bryan Jurish Emoocow@cpan.orgE =cut