added string test and it works
This commit is contained in:
19
tester.cpp
19
tester.cpp
@@ -283,15 +283,28 @@ void testInt()
|
||||
v->assignment(new expression(new constOp("2", T_INT)));
|
||||
print=new printSegment(new expression(v));
|
||||
print->generate();
|
||||
label::generateEnd();
|
||||
delete print;
|
||||
}
|
||||
|
||||
void testString()
|
||||
{
|
||||
string name=string("name1");
|
||||
v=variableType::getOrCreateVar(name, T_STRINGVAR);
|
||||
v->assignment(new expression(new constOp("Hello", T_STRING)));
|
||||
print=new printSegment(new expression(v), S_SEMICOLON);
|
||||
print->generate();
|
||||
delete print;
|
||||
print=new printSegment(new expression(new constOp(" world!", T_STRING)));
|
||||
print->generate();
|
||||
delete print;
|
||||
}
|
||||
|
||||
/* open files and compile */
|
||||
void compile()
|
||||
{
|
||||
setUp();
|
||||
|
||||
testInt();
|
||||
|
||||
testString();
|
||||
label::generateEnd();
|
||||
shutDown();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ void printSegment::generate()
|
||||
switch (op->getSimpleVarType())
|
||||
{
|
||||
case T_STRINGVAR:
|
||||
output_cpp << "puts(" << op->boxName() << ");\n";
|
||||
output_cpp << "puts(" << op->boxName() << ".c_str());\n";
|
||||
break;
|
||||
case T_INTVAR:
|
||||
output_cpp << "printf(\"%d\", " << op->boxName() << ");\n";
|
||||
|
||||
Reference in New Issue
Block a user