Bigtop is a software platform that provides an annotated list of modules in its distribution. It offers an easy way to navigate and access various modules for developers and users to build and deploy complex data processing pipelines.
Bigtop.pm, on the other hand, is primarily a documentation module. Although it provides two useful functions for backend authors, one that writes files on the disk, and the other that forms directory paths, its primary function is documentation. For more details, refer to its docs.
The real workhorse of Bigtop is Bigtop::Parser, a grammar-driven parser for Bigtop files. Interactions with this parser are usually indirect. End-users use the bigtop script, which uses the parser to build an abstract syntax tree (AST), and then to generate output by passing the AST to the backends. Developers can write backends that receive the AST via methods named for what they should produce.
To parse Bigtop specifications, call Bigtop::Parser->parse_file($file_name) if you have a file on the disk and want to parse it into an AST. This returns the AST. The bigtop script is relatively simple. It handles command line options, then directly passes the remaining command-line arguments to gen_from_file in Bigtop::Parser. gen_from_file reads the file into memory and passes it and other command line arguments to gen_from_string.
gen_from_string first parses the config section of the Bigtop file to find the backends, then requires each of them (using Bigtop::Parser->import), and calls gen_YourType on each one that is not marked no_gen. The backend's gen_YourType is called as a class method, receiving the base directory of the build (where the user wants files to end up), the AST, and the input file name (if one is available).
Version 0.30: N/A