Makefile::AST(3) User Contributed Perl Documentation Makefile::AST(3)NAMEMakefile::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 libary should
make a huge amount of sense. The most interesting candiate is
Microsoft's NMAKE.
SVN REPOSITORY
For the very latest version of this script, check out the source from
http://svn.openfoundry.org/makefileparser/branches/gmake-db
<http://svn.openfoundry.org/makefileparser/branches/gmake-db>.
There is anonymous access to all.
AUTHOR
Agent Zhang "<agentzh@yahoo.cn>"
COPYRIGHT AND LICENSE
Copyright (c) 2007-2008 by Agent Zhang (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.
perl v5.14.1 2008-03-16 Makefile::AST(3)