Inferno  0.2
CPPTree Namespace Reference

CPPTree namespace contains node definitions that represent elements of the C++ language. More...

Classes

struct  Property
 Property is the base class for property nodes. More...
struct  Initialiser
 Variable initialiser or function body. More...
struct  Uninitialised
 an uninitialised Instance. More...
struct  Statement
 Represents a statement as found inside a function body. More...
struct  Expression
 An expression that computes a result value. More...
struct  Type
 Any abstract data type. More...
struct  Declaration
 A declaration specifies the creation of a UserType or an Instance. More...
struct  Scope
 A scope is any space in a program where declarations may appear. Declarations. More...
struct  Program
 The top level of a program. More...
struct  Uncombable
 Indicates that the node cannot be combinationalised. More...
struct  Literal
 A property that can also be used as a literal in a program. More...
struct  String
 Intermediate property node that represents a string of any value. More...
struct  SpecificString
 A string with a specific value. More...
struct  Number
 Intermediate property node that represents a number of any value. More...
struct  Integer
 Intermediate property node that represents an integer of any value and signedness. More...
struct  SpecificInteger
 Property node for a specific integer value. More...
struct  Float
 Intermediate property node that represents a floating point number of any value. More...
struct  SpecificFloat
 Property node for a specific floating point value. More...
struct  Bool
 Intermediate property node that represents either boolean value. More...
struct  True
 Property node for boolean value true. More...
struct  False
 Property node for boolean value false. More...
struct  Identifier
 Property node for any identifier. More...
struct  SpecificIdentifier
 Property for a specific identifier, linked to by a particular Declaration. More...
struct  InstanceIdentifier
 Identifier for any Instance (variable or object or function) More...
struct  SpecificInstanceIdentifier
 Identifier for a specific Instance, linked to by a particular Declaration. More...
struct  TypeIdentifier
 Identifier for any user defined type. More...
struct  SpecificTypeIdentifier
 Identifier for a specific user defined type, linked to by a particular Declaration. More...
struct  Virtuality
 Property for a member function that may or may not be virtual. More...
struct  Virtual
 Property for a virtual member funciton. More...
struct  NonVirtual
 Property for a non-virtual member funciton. More...
struct  AccessSpec
 Property for any access spec. More...
struct  Public
 Property for public access. More...
struct  Private
 Property for private access. More...
struct  Protected
 Property for protected access. More...
struct  Constancy
 Property that indicates whether some Instance is constant. More...
struct  Const
 Property indicating the Instance is constant. More...
struct  NonConst
 Property indicating the Instance is not constant. More...
struct  Instance
 Declaration of a variable, object or function. More...
struct  Static
 A variable or function with one instance across the entire program. More...
struct  Field
 A non-static member Instance (function or variable) More...
struct  LocalVariable
 Any variable local to a Compound-statement. Cannot be a function. More...
struct  Automatic
 A local variable with automatic allocation. More...
struct  Temporary
 A local temp variable not preserved across function calls. More...
struct  Base
 Node for a base class within a class declaration, specifies another class from which to inherit. More...
struct  LabelIdentifier
 Identifier for a label that can be any label. More...
struct  SpecificLabelIdentifier
 Identifier for a specific label that has been declared somewhere. More...
struct  Label
 Declaration of a label for switch, goto etc. More...
struct  Callable
 Anything that can be called. More...
struct  CallableParams
 Anything that can be called and has parameters. More...
struct  CallableParamsReturn
 Anything that can be called and has parameters and return value. More...
struct  Subroutine
 Subroutine like in Basic, no params or return. More...
struct  Procedure
 A procedure like in pascal etc, params but no return value. More...
struct  Function
 A function like in C, Pascal; params and a single return value of the specified type. More...
struct  Constructor
 A C++ constructor. The init list is just zero or more calls to constructors in the body. More...
struct  Destructor
 A C++ destructor. More...
struct  Array
 This is the type of an array that contains the specified number of elements of the specified type. More...
struct  Indirection
 Intermediate for indirect access to some type as specified. More...
struct  Pointer
 A C/C++ pointer. More...
struct  Reference
 A C++ reference. More...
struct  Void
 The pseudo-type void, disallowed in some circumstances as per C. More...
struct  Boolean
 Boolean type. More...
struct  Numeric
 Intermediate for any type that represents a number that you can eg add and subtract. More...
struct  Integral
 Type represents an integral (singed or unsigned) type. More...
