Fabrique

A build language for complex systems

 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
fabrique::ast Namespace Reference

Representation of the Abstract Syntax Tree for Fabrique source code. More...

Classes

class  Action
 A build action that can transform inputs into outputs. More...
 
class  Argument
 An argument being passed to an action or function (caller-side). More...
 
class  ASTDump
 Backend that prints the AST as a (not very pretty) tree. More...
 
class  BinaryOperation
 An operation with two operands. More...
 
class  BoolLiteral
 A literal 'true' or 'false' value in code. More...
 
class  Call
 A call to a function or build action. More...
 
class  CompoundExpression
 An expression that can contain intermediate values. More...
 
class  Conditional
 A function allows users to create build abstractions. More...
 
class  DebugTracePoint
 An operation with two operands. More...
 
class  EvalContext
 A context for evaluating AST Expression objects. More...
 
class  Expression
 Base class for expressions that can be evaluated. More...
 
class  FieldAccess
 An expression that imports a Fabrique module. More...
 
class  FieldQuery
 An expression that imports a Fabrique module. More...
 
class  FileList
 A list of files, with optional arguments that can be applied to each file. More...
 
class  Filename
 A reference to a file on disk (source or target). More...
 
class  ForeachExpr
 An expression that maps list elements into another list. More...
 
class  Function
 A function allows users to create build abstractions. More...
 
class  HasParameters
 A mixin type for something that can be called with parameters. More...
 
class  HasScope
 A mixin type for something that has a Scope. More...
 
class  Identifier
 The name of a value, function, parameter or argument. More...
 
class  Import
 An expression that imports a Fabrique module. More...
 
class  IntLiteral
 An integer value in code. More...
 
class  List
 A list of same-typed expressions. More...
 
class  Literal
 An expression whose value is literally expressed in the source file. More...
 
class  Mapping
 An expression that maps a sequence into a variable (e.g., at the beginning of a foreach loop). More...
 
class  Node
 Base class for expressions that can be evaluated. More...
 
class  Parameter
 A formal parameter in a fabrique::ast::Function. More...
 
class  Parser
 Parses Fabrique files as driven by flex/byacc. More...
 
class  Scope
 A scope is a container for name->value mappings. More...
 
class  SomeValue
 A value boxed up in a maybe type. More...
 
class  StringLiteral
 A string value enclosed by single or double quotes. More...
 
class  StructInstantiation
 A list of same-typed expressions. More...
 
class  SymbolReference
 A reference to a named symbol. More...
 
class  UnaryOperation
 An operation with two operands. More...
 
class  Value
 Base class for expressions that can be evaluated. More...
 
class  Visitor
 Interface for visitors that walk the AST. More...
 

Typedefs

typedef PtrVec< ExpressionExprVec
 

Detailed Description

Representation of the Abstract Syntax Tree for Fabrique source code.