BIND::Config::Parser(3pm)

BIND::Config::Parser3pm

Parse bind config file.

Usage

 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" );

Overview

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.

Releases

7 releases since Debian 7 (Wheezy); the text changed 1 time.

  1. 7–10
  2. 11–13

Authors

Matt Dainty <[email protected]>.

From libbind-config-parser-perl 0.01-1.1 in Debian 13 (Trixie). Parsed by carta from the page's man source.