struct  Signed
 Type of a signed integer number (2's complement). More...
struct  Unsigned
 Type of an unsigned integer number. More...
struct  FloatSemantics
 Property for the details of any floating point behaviour. More...
struct  SpecificFloatSemantics
 Property for the details of a specific floating point behaviour. More...
struct  Floating
 Type of a floating point number. More...
struct  Labeley
struct  UserType
 Intermediate declaration of a user defined type of any kind (struct, typedef etc). More...
struct  Typedef
 Represents a typedef. More...
struct  Record
 Intermediate for declaration of a struct, class, union or enum. More...
struct  Union
 A union, as per Record. More...
struct  Enum
 An Enum, as per record. More...
struct  InheritanceRecord
 A record that can inherit from other records and be inherited from. More...
struct  Struct
 Struct as per InheritanceRecord. More...
struct  Class
 Class as per InheritanceRecord. More...
struct  Operator
 An operator. More...
struct  NonCommutativeOperator
 An operator with operands whose order is defined. More...
struct  CommutativeOperator
 An operator with operands whose order does not matter. More...
struct  Unop
 An operator with a single operand. More...
struct  Binop
 An operator with two operands. More...
struct  Ternop
 An operator with three operands. More...
struct  CommutativeBinop
 An operator with two interchangable operands. More...
struct  AssignmentOperator
 An operator with two operands, that writes its result back to the first operand. More...
struct  Globality
 Property indicating whether a New/Delete is global. More...
struct  Global
 Property indicating ::new/::delete was used. More...
struct  NonGlobal
 Property indicating just new/delete, no :: was used. More...
struct  DeleteArrayness
 Property indicating whether a delete should delete an array. More...
struct  DeleteArray
 Property indicating delete[] was used. More...
struct  DeleteNonArray
 Property indicating delete, no []. More...
struct  New
 Node for the C++ new operator. More...
struct  Delete
 Node for C++ delete operator. More...
struct  Lookup
 Node for accessing an element in a record as in base.member. More...
struct  Cast
 Node for a c-style cast. More...
struct  MapOperand
 Associates an Expression with an InstanceIdentifier. More...
struct  MapOperator
 An operator with operands whose order is established by mapping. More...
struct  Call
 A function call to specified function passing in specified arguments. More...
struct  MakeRecord
 Initialiser for a record. More...
struct  TypeOperator
 Operator that operates on data types as parameters. More...
struct  SizeOf
 sizeof() a type More...
struct  AlignOf
 alignof() a type More...
struct  SequentialScope
 A sequence of statements in a scope that shall execute in sequence. More...
struct  Compound
 Declarations and Statements inside {} or begin/end. More...
struct  CompoundExpression
 GCC extension for compound statements that return a value. More...
struct  Return
 The return statement of a function. More...
struct  Goto
 A goto statement. More...
struct  If
 If statement. More...
struct  Breakable
 Designate a statement that may be broken out of. More...
struct  Loop
 Any loop. More...
struct  While
 While loop. More...
struct  Do
 Do loop (first iteration always runs) More...
struct  For
 C-style for loop. More...
struct  Switch
 Switch statement. More...
struct  SwitchTarget
 Intermediate for labels in a switch statement. More...
struct  RangeCase
 Case label, supporting range extension in case useful for optimisation. More...
struct  Case
 Case label. More...
struct  Default
 Default label in a switch statement. More...
struct  Continue
 Continue (to innermost Loop) More...
struct  Break
 Break (from innermost Breakable) More...
struct  Nop
 Do nothing; these get optimised out where possible. More...

Functions

 PREFIX (plusplus,"++", PreIncrement, AssignmentOperator, ARITHMETIC) POSTFIX(plusplus
ARITHMETIC PREFIX (minusminus,"--", PreDecrement, AssignmentOperator, ARITHMETIC) POSTFIX(minusminus
ARITHMETIC ARITHMETIC OTHER (0,"", Multiplexor, Ternop, SPECIAL) OTHER(0
ARITHMETIC ARITHMETIC SPECIAL OTHER (0,"", MakeArray, NonCommutativeOperator, SPECIAL) OTHER(0

Variables

 PostIncrement
 AssignmentOperator
ARITHMETIC PostDecrement
ARITHMETIC ARITHMETIC Subscript
ARITHMETIC ARITHMETIC Binop
ARITHMETIC ARITHMETIC SPECIAL This
ARITHMETIC ARITHMETIC SPECIAL Operator

Detailed Description

CPPTree namespace contains node definitions that represent elements of the C++ language.


Function Documentation

ARITHMETIC ARITHMETIC CPPTree::OTHER ( ,
""  ,
Multiplexor  ,
Ternop  ,
SPECIAL   
)
ARITHMETIC ARITHMETIC SPECIAL CPPTree::OTHER ( ,
""  ,
MakeArray  ,
NonCommutativeOperator  ,
SPECIAL   
)
CPPTree::PREFIX ( plusplus  ,
"++"  ,
PreIncrement  ,
AssignmentOperator  ,
ARITHMETIC   
)
ARITHMETIC CPPTree::PREFIX ( minusminus  ,
"--"  ,
PreDecrement  ,
AssignmentOperator  ,
ARITHMETIC   
)

Variable Documentation

Definition at line 67 of file cpptree.hpp.

Definition at line 40 of file cpptree.hpp.

Definition at line 35 of file cpptree.hpp.

Definition at line 67 of file cpptree.hpp.