Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

config::grammar::dynamic(3pm) [debian man page]

Config::Grammar::Dynamic(3pm)				User Contributed Perl Documentation			     Config::Grammar::Dynamic(3pm)

NAME
Config::Grammar::Dynamic - A grammar-based, user-friendly config parser DESCRIPTION
Config::Grammar::Dynamic is like Config::Grammar but with some additional features useful for building configuration grammars that are dynamic, i.e. where the syntax changes according to configuration entries in the same file. The following keys can be additionally specified in the grammar when using this module: Special Section Keys _dyn A subroutine reference (function pointer) that will be called when a new section of this syntax is encountered. The subroutine will get three arguments: the syntax of the section name (string or regexp), the actual name encountered (this will be the same as the first argument for non-regexp sections) and a reference to the grammar tree of the section. This subroutine can then modify the grammar tree dynamically. _dyndoc A hash reference that lists interesting names for the section that should be documented. The keys of the hash are the names and the values in the hash are strings that can contain an explanation for the name. The _dyn() subroutine is then called for each of these names and the differences of the resulting grammar and the original one are documented. This module can currently document differences in the _vars list, listing new variables and removed ones, and differences in the _sections list, listing the new and removed sections. _recursive Array containing the list of those sub-sections that are recursive, ie. that can contain a new sub-section with the same syntax as themselves. The same effect can be accomplished with circular references in the grammar tree or a suitable _dyn section subroutine (see below}, so this facility is included just for convenience. Special Variable Keys _dyn A subroutine reference (function pointer) that will be called when the variable is assigned some value in the config file. The subroutine will get three arguments: the name of the variable, the value assigned and a reference to the grammar tree of this section. This subroutine can then modify the grammar tree dynamically. Note that no _dyn() call is made for default and inherited values of the variable. _dyndoc A hash reference that lists interesting values for the variable that should be documented. The keys of the hash are the values and the values in the hash are strings that can contain an explanation for the value. The _dyn() subroutine is then called for each of these values and the differences of the resulting grammar and the original one are documented. This module can currently document differences in the _vars list, listing new variables and removed ones, and differences in the _sections list, listing the new and removed sections. COPYRIGHT
Copyright (c) 2000-2005 by ETH Zurich. All rights reserved. Copyright (c) 2007 by David Schweikert. All rights reserved. LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. AUTHORS
David Schweikert, Tobias Oetiker, Niko Tyni perl v5.10.0 2007-09-25 Config::Grammar::Dynamic(3pm)

Check Out this Related Man Page

grammar::me::util(3tcl) 				   Grammar operations and usage 				   grammar::me::util(3tcl)

__________________________________________________________________________________________________________________________________________________

NAME
grammar::me::util - AST utilities SYNOPSIS
package require Tcl 8.4 package require grammar::me::util ?0.1? ::grammar::me::util::ast2tree ast tree ?root? ::grammar::me::util::ast2etree ast mcmd tree ?root? mcmd lc location mcmd tok from ?to? ::grammar::me::util::tree2ast tree ?root? _________________________________________________________________ DESCRIPTION
This package provides a number of utility command for the conversion between the various representations of abstract syntax trees as speci- fied in the document grammar::me_ast. ::grammar::me::util::ast2tree ast tree ?root? This command converts an ast from value to object representation. All nodes in the ast will be converted into nodes of this tree, with the root of the AST a child of the node root. If this node is not explicitly specified the root of the tree is used. Existing content of tree is not touched, i.e. neither removed nor changed, with the exception of the specified root node, which will gain a new child. ::grammar::me::util::ast2etree ast mcmd tree ?root? This command is like ::grammar::me::util::ast2tree, except that the result is in the extended object representation of the input AST. The source of the extended information is the command prefix mcmd. It has to understand two methods, lc, and tok, with the semantics specified below. mcmd lc location Takes the location of a token given as offset in the input stream and return a 2-element list containing the associated line number and column index, in this order. mcmd tok from ?to? Takes one or two locations from and to as offset in the input stream and returns a Tcl list containing the specified part of the input stream. Both location are inclusive. If to is not specified it will default to the value of from. Each element of the returned list is a list containing the token, its associated lexeme, the line number, and column index, in this order. Both the ensemble command ::grammar::me::tcl provided by the package grammar::me::tcl and the objects command created by the package ::grammar::me::cpu fit the above specification. ::grammar::me::util::tree2ast tree ?root? This command converts an ast in (extended) object representation into a value and returns it. If a root node is specified the AST is generated from that node downward. Otherwise the root of the tree object is used as the starting point. BUGS, IDEAS, FEEDBACK This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category gram- mar_me of the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for either package and/or documentation. KEYWORDS
abstract syntax tree, syntax tree, tree CATEGORY
Grammars and finite automata COPYRIGHT
Copyright (c) 2005 Andreas Kupries <andreas_kupries@users.sourceforge.net> grammar_me 0.1 grammar::me::util(3tcl)
Man Page