added string test and it works

This commit is contained in:
Samuel D. Crow
2021-03-29 14:23:50 -05:00
parent b0072dffa4
commit 0fe8d74bc5
2 changed files with 17 additions and 4 deletions

View File

@@ -283,15 +283,28 @@ void testInt()
v->assignment(new expression(new constOp("2", T_INT))); v->assignment(new expression(new constOp("2", T_INT)));
print=new printSegment(new expression(v)); print=new printSegment(new expression(v));
print->generate(); 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 */ /* open files and compile */
void compile() void compile()
{ {
setUp(); setUp();
testInt(); testInt();
testString();
label::generateEnd();
shutDown(); shutDown();
} }

View File

@@ -22,7 +22,7 @@ void printSegment::generate()
switch (op->getSimpleVarType()) switch (op->getSimpleVarType())
{ {
case T_STRINGVAR: case T_STRINGVAR:
output_cpp << "puts(" << op->boxName() << ");\n"; output_cpp << "puts(" << op->boxName() << ".c_str());\n";
break; break;
case T_INTVAR: case T_INTVAR:
output_cpp << "printf(\"%d\", " << op->boxName() << ");\n"; output_cpp << "printf(\"%d\", " << op->boxName() << ");\n";