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)));
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();
}

View File

@@ -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";