GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Makefile::AST(3) User Contributed Perl Documentation Makefile::AST(3)
 

Makefile::AST - AST for (GNU) makefiles

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.

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.

For the very latest version of this script, check out the source from
<http://github.com/agentzh/makefile-parser-pm>.
There is anonymous access to all.

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

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.

Makefile::AST::Evaluator, Makefile::Parser::GmakeDB, makesimple, pgmake-db, Makefile::DOM.
2014-11-19 perl v5.28.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.