Provided by: libbind-config-parser-perl_0.01-1.1_all bug

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.