TDDD55 Compilers and Interpreters
HT2019
Contents:
Lab 1: Scanner Specification
Lab 2: Attribute Grammars and Top-Down Parsing
Lab 3: Parser Generators
Lab 4 : Intermediate Code Generation
The Skeleton
The Language
Changelog
Source Documentation
TDDD55 Compilers and Interpreters
»
Index
Index
A
|
B
|
C
|
D
|
E
|
F
|
G
|
I
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
Y
A
And (C++ class)
And::And (C++ function)
And::GenerateCode (C++ function)
And::print (C++ function)
array_integer (C macro)
array_real (C macro)
ArrayReference (C++ class)
ArrayReference::ArrayReference (C++ function)
ArrayReference::GenerateAssignment (C++ function)
ArrayReference::GenerateCode (C++ function)
ArrayReference::id (C++ member)
ArrayReference::index (C++ member)
ArrayReference::print (C++ function)
Assignment (C++ class)
Assignment::Assignment (C++ function)
Assignment::GenerateCode (C++ function)
Assignment::print (C++ function)
Assignment::target (C++ member)
Assignment::value (C++ member)
ASTNode (C++ class)
ASTNode::beginChild (C++ function)
ASTNode::branches (C++ member)
ASTNode::endChild (C++ function)
ASTNode::GenerateCode (C++ function)
ASTNode::GenerateCodeAndJump (C++ function)
ASTNode::indent (C++ function)
ASTNode::indentLess (C++ function)
ASTNode::indentLevel (C++ member)
ASTNode::indentMore (C++ function)
ASTNode::lastChild (C++ function)
ASTNode::print (C++ function)
ASTNode::xprint (C++ function)
ASTNodeType (C++ enum)
B
BinaryCondition (C++ class)
BinaryCondition::BinaryCondition (C++ function)
BinaryCondition::GenerateCode (C++ function)
BinaryCondition::left (C++ member)
BinaryCondition::print (C++ function)
BinaryCondition::right (C++ member)
BinaryCondition::xprint (C++ function)
BinaryGenerateCode (C++ function)
BinaryOperation (C++ class)
BinaryOperation::BinaryOperation (C++ function)
BinaryOperation::GenerateCode (C++ function)
BinaryOperation::left (C++ member)
BinaryOperation::print (C++ function)
BinaryOperation::right (C++ member)
BinaryOperation::xprint (C++ function)
BinaryRelation (C++ class)
BinaryRelation::BinaryRelation (C++ function)
BinaryRelation::GenerateCode (C++ function)
BinaryRelation::left (C++ member)
BinaryRelation::print (C++ function)
BinaryRelation::right (C++ member)
BinaryRelation::xprint (C++ function)
BooleanConstant (C++ class)
BooleanConstant::BooleanConstant (C++ function)
BooleanConstant::GenerateCode (C++ function)
BooleanConstant::print (C++ function)
BooleanConstant::value (C++ member)
C
CallStatement (C++ class)
CallStatement::call (C++ member)
CallStatement::CallStatement (C++ function)
CallStatement::GenerateCode (C++ function)
CallStatement::print (C++ function)
CFormat (C++ function)
,
[1]
Condition (C++ class)
Condition::GenerateCode (C++ function)
Condition::print (C++ function)
conditional (C macro)
currentFunction (C++ member)
,
[1]
D
Divide (C++ class)
Divide::Divide (C++ function)
Divide::GenerateCode (C++ function)
Divide::print (C++ function)
E
ElseIfList (C++ class)
ElseIfList::body (C++ member)
ElseIfList::condition (C++ member)
ElseIfList::ElseIfList (C++ function)
ElseIfList::GenerateCode (C++ function)
ElseIfList::GenerateCodeAndJump (C++ function)
ElseIfList::preceding (C++ member)
ElseIfList::print (C++ function)
Equal (C++ class)
Equal::Equal (C++ function)
Equal::GenerateCode (C++ function)
Equal::print (C++ function)
errorCount (C++ member)
Expression (C++ class)
Expression::Expression (C++ function)
Expression::GenerateCode (C++ function)
Expression::print (C++ function)
Expression::valueType (C++ member)
ExpressionList (C++ class)
ExpressionList::expression (C++ member)
ExpressionList::ExpressionList (C++ function)
ExpressionList::GenerateCode (C++ function)
ExpressionList::GenerateParameterList (C++ function)
ExpressionList::precedingExpressions (C++ member)
ExpressionList::print (C++ function)
F
FunctionCall (C++ class)
FunctionCall::arguments (C++ member)
FunctionCall::function (C++ member)
FunctionCall::FunctionCall (C++ function)
FunctionCall::GenerateCode (C++ function)
FunctionCall::print (C++ function)
FunctionInformation (C++ class)
FunctionInformation::AddArrayType (C++ function)
FunctionInformation::AddFunction (C++ function)
FunctionInformation::AddParameter (C++ function)
FunctionInformation::AddSymbol (C++ function)
FunctionInformation::AddVariable (C++ function)
FunctionInformation::body (C++ member)
FunctionInformation::FunctionInformation (C++ function)
FunctionInformation::GenerateCode (C++ function)
FunctionInformation::GetBody (C++ function)
FunctionInformation::GetLastParam (C++ function)
FunctionInformation::GetParent (C++ function)
FunctionInformation::GetQuads (C++ function)
FunctionInformation::GetReturnType (C++ function)
FunctionInformation::lastLocal (C++ member)
FunctionInformation::lastParam (C++ member)
FunctionInformation::LookupIdentifier (C++ function)
FunctionInformation::OkToAddSymbol (C++ function)
FunctionInformation::parent (C++ member)
FunctionInformation::print (C++ function)
FunctionInformation::quads (C++ member)
FunctionInformation::returnType (C++ member)
FunctionInformation::SetBody (C++ function)
FunctionInformation::SetParent (C++ function)
FunctionInformation::SetQuads (C++ function)
FunctionInformation::SetReturnType (C++ function)
FunctionInformation::SymbolAsFunction (C++ function)
FunctionInformation::symbolTable (C++ member)
FunctionInformation::temporaryCount (C++ member)
FunctionInformation::TemporaryVariable (C++ function)
G
getint (C++ function)
getreal (C++ function)
GreaterThan (C++ class)
GreaterThan::GenerateCode (C++ function)
GreaterThan::GreaterThan (C++ function)
GreaterThan::print (C++ function)
GreaterThanOrEqual (C++ class)
GreaterThanOrEqual::GenerateCode (C++ function)
GreaterThanOrEqual::GreaterThanOrEqual (C++ function)
GreaterThanOrEqual::print (C++ function)
I
Identifier (C++ class)
Identifier::GenerateAssignment (C++ function)
Identifier::GenerateCode (C++ function)
Identifier::id (C++ member)
Identifier::Identifier (C++ function)
Identifier::print (C++ function)
IfStatement (C++ class)
IfStatement::condition (C++ member)
IfStatement::elseIfList (C++ member)
IfStatement::elseStatements (C++ member)
IfStatement::GenerateCode (C++ function)
IfStatement::IfStatement (C++ function)
IfStatement::print (C++ function)
IfStatement::thenStatements (C++ member)
integer (C macro)
IntegerConstant (C++ class)
IntegerConstant::GenerateCode (C++ function)
IntegerConstant::IntegerConstant (C++ function)
IntegerConstant::print (C++ function)
IntegerConstant::value (C++ member)
IntegerToReal (C++ class)
IntegerToReal::GenerateCode (C++ function)
IntegerToReal::IntegerToReal (C++ function)
IntegerToReal::print (C++ function)
IntegerToReal::value (C++ member)
K
kFPrintFunction (C++ member)
,
[1]
kFReadFunction (C++ member)
,
[1]
kIntegerType (C++ member)
,
[1]
kIPrintFunction (C++ member)
,
[1]
kIReadFunction (C++ member)
,
[1]
kMaxTokenLength (C++ member)
kRealType (C++ member)
,
[1]
kTokenTypeNames (C++ member)
L
LeftValue (C++ class)
LeftValue::GenerateAssignment (C++ function)
LeftValue::GenerateCode (C++ function)
LeftValue::LeftValue (C++ function)
LeftValue::print (C++ function)
LessThan (C++ class)
LessThan::GenerateCode (C++ function)
LessThan::LessThan (C++ function)
LessThan::print (C++ function)
LessThanOrEqual (C++ class)
LessThanOrEqual::GenerateCode (C++ function)
LessThanOrEqual::LessThanOrEqual (C++ function)
LessThanOrEqual::print (C++ function)
LongSymbols (C++ function)
,
[1]
M
main (C++ function)
,
[1]
MAX (C macro)
Minus (C++ class)
Minus::GenerateCode (C++ function)
Minus::Minus (C++ function)
Minus::print (C++ function)
N
Not (C++ class)
Not::GenerateCode (C++ function)
Not::Not (C++ function)
Not::print (C++ function)
Not::right (C++ member)
NotEqual (C++ class)
NotEqual::GenerateCode (C++ function)
NotEqual::NotEqual (C++ function)
NotEqual::print (C++ function)
O
operator!= (C++ function)
operator+ (C++ function)
,
[1]
,
[2]
operator< (C++ function)
operator<< (C++ function)
,
[1]
,
[2]
,
[3]
,
[4]
,
[5]
,
[6]
,
[7]
,
[8]
,
[9]
,
[10]
,
[11]
,
[12]
,
[13]
,
[14]
,
[15]
,
[16]
,
[17]
operator<= (C++ function)
operator== (C++ function)
operator> (C++ function)
operator>= (C++ function)
optionString (C++ member)
Or (C++ class)
Or::GenerateCode (C++ function)
Or::Or (C++ function)
Or::print (C++ function)
P
Parser (C++ class)
Parser::Parse (C++ function)
Parser::Recover (C++ function)
ParserEndOfFile (C++ class)
ParserError (C++ class)
Plus (C++ class)
Plus::GenerateCode (C++ function)
Plus::Plus (C++ function)
Plus::print (C++ function)
Power (C++ class)
Power::GenerateCode (C++ function)
Power::Power (C++ function)
Power::print (C++ function)
putint (C++ function)
putline (C++ function)
putreal (C++ function)
Q
Quad (C++ class)
Quad::int1 (C++ member)
Quad::int2 (C++ member)
Quad::int3 (C++ member)
Quad::opcode (C++ member)
Quad::print (C++ function)
Quad::print_c (C++ function)
Quad::Quad (C++ function)
,
[1]
,
[2]
,
[3]
Quad::real1 (C++ member)
Quad::real2 (C++ member)
Quad::real3 (C++ member)
Quad::sym1 (C++ member)
Quad::sym2 (C++ member)
Quad::sym3 (C++ member)
QuadsList (C++ class)
QuadsList::head (C++ member)
QuadsList::labelCounter (C++ member)
QuadsList::NextLabel (C++ function)
QuadsList::operator+= (C++ function)
QuadsList::print (C++ function)
QuadsList::print_c (C++ function)
QuadsList::QuadsList (C++ function)
QuadsList::QuadsListElement (C++ class)
QuadsList::QuadsListElement::data (C++ member)
QuadsList::QuadsListElement::next (C++ member)
QuadsList::QuadsListElement::QuadsListElement (C++ function)
QuadsList::QuadsListElement::~QuadsListElement (C++ function)
QuadsList::tail (C++ member)
QuadsListIterator (C++ class)
QuadsListIterator::elem (C++ member)
QuadsListIterator::Next (C++ function)
QuadsListIterator::QuadsListIterator (C++ function)
R
real (C macro)
RealConstant (C++ class)
RealConstant::GenerateCode (C++ function)
RealConstant::print (C++ function)
RealConstant::RealConstant (C++ function)
RealConstant::value (C++ member)
ReturnStatement (C++ class)
ReturnStatement::GenerateCode (C++ function)
ReturnStatement::print (C++ function)
ReturnStatement::ReturnStatement (C++ function)
,
[1]
ReturnStatement::value (C++ member)
S
Scanner (C++ class)
Scanner::Accumulate (C++ function)
Scanner::bufferedChar (C++ member)
Scanner::GetChar (C++ function)
Scanner::haveBuffered (C++ member)
Scanner::NumberValue (C++ function)
Scanner::position (C++ member)
Scanner::PutbackChar (C++ function)
Scanner::Reset (C++ function)
Scanner::Scan (C++ function)
Scanner::Scanner (C++ function)
Scanner::state (C++ member)
Scanner::SymbolValue (C++ function)
Scanner::valueBuffer (C++ member)
ScannerError (C++ class)
ScannerError::errorCharacter (C++ member)
ScannerError::message (C++ member)
ScannerError::ScannerError (C++ function)
,
[1]
,
[2]
ScannerError::state (C++ member)
ShortSymbols (C++ function)
,
[1]
Statement (C++ class)
Statement::GenerateCode (C++ function)
Statement::print (C++ function)
StatementList (C++ class)
StatementList::GenerateCode (C++ function)
StatementList::precedingStatements (C++ member)
StatementList::print (C++ function)
StatementList::statement (C++ member)
StatementList::StatementList (C++ function)
std (C++ type)
,
[1]
string (C++ class)
string::chunk_size (C++ member)
string::downcase (C++ function)
string::ensure_size (C++ function)
string::error (C++ class)
string::hash (C++ function)
string::length (C++ function)
string::operator+= (C++ function)
,
[1]
,
[2]
string::operator= (C++ function)
,
[1]
,
[2]
string::operator[] (C++ function)
,
[1]
string::position (C++ member)
string::size (C++ member)
string::string (C++ function)
,
[1]
,
[2]
,
[3]
,
[4]
string::text (C++ member)
string::upcase (C++ function)
string::~string (C++ function)
SummarySymbols (C++ function)
SymbolInformation (C++ class)
SymbolInformation::id (C++ member)
SymbolInformation::outputFormat (C++ member)
SymbolInformation::print (C++ function)
SymbolInformation::SymbolAsFunction (C++ function)
SymbolInformation::SymbolAsType (C++ function)
SymbolInformation::SymbolAsVariable (C++ function)
SymbolInformation::SymbolInformation (C++ function)
SymbolInformation::table (C++ member)
SymbolInformation::tag (C++ member)
SymbolInformation::tFormatType (C++ enum)
SymbolInformation::tFormatType::kCFormat (C++ enumerator)
SymbolInformation::tFormatType::kFullFormat (C++ enumerator)
SymbolInformation::tFormatType::kShortFormat (C++ enumerator)
SymbolInformation::tFormatType::kSummaryFormat (C++ enumerator)
SymbolInformation::~SymbolInformation (C++ function)
SymbolInformationType (C++ enum)
SymbolInformationType::kFunctionInformation (C++ enumerator)
SymbolInformationType::kTypeInformation (C++ enumerator)
SymbolInformationType::kVariableInformation (C++ enumerator)
SymbolTable (C++ class)
SymbolTable::AddSymbol (C++ function)
SymbolTable::LookupSymbol (C++ function)
SymbolTable::nextTemporary (C++ member)
SymbolTable::print (C++ function)
SymbolTable::SymbolTable (C++ function)
SymbolTable::table (C++ member)
SymbolTable::tableSize (C++ member)
SymbolTableElement (C++ class)
SymbolTableElement::info (C++ member)
SymbolTableElement::next (C++ member)
T
Times (C++ class)
Times::GenerateCode (C++ function)
Times::print (C++ function)
Times::Times (C++ function)
Token (C++ class)
Token::Lookup (C++ function)
,
[1]
Token::numberValue (C++ member)
Token::symbolValue (C++ member)
Token::Token (C++ function)
,
[1]
,
[2]
,
[3]
Token::type (C++ member)
TokenType (C++ enum)
TokenType::kAssign (C++ enumerator)
TokenType::kDivide (C++ enumerator)
TokenType::kEndMark (C++ enumerator)
TokenType::kEndOfLine (C++ enumerator)
TokenType::kIdentifier (C++ enumerator)
TokenType::kLeftParen (C++ enumerator)
TokenType::kMinus (C++ enumerator)
TokenType::kNumber (C++ enumerator)
TokenType::kPlus (C++ enumerator)
TokenType::kPower (C++ enumerator)
TokenType::kRightParen (C++ enumerator)
TokenType::kTimes (C++ enumerator)
TokenType::kUninitialized (C++ enumerator)
tQuadType (C++ enum)
tQuadType::aassign (C++ enumerator)
tQuadType::call (C++ enumerator)
tQuadType::clabel (C++ enumerator)
tQuadType::creturn (C++ enumerator)
tQuadType::hcf (C++ enumerator)
tQuadType::iadd (C++ enumerator)
tQuadType::iaddr (C++ enumerator)
tQuadType::iand (C++ enumerator)
tQuadType::iassign (C++ enumerator)
tQuadType::iconst (C++ enumerator)
tQuadType::idiv (C++ enumerator)
tQuadType::ieq (C++ enumerator)
tQuadType::igt (C++ enumerator)
tQuadType::iload (C++ enumerator)
tQuadType::ilt (C++ enumerator)
tQuadType::imul (C++ enumerator)
tQuadType::inot (C++ enumerator)
tQuadType::ior (C++ enumerator)
tQuadType::ipow (C++ enumerator)
tQuadType::istore (C++ enumerator)
tQuadType::isub (C++ enumerator)
tQuadType::itor (C++ enumerator)
tQuadType::jfalse (C++ enumerator)
tQuadType::jtrue (C++ enumerator)
tQuadType::jump (C++ enumerator)
tQuadType::nop (C++ enumerator)
tQuadType::param (C++ enumerator)
tQuadType::radd (C++ enumerator)
tQuadType::rassign (C++ enumerator)
tQuadType::rconst (C++ enumerator)
tQuadType::rdiv (C++ enumerator)
tQuadType::req (C++ enumerator)
tQuadType::rgt (C++ enumerator)
tQuadType::rload (C++ enumerator)
tQuadType::rlt (C++ enumerator)
tQuadType::rmul (C++ enumerator)
tQuadType::rpow (C++ enumerator)
tQuadType::rstore (C++ enumerator)
tQuadType::rsub (C++ enumerator)
tQuadType::rtrunc (C++ enumerator)
Trace (C++ class)
Trace::indent (C++ member)
Trace::name (C++ member)
Trace::Trace (C++ function)
Trace::~Trace (C++ function)
TruncateReal (C++ class)
TruncateReal::GenerateCode (C++ function)
TruncateReal::print (C++ function)
TruncateReal::TruncateReal (C++ function)
TruncateReal::value (C++ member)
TypeInformation (C++ class)
TypeInformation::arrayDimensions (C++ member)
TypeInformation::elementType (C++ member)
TypeInformation::print (C++ function)
TypeInformation::size (C++ member)
TypeInformation::SymbolAsType (C++ function)
TypeInformation::TypeInformation (C++ function)
U
UnaryMinus (C++ class)
UnaryMinus::GenerateCode (C++ function)
UnaryMinus::print (C++ function)
UnaryMinus::right (C++ member)
UnaryMinus::UnaryMinus (C++ function)
Usage (C++ function)
USEQ (C macro)
V
VariableInformation (C++ class)
VariableInformation::prev (C++ member)
VariableInformation::print (C++ function)
VariableInformation::SymbolAsVariable (C++ function)
VariableInformation::type (C++ member)
VariableInformation::VariableInformation (C++ function)
,
[1]
W
warningCount (C++ member)
WhileStatement (C++ class)
WhileStatement::body (C++ member)
WhileStatement::condition (C++ member)
WhileStatement::GenerateCode (C++ function)
WhileStatement::print (C++ function)
WhileStatement::WhileStatement (C++ function)
Y
yydebug (C++ member)
yyparse (C++ function)