| ▼Nfabrique | |
| ►Nast | Representation of the Abstract Syntax Tree for Fabrique source code |
| CAction | A build action that can transform inputs into outputs |
| CArgument | An argument being passed to an action or function (caller-side) |
| CASTDump | Backend that prints the AST as a (not very pretty) tree |
| CBinaryOperation | An operation with two operands |
| CBoolLiteral | A literal 'true' or 'false' value in code |
| CCall | A call to a function or build action |
| CCompoundExpression | An expression that can contain intermediate values |
| CConditional | A function allows users to create build abstractions |
| CDebugTracePoint | An operation with two operands |
| ►CEvalContext | A context for evaluating AST Expression objects |
| CAlternateScoping | An object that represents the use of an alternative scope stack and that will restore the original stack on destruction |
| CScope | An object to represent descending in a call stack |
| CScopedValueName | An object for declaring the name of the value whose initializer we are currently evaluating |
| CExpression | Base class for expressions that can be evaluated |
| CFieldAccess | An expression that imports a Fabrique module |
| CFieldQuery | An expression that imports a Fabrique module |
| CFileList | A list of files, with optional arguments that can be applied to each file |
| CFilename | A reference to a file on disk (source or target) |
| CForeachExpr | An expression that maps list elements into another list |
| CFunction | A function allows users to create build abstractions |
| CHasParameters | A mixin type for something that can be called with parameters |
| CHasScope | A mixin type for something that has a Scope |
| CIdentifier | The name of a value, function, parameter or argument |
| CImport | An expression that imports a Fabrique module |
| CIntLiteral | An integer value in code |
| CList | A list of same-typed expressions |
| CLiteral | An expression whose value is literally expressed in the source file |
| CMapping | An expression that maps a sequence into a variable (e.g., at the beginning of a foreach loop) |
| CNode | Base class for expressions that can be evaluated |
| CParameter | A formal parameter in a fabrique::ast::Function |
| CParser | Parses Fabrique files as driven by flex/byacc |
| CScope | A scope is a container for name->value mappings |
| CSomeValue | A value boxed up in a maybe type |
| CStringLiteral | A string value enclosed by single or double quotes |
| CStructInstantiation | A list of same-typed expressions |
| CSymbolReference | A reference to a named symbol |
| CUnaryOperation | An operation with two operands |
| CValue | Base class for expressions that can be evaluated |
| CVisitor | Interface for visitors that walk the AST |
| ►Nbackend | Backends generate low level build descriptions, e.g., Graphviz Dot or Ninja |
| CBackend | Interface for backend classes that convert a DAG to something else (e.g., a Ninja file) |
| CDotBackend | A backend that produces GraphViz .dot files |
| CMakeBackend | A backend that produces POSIX make files (no BSD or GNU extensions) |
| CNinjaBackend | A backend that produces Ninja files |
| CNullBackend | A backend that does nothing |
| ►Ndag | Representations of nodes (files, build rules, etc.) in the build graph |
| CBoolean | A boolean (true/false) value |
| CBuild | An application of a fabrique::dag::Rule to transform File objects |
| CCallable | A mixin type for something that can be called with parameters |
| CDAG | A directed acyclic graph of build actions |
| ►CDAGBuilder | A object that builds DAG nodes in a DAGBuilder::Context |
| CContext | An object that can supply a DAGBuilder with names and types |
| CFile | A reference to a file on disk (source or target) |
| CFormatter | An object that converts DAG nodes into strings |
| CFunction | A reference to a user- or plugin-defined function |
| CInteger | An integer (of unspecified precision) |
| CList | The result of evaluating an expression |
| CParameter | The result of evaluating an expression |
| CPrimitive | The result of evaluating an expression |
| CRule | An action that transforms files into other files |
| CString | An ASCII string (for now, we should make this Unicode soon) |
| CStructure | A reference to a file on disk (source or target) |
| CTarget | A named build target that references a set of files |
| CUndefinedValueException | An unexpected duplicate was encountered |
| CValue | The result of evaluating an expression |
| CVisitor | Interfact for objects that visit DAG nodes and add functionality |
| ►Nplugin | Code to support loading and using Fabrique plugins |
| CLoader | Support for loading plugins from shared libraries |
| ►CPlugin | A plugin that provides extra functionality to Fabrique build descriptions |
| CDescriptor | Static information about a plugin |
| CRegistry | A registry for naming Fabrique Plugin objects |
| ►Nplugins | Plugins that ship with Fabrique |
| ►CSysctlPlugin | Provides access to the sysctl(3) set of C library functions |
| CFactory | |
| ►CWhich | Finds files (executables or any other kind of files) in the PATH environment variable |
| CFactory | |
| CArguments | Command-line options and arguments after parsing, type-checking, etc |
| CAssertionFailure | Some code may choose to throw this exception rather than assert() out |
| CBooleanType | A type that represents an ordered sequence |
| CBytestream | A ostream-like class that may support formatting |
| CErrorReport | A non-exceptional representation of a problem in source code |
| CFileType | A type that represents an ordered sequence |
| CFunctionType | A type that represents an ordered sequence |
| CHasSource | A mixin type for something that has a location in source code |
| CIntegerType | A type that represents an ordered sequence |
| CJoin | Joins printable objects into a string, e.g., "a, b, c" or "a b c" |
| CLexer | Tokenizes Fabrique source code |
| CMaybeType | A type that represents an ordered sequence |
| COptionallyTyped | A mixin type for something that may have a Type |
| COSError | An error that has an OS-specific description |
| CPosixError | An OS error that has an errno or equivalent output |
| CPosixSharedLibrary | Platform-agnostic superclass for a shared library |
| CPrintable | A thing that can be pretty-printed |
| CRawMaybeType | An unparameterised sequence (e.g., maybe): used to generate parameterised sequences (e.g., maybe[foo]) |
| CRawSequenceType | An unparameterised sequence (e.g., list): used to generate parameterised sequences (e.g., list[foo]) |
| CSemanticException | A semantic error is present in the Fabrique description |
| CSequenceType | A type that represents an ordered sequence |
| CSharedLibrary | Platform-agnostic superclass for a shared library |
| CSourceCodeException | Base class for exceptions related to invalid source code |
| CSourceLocation | A location in the original source code |
| CSourceRange | A range of characters in source code |
| CStringType | A type that represents an ordered sequence |
| CStructureType | The type of a structure, which contains named, typed, immutable fields |
| CSyntaxError | A syntactic error is present in the Fabrique description |
| CToken | A token obtained from the Lexer |
| CType | The name of a value, function, parameter or argument |
| CTypeContext | A context object that holds state for a compilation (e.g., type objects) |
| CTyped | A mixin type for something that has a Type |
| CTypeError | Something is wrong with a fabrique::Type |
| CUncopyable | An object that cannot be copy-constructed |
| CUserError | An error in user input |
| CVisitable | An object that can be visited by a vistor |
| CWrongTypeException | Something is wrong with a fabrique::Type |