add string_node as wrapper, tweak generated code
separate generate_code and compile
clean StringNode
add nl helper for printing the lines
make all tests pass