Matt Dainty > BIND-Config-Parser-0.01 > BIND::Config::Parser

Download:
BIND-Config-Parser-0.01.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  2
Open  1
View/Report Bugs
Module Version: 0.01   Source  

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.

syntax highlighting: