NAME¶
BIND::Config::Parser - Parse BIND Config file.
SYNOPSIS¶
use BIND::Config::Parser;
# Create the parser
my $parser = new BIND::Config::Parser;
my $indent = 0;
# Set up callback handlers
$parser->set_open_block_handler( sub {
print "\t" x $indent, join( " ", @_ ), " {\n";
$indent++;
} );
$parser->set_close_block_handler( sub {
$indent--;
print "\t" x $indent, "};\n";
} );
$parser->set_statement_handler( sub {
print "\t" x $indent, join( " ", @_ ), ";\n";
} );
# Parse the file
$parser->parse_file( "named.conf" );
DESCRIPTION¶
BIND::Config::Parser provides a lightweight parser to the configuration file
syntax of BIND v8 and v9 using a "Parse::RecDescent" grammar.
It is in a similar vein to "BIND::Conf_Parser". However, as it has no
knowledge of the directives, it doesn't need to be kept updated as new
directives are added, it simply knows how to carve up a BIND configuration
file into logical chunks.
CONSTRUCTOR¶
- new( );
- Create a new "BIND::Config::Parser" object.
METHODS¶
- set_open_block_handler( CODE_REF );
- Set the code to be called when a configuration block is
opened. At least one argument will be passed; the name of that block, for
example "options" or "zone", etc. as well as any
additional items up to but not including the opening curly brace.
- set_close_block_handler( CODE_REF );
- Set the code to be called when a configuration block is
closed. No arguments are passed.
- set_statement_handler( CODE_REF );
- Set the code to be called on a single line configuration
element. At least one argument will be passed; the name of that element,
as well as any additional items up to but not including the ending
semi-colon.
- parse_file( FILENAME );
- Parse FILENAME, triggering the above defined handlers on
the relevant sections.
TODO¶
Probably the odd one or two things. I'm fairly sure the grammar is correct.
COPYRIGHT AND LICENSE¶
Copyright (c) 2005 Matt Dainty.
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
AUTHORS¶
Matt Dainty <matt@bodgit-n-scarper.com>.
SEE ALSO¶
perl, Parse::RecDescent, BIND::Conf_Parser.