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