Provided by: libmakefile-parser-perl_0.215-2_all bug

NAME

       Makefile::AST - AST for (GNU) makefiles

DESCRIPTION

       The structure of this (GNU) makefile AST is designed based on GNU make's data base listing
       output produced by "--print-data-base".

       This AST library provides the following classes:

       Makefile::AST
           The primary class for ASTs. Provides interface for node adding and querying, such as
           "add_implicit_rule", "apply_implicit_rules", "add_explicit_rule",
           "apply_explicit_rules", "add_var", "add_auto_var", "get_var", as well as lots of other
           utility functions, like method "eval_var_value" for computing the ultimate values of
           makefile variables, method "enter_pad" and "leave_pad" for local variable's scoping
           pad.

       Makefile::AST::Rule::Base
           This is the base class for the rule nodes in the AST. It has properties like
           "normal_prereqs", "order_prereqs", "commands", and "colon".

       Makefile::AST::Rule
           This class represents the de-sugared form of simple rules and implicite rules after
           application. It inherits from Makefile::AST::Rule::Base, and adds new properties
           "target" and "other_targets".

       Makefile::AST::Rule::Implicit
           This class represents the implicit rule nodes in the AST. It inherits from
           Makefile::AST::Rule::Base, and adds new properties "targets", "match_anything", and
           "is_terminal".

       Makefile::AST::StemMatch
           This class encapsulates the file pattern matching (file names containing "%") and stem
           substitution algorithms.

       Makefile::AST::Variable
           It represents the makefile variable nodes in the AST, including "name", "value",
           "flavor", and "origin".

       Makefile::AST::Command
           Used to encapsulate information regarding makefile rule commands (e.g. command body,
           command modifiers "@", "-", "+", and etc.) as a whole.

LIMITATIONS AND TODO

       Adding support for other flavors' makes into this AST library should make a huge amount of
       sense. The most interesting candiate is Microsoft's NMAKE.

CODE REPOSITORY

       For the very latest version of this script, check out the source from

       http://github.com/agentzh/makefile-parser-pm <http://github.com/agentzh/makefile-parser-
       pm>.

       There is anonymous access to all.

AUTHOR

       Zhang "agentzh" Yichun "<agentzh@gmail.com>"

COPYRIGHT AND LICENSE

       Copyright (c) 2007-2008 by Zhang "agentzh" Yichun (agentzh).

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

SEE ALSO

       Makefile::AST::Evaluator, Makefile::Parser::GmakeDB, makesimple, pgmake-db, Makefile::DOM.