diff --git a/tester.cpp b/tester.cpp index a996a98..7df1c76 100644 --- a/tester.cpp +++ b/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(); } diff --git a/yabIO.cpp b/yabIO.cpp index 76ba723..438c015 100644 --- a/yabIO.cpp +++ b/yabIO.cpp @@ -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";