Source Documentation¶
Lab2¶
-
class
Parser
¶ - #include <lab2.hh>
-
class
ParserEndOfFile
¶ - #include <lab2.hh>
-
class
ParserError
¶ - #include <lab2.hh>
-
class
Scanner
¶ - #include <lex.hh>
-
class
ScannerError
¶ - #include <lex.hh>
-
class
Token
¶ - #include <lex.hh>
-
class
Trace
¶ - #include <lab2.hh>
Private Members
-
char *
name
¶
Private Static Attributes
-
static int
indent
= 0¶
-
char *
-
namespace
std
¶
-
file
lab2.cc
- #include “lab2.hh”
-
file
lab2.hh
- #include <iostream>#include “lex.hh”
-
file
lex.cc
- #include “lex.hh”#include <stdlib.h>#include <string.h>#include <stdio.h>#include <ctype.h>
Functions
-
ostream &
operator<<
(ostream &s, ScannerError &e)¶
Variables
-
static char *
kTokenTypeNames
[] = {"uninitialized", "number", "identifier", "plus", "minus", "times", "divide", "left paren", "right paren", "assignment", "end of file", "end of line", "power"}¶
-
ostream &
-
file
lex.hh
- #include <iostream>
Enums
-
enum
TokenType
¶ Values:
-
enumerator
kUninitialized
¶
-
enumerator
kNumber
¶
-
enumerator
kIdentifier
¶
-
enumerator
kPlus
¶
-
enumerator
kMinus
¶
-
enumerator
kTimes
¶
-
enumerator
kDivide
¶
-
enumerator
kLeftParen
¶
-
enumerator
kRightParen
¶
-
enumerator
kAssign
¶
-
enumerator
kEndMark
¶
-
enumerator
kEndOfLine
¶
-
enumerator
kPower
¶
-
enumerator
Variables
-
const int
kMaxTokenLength
= 1024¶
-
enum
-
file
main.cc
- #include <iostream>#include <stdlib.h>#include “lab2.hh”#include “lex.hh”
Functions
-
int
main
(void)¶
-
int
-
dir
/home/marsj/dev/tddb44-webpage/tddd55-lab/lab2
Lab3-4¶
-
class
And
: public BinaryCondition¶ - #include <ast.hh>
Public Functions
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
virtual VariableInformation *
-
class
ArrayReference
: public LeftValue¶ - #include <ast.hh>
Public Functions
-
inline
ArrayReference
(VariableInformation *i, Expression *x)¶
-
virtual void
GenerateAssignment
(QuadsList &q, VariableInformation *val)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Assignment
: public Statement¶ - #include <ast.hh>
Public Functions
-
inline
Assignment
(LeftValue *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
ASTNode
¶ - #include <ast.hh>
Subclassed by Condition, ElseIfList, Expression, ExpressionList, Statement, StatementList
Public Functions
-
virtual VariableInformation *
GenerateCode
(QuadsList &q) = 0¶
-
virtual VariableInformation *
GenerateCodeAndJump
(QuadsList &q, long label)¶
Protected Functions
-
void
indent
(ostream &o)¶
-
void
indentMore
(void)¶
-
void
indentLess
(void)¶
-
void
beginChild
(ostream &o)¶
-
void
endChild
(ostream &o)¶
-
void
lastChild
(ostream &o)¶
-
virtual void
print
(ostream &o)¶
-
virtual void
xprint
(ostream &o, char *cls)¶
Friends
-
friend friend ostream & operator<< (ostream &, ASTNode &)
-
friend friend ostream & operator<< (ostream &, ASTNode *)
-
virtual VariableInformation *
-
class
BinaryCondition
: public Condition¶ - #include <ast.hh>
Public Functions
-
virtual VariableInformation *
GenerateCode
(QuadsList &q) = 0¶
-
virtual VariableInformation *
-
class
BinaryOperation
: public Expression¶ - #include <ast.hh>
Subclassed by Divide, Minus, Plus, Power, Times
Public Functions
-
inline
BinaryOperation
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q) = 0¶
-
inline
-
class
BinaryRelation
: public Condition¶ - #include <ast.hh>
Subclassed by Equal, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual, NotEqual
Public Functions
-
inline
BinaryRelation
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q) = 0¶
-
inline
-
class
BooleanConstant
: public Condition¶ - #include <ast.hh>
Public Functions
-
inline
BooleanConstant
(int v)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
bool
value
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
CallStatement
: public Statement¶ - #include <ast.hh>
Public Functions
-
inline
CallStatement
(FunctionCall *c)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
FunctionCall *
call
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Condition
: public ASTNode¶ - #include <ast.hh>
Subclassed by BinaryCondition, BinaryRelation, BooleanConstant, Not
Public Functions
-
virtual VariableInformation *
GenerateCode
(QuadsList &q) = 0¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
virtual VariableInformation *
-
class
Divide
: public BinaryOperation¶ - #include <ast.hh>
Public Functions
-
inline
Divide
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
ElseIfList
: public ASTNode¶ - #include <ast.hh>
Public Functions
-
inline
ElseIfList
(ElseIfList *p, Condition *c, StatementList *b)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
-
virtual VariableInformation *
GenerateCodeAndJump
(QuadsList &q, long lbl)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Equal
: public BinaryRelation¶ - #include <ast.hh>
Public Functions
-
inline
Equal
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
error
¶ - #include <string.hh>
-
class
Expression
: public ASTNode¶ - #include <ast.hh>
Subclassed by BinaryOperation, FunctionCall, IntegerConstant, IntegerToReal, LeftValue, RealConstant, TruncateReal, UnaryMinus
Public Functions
-
inline
Expression
(TypeInformation *t)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q) = 0¶
Public Members
-
TypeInformation *
valueType
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
ExpressionList
: public ASTNode¶ - #include <ast.hh>
Public Functions
-
inline
ExpressionList
(ExpressionList *pe, Expression *e)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
-
virtual void
GenerateParameterList
(QuadsList &q, VariableInformation *firstParam)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
FunctionCall
: public Expression¶ - #include <ast.hh>
Public Functions
-
inline
FunctionCall
(FunctionInformation *f, ExpressionList *a)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
FunctionInformation
: public SymbolInformation¶ - #include <symtab.hh>
Public Functions
-
inline virtual FunctionInformation *
SymbolAsFunction
(void)¶
-
void
SetParent
(FunctionInformation*)¶
-
void
SetReturnType
(TypeInformation*)¶
-
void
SetBody
(StatementList*)¶
-
FunctionInformation *
GetParent
(void)¶
-
TypeInformation *
GetReturnType
(void)¶
-
VariableInformation *
GetLastParam
(void)¶
-
StatementList *
GetBody
(void)¶
-
FunctionInformation *
AddFunction
(const ::string&, FunctionInformation*)¶
-
VariableInformation *
AddParameter
(const ::string&, TypeInformation*)¶
-
VariableInformation *
AddVariable
(const ::string&, TypeInformation*)¶
-
SymbolInformation *
AddSymbol
(SymbolInformation*)¶
-
TypeInformation *
AddArrayType
(TypeInformation*, int)¶
-
VariableInformation *
TemporaryVariable
(TypeInformation *type)¶
-
void
GenerateCode
(void)¶
-
SymbolInformation *
LookupIdentifier
(const ::string&)¶
Protected Functions
-
virtual ostream &
print
(ostream&)¶
Protected Attributes
-
long
temporaryCount
¶
Private Members
-
FunctionInformation *
parent
¶
-
TypeInformation *
returnType
¶
-
VariableInformation *
lastParam
¶
-
VariableInformation *
lastLocal
¶
-
SymbolTable
symbolTable
¶
-
StatementList *
body
¶
Friends
- friend class SymbolTable
-
inline virtual FunctionInformation *
-
class
GreaterThan
: public BinaryRelation¶ - #include <ast.hh>
Public Functions
-
inline
GreaterThan
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
GreaterThanOrEqual
: public BinaryRelation¶ - #include <ast.hh>
Public Functions
-
inline
GreaterThanOrEqual
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Identifier
: public LeftValue¶ - #include <ast.hh>
Public Functions
-
inline
Identifier
(VariableInformation *i)¶
-
virtual void
GenerateAssignment
(QuadsList &q, VariableInformation *val)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
IfStatement
: public Statement¶ - #include <ast.hh>
Public Functions
-
inline
IfStatement
(Condition *c, StatementList *ts, ElseIfList *eif, StatementList *es)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
StatementList *
thenStatements
¶
-
ElseIfList *
elseIfList
¶
-
StatementList *
elseStatements
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
IntegerConstant
: public Expression¶ - #include <ast.hh>
Public Functions
-
inline
IntegerConstant
(long int v)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
long int
value
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
IntegerToReal
: public Expression¶ - #include <ast.hh>
Public Functions
-
inline
IntegerToReal
(Expression *e)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
Expression *
value
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
LeftValue
: public Expression¶ - #include <ast.hh>
Subclassed by ArrayReference, Identifier
Public Functions
-
inline
LeftValue
(TypeInformation *t)¶
-
virtual void
GenerateAssignment
(QuadsList &q, VariableInformation *val) = 0¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q) = 0¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
LessThan
: public BinaryRelation¶ - #include <ast.hh>
Public Functions
-
inline
LessThan
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
LessThanOrEqual
: public BinaryRelation¶ - #include <ast.hh>
Public Functions
-
inline
LessThanOrEqual
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Minus
: public BinaryOperation¶ - #include <ast.hh>
Public Functions
-
inline
Minus
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
NotEqual
: public BinaryRelation¶ - #include <ast.hh>
Public Functions
-
inline
NotEqual
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Or
: public BinaryCondition¶ - #include <ast.hh>
Public Functions
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
virtual VariableInformation *
-
class
Plus
: public BinaryOperation¶ - #include <ast.hh>
Public Functions
-
inline
Plus
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Power
: public BinaryOperation¶ - #include <ast.hh>
Public Functions
-
inline
Power
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Quad
¶ - #include <codegen.hh>
Public Functions
-
void
print_c
(ostream &o)¶
-
inline
Quad
(tQuadType o, SymbolInformation *a, SymbolInformation *b, SymbolInformation *c)¶
-
inline
Quad
(tQuadType o, long a, SymbolInformation *b, SymbolInformation *c)¶
-
inline
Quad
(tQuadType o, SymbolInformation *a, long b, SymbolInformation *c)¶
-
inline
Quad
(tQuadType o, double a, SymbolInformation *b, SymbolInformation *c)¶
Public Members
-
SymbolInformation *
sym1
¶
-
SymbolInformation *
sym2
¶
-
SymbolInformation *
sym3
¶
-
long
int1
¶
-
long
int2
¶
-
long
int3
¶
-
double
real1
¶
-
double
real2
¶
-
double
real3
¶
Private Functions
-
ostream &
print
(ostream&)¶
Friends
-
friend friend ostream & operator<< (ostream &, Quad *)
-
friend friend ostream & operator<< (ostream &, Quad &)
-
void
-
class
QuadsList
¶ - #include <codegen.hh>
Private Functions
-
ostream &
print
(ostream&)¶
Private Static Attributes
-
static long
labelCounter
¶
Friends
- friend class QuadsListIterator
-
friend friend ostream & operator<< (ostream &, QuadsList *)
-
friend friend ostream & operator<< (ostream &, QuadsList &)
-
ostream &
-
class
QuadsListIterator
¶ - #include <codegen.hh>
Private Members
-
QuadsList::QuadsListElement *
elem
¶
-
QuadsList::QuadsListElement *
-
class
RealConstant
: public Expression¶ - #include <ast.hh>
Public Functions
-
inline
RealConstant
(double v)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
double
value
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
ReturnStatement
: public Statement¶ - #include <ast.hh>
Public Functions
-
inline
ReturnStatement
()¶
-
inline
ReturnStatement
(Expression *e)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
Expression *
value
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
Statement
: public ASTNode¶ - #include <ast.hh>
Subclassed by Assignment, CallStatement, IfStatement, ReturnStatement, WhileStatement
Public Functions
-
virtual VariableInformation *
GenerateCode
(QuadsList &q) = 0¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
virtual VariableInformation *
-
class
StatementList
: public ASTNode¶ - #include <ast.hh>
Public Functions
-
inline
StatementList
(StatementList *l, Statement *s)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
string
¶ - #include <string.hh>
Public Functions
-
string
()¶
-
string
(char*)¶
-
string
(char, int)¶
-
string
(int)¶
-
~string
()¶
-
void
upcase
(void)¶
-
void
downcase
(void)¶
-
unsigned long
hash
(void) const¶
-
int
length
(void) const¶
-
char &
operator[]
(int)¶
-
const char
operator[]
(const int) const¶
Private Functions
-
void
ensure_size
(int)¶
Friends
-
friend friend string & operator+ (const string &, const string &)
-
friend friend string & operator+ (const string &, const char)
-
friend friend string & operator+ (const string &, const int)
-
friend friend int operator== (const string &, const string &)
-
friend friend int operator!= (const string &, const string &)
-
friend friend int operator< (const string &, const string &)
-
friend friend int operator> (const string &, const string &)
-
friend friend int operator>= (const string &, const string &)
-
friend friend int operator<= (const string &, const string &)
-
friend friend ostream & operator<< (ostream &, const string &)
-
friend friend ostream & operator<< (ostream &, const string *)
-
-
class
SymbolInformation
¶ - #include <symtab.hh>
Subclassed by FunctionInformation, TypeInformation, VariableInformation
Public Types
Public Functions
-
inline
SymbolInformation
(SymbolInformationType t, const ::string &i)¶
-
inline virtual
~SymbolInformation
()¶
-
inline virtual FunctionInformation *
SymbolAsFunction
(void)¶
-
inline virtual VariableInformation *
SymbolAsVariable
(void)¶
-
inline virtual TypeInformation *
SymbolAsType
(void)¶
Public Static Attributes
-
static tFormatType
outputFormat
= SymbolInformation::kFullFormat¶
Protected Functions
-
virtual ostream &
print
(ostream&)¶
Friends
- friend class SymbolTable
-
friend friend ostream & LongSymbols (ostream &)
-
friend friend ostream & SummarySymbols (ostream &)
-
friend friend ostream & ShortSymbols (ostream &)
-
friend friend ostream & operator<< (ostream &, SymbolInformation &)
-
friend friend ostream & operator<< (ostream &, SymbolInformation *)
-
inline
-
class
SymbolTable
¶ - #include <symtab.hh>
Public Functions
-
SymbolTable
()¶
-
void
AddSymbol
(SymbolInformation*)¶
-
SymbolInformation *
LookupSymbol
(const ::string&)¶
Public Static Attributes
-
static int
nextTemporary
¶
Protected Functions
-
virtual ostream &
print
(ostream&)¶
Friends
-
friend friend ostream & operator<< (ostream &, SymbolTable &)
-
friend friend ostream & operator<< (ostream &, SymbolTable *)
-
-
class
SymbolTableElement
¶ - #include <symtab.hh>
-
class
Times
: public BinaryOperation¶ - #include <ast.hh>
Public Functions
-
inline
Times
(Expression *l, Expression *r)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
TruncateReal
: public Expression¶ - #include <ast.hh>
Public Functions
-
inline
TruncateReal
(Expression *e)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
Expression *
value
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
TypeInformation
: public SymbolInformation¶ - #include <symtab.hh>
Public Functions
-
inline virtual TypeInformation *
SymbolAsType
(void)¶
Protected Functions
-
virtual ostream &
print
(ostream&)¶
Friends
- friend class SymbolTable
- friend class FunctionInformation
- friend class VariableInformation
-
inline virtual TypeInformation *
-
class
UnaryMinus
: public Expression¶ - #include <ast.hh>
Public Functions
-
inline
UnaryMinus
(Expression *e)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Public Members
-
Expression *
right
¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
class
VariableInformation
: public SymbolInformation¶ - #include <symtab.hh>
Public Functions
-
inline virtual VariableInformation *
SymbolAsVariable
(void)¶
-
inline
VariableInformation
(const ::string &i, TypeInformation *t)¶
Protected Functions
-
virtual ostream &
print
(ostream&)¶
-
inline virtual VariableInformation *
-
class
WhileStatement
: public Statement¶ - #include <ast.hh>
Public Functions
-
inline
WhileStatement
(Condition *c, StatementList *b)¶
-
virtual VariableInformation *
GenerateCode
(QuadsList &q)¶
Protected Functions
-
virtual void
print
(ostream &o)¶
-
inline
-
namespace
std
-
file
ast.cc
- #include “ast.hh”
-
file
ast.hh
- #include “symtab.hh”#include “codegen.hh”
Enums
-
enum
ASTNodeType
¶ Values:
-
enum
-
file
codegen.cc
- #include <iostream>#include <iomanip>#include <stdlib.h>#include “ast.hh”#include “symtab.hh”#include “codegen.hh”
Defines
-
USEQ
¶
Functions
-
static VariableInformation *
BinaryGenerateCode
(QuadsList &q, tQuadType realop, tQuadType intop, ASTNode *left, ASTNode *right, ASTNode *node, TypeInformation *type = NULL)¶
-
-
file
codegen.hh
Enums
-
enum
tQuadType
¶ Values:
-
enumerator
iconst
¶
-
enumerator
rconst
¶
-
enumerator
iaddr
¶
-
enumerator
itor
¶
-
enumerator
rtrunc
¶
-
enumerator
iadd
¶
-
enumerator
isub
¶
-
enumerator
imul
¶
-
enumerator
idiv
¶
-
enumerator
ipow
¶
-
enumerator
radd
¶
-
enumerator
rsub
¶
-
enumerator
rmul
¶
-
enumerator
rdiv
¶
-
enumerator
rpow
¶
-
enumerator
igt
¶
-
enumerator
ilt
¶
-
enumerator
ieq
¶
-
enumerator
rgt
¶
-
enumerator
rlt
¶
-
enumerator
req
¶
-
enumerator
iand
¶
-
enumerator
ior
¶
-
enumerator
inot
¶
-
enumerator
jtrue
¶
-
enumerator
jfalse
¶
-
enumerator
jump
¶
-
enumerator
clabel
¶
-
enumerator
istore
¶
-
enumerator
iload
¶
-
enumerator
rstore
¶
-
enumerator
rload
¶
-
enumerator
creturn
¶
-
enumerator
param
¶
-
enumerator
call
¶
-
enumerator
iassign
¶
-
enumerator
rassign
¶
-
enumerator
aassign
¶
-
enumerator
hcf
¶
-
enumerator
nop
¶
-
enumerator
-
enum
-
file
main.cc
- #include <stdlib.h>#include <stdio.h>#include <iostream>#include “ast.hh”#include “parser.hh”#include “symtab.hh”#include <unistd.h>
-
file
stl.h
- #include <math.h>#include <stdio.h>
-
file
string.cc
- #include <stdlib.h>#include <malloc.h>#include <cstring>#include <ctype.h>#include <strstream>#include “string.hh”
Defines
-
MAX
(a, b)¶
Functions
-
-
file
string.hh
- #include <iostream>
-
file
symtab.cc
- #include <stdlib.h>#include “symtab.hh”#include “ast.hh”#include “string.hh”
Functions
-
ostream &
SummarySymbols
(ostream &o)¶
-
ostream &
operator<<
(ostream &o, SymbolTable &t)¶
-
ostream &
operator<<
(ostream &o, SymbolTable *t)¶
-
ostream &
operator<<
(ostream &o, SymbolInformation &i)¶
-
ostream &
operator<<
(ostream &o, SymbolInformation *i)¶
-
ostream &
ShortSymbols
(ostream &o)¶
-
ostream &
LongSymbols
(ostream &o)¶
-
ostream &
CFormat
(ostream &o)¶
Variables
-
FunctionInformation *
currentFunction
¶
-
TypeInformation *
kIntegerType
¶
-
TypeInformation *
kRealType
¶
-
FunctionInformation *
kFPrintFunction
¶
-
FunctionInformation *
kIPrintFunction
¶
-
FunctionInformation *
kFReadFunction
¶
-
FunctionInformation *
kIReadFunction
¶
-
ostream &
-
file
symtab.hh
- #include <iostream>#include “string.hh”
Enums
Functions
-
ostream &
ShortSymbols
(ostream &o)
-
ostream &
LongSymbols
(ostream &o)
-
ostream &
CFormat
(ostream &o)
Variables
-
FunctionInformation *
currentFunction
-
FunctionInformation *
kFPrintFunction
-
FunctionInformation *
kIPrintFunction
-
FunctionInformation *
kFReadFunction
-
FunctionInformation *
kIReadFunction
-
TypeInformation *
kRealType
-
TypeInformation *
kIntegerType
-
ostream &
-
file
README.md
-
page
md__home_marsj_dev_tddb44-webpage_tddd55-lab_lab3-4_test_README
expression_test.prog¶
This program simple executes and print simple expressions
factorial_test.prog¶
This program checks if functions and if/else statements are handled correctly. Checks the factorial function
fibonacci_test.prog¶
Similar to the factorial test, also tests recursions
sort_test.prog¶
This program simple executes selection sort on an unsorted array
*output_ref¶
These are references files specifing the expected output from the programs above. It is used by codegen-test.sh
How to test?¶
To test a program simply execute codegen-test.sh in the parent directory.
bash codegen-test.sh
How do I compile my own program?¶
Invoke the compiler. Pipe the output to a file with the suffix.c
compiler -c > <name>.c
Do not use the -d flag when doing this.
Then compile this file with
gcc -lm <name.c>
-
dir
/home/marsj/dev/tddb44-webpage/tddd55-lab/lab3-4
-
dir
/home/marsj/dev/tddb44-webpage/tddd55-lab/lab3-4/test