NAME
Shell::Parser - The great new Shell::Parser!
VERSION
Version 0.01
SYNOPSIS
use Shell::Parser;
my $parser = new Shell::Parser;
$parser->parse(...);
DESCRIPTION
This module implements a rudimentary shell parser in Perl.
METHODS
- new()
-
Options
handlers- sets the shell code fragments handlers. See "handlers()" for more information.syntax- selects the shell syntax. See "syntax()" for more information.
Examples
my $parser = new Shell::Parser XXX; - parse()
- eof()
- handlers()
-
Sets the shell code fragments handlers. Available handlers:
assign- handler for assignments:VARIABLE=VALUEbuiltin- handler for shell builtin commands:alias,jobs,read...command- handler for external commandscomment- handler for comments:# an impressive commentkeyword- handler for shell reserved words:for,if,case...metachar- handler for shell metacharacters:;,&,|...variable- handler for variable expansion:$VARIABLEtext- handler for anything else
There is also a
defaulthandler, which will be used for any handler which has not been explicitely defined.See also "Handlers" for more information on how handlers receive their data.
- syntax()
-
Selects the shell syntax. Use one of:
bourne- the standard Bourne shellcsh- the C shelltcsh- the TENEX C shellkorn88- the Korn shell, 1988 versionkorn93- the Korn shell 1993 versionbash- GNU Bourne Again SHellzsh- the Z shell
Returns the current syntax when called with no argument, or the previous syntax when affecting a new one.
HANDLERS
To be written.
sub handler {
my $self = shift;
my %args = @_;
# do stuff
# ...
}
AUTHOR
Sébastien Aperghis-Tramoni, <sebastien@aperghis.net>
BUGS
Please report any bugs or feature requests to bug-shell-parser@rt.cpan.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
COPYRIGHT & LICENSE
Copyright 2004 Sébastien Aperghis-Tramoni, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 391:
Non-ASCII character seen before =encoding in 'Sébastien'. Assuming CP1252