+ code.reg2 = 7;
+ ReadScriptInteger(**i, text + cursor);
+ cursor += sizeof(int);
+ }
+ } else if (cmd == "jmp") {
+ Script::Code &code(CreateScriptCode(Script::COMMAND_JMP, text + cursor));
+ cursor += sizeof(Script::Code);
+ code.numParams = 1;
+ ++i;
+ if (!labels.count((*i)->Identifier())) {
+ throw Error("use of undefined label " + (*i)->Identifier());
+ }
+ *reinterpret_cast<int *>(text + cursor) = labels[(*i)->Identifier()];
+ cursor += sizeof(int);
+ } else if (cmd == "jeq") {
+ Script::Code &code(CreateScriptCode(Script::COMMAND_JEQ, text + cursor));
+ cursor += sizeof(Script::Code);
+ code.numParams = 1;
+ ++i;
+ if (!labels.count((*i)->Identifier())) {
+ throw Error("use of undefined label " + (*i)->Identifier());
+ }
+ *reinterpret_cast<int *>(text + cursor) = labels[(*i)->Identifier()];
+ cursor += sizeof(int);
+ } else if (cmd == "jne") {
+ Script::Code &code(CreateScriptCode(Script::COMMAND_JNE, text + cursor));
+ cursor += sizeof(Script::Code);
+ code.numParams = 1;
+ ++i;
+ if (!labels.count((*i)->Identifier())) {
+ throw Error("use of undefined label " + (*i)->Identifier());
+ }
+ *reinterpret_cast<int *>(text + cursor) = labels[(*i)->Identifier()];
+ cursor += sizeof(int);
+ } else if (cmd == "jl") {
+ Script::Code &code(CreateScriptCode(Script::COMMAND_JL, text + cursor));
+ cursor += sizeof(Script::Code);
+ code.numParams = 1;
+ ++i;
+ if (!labels.count((*i)->Identifier())) {
+ throw Error("use of undefined label " + (*i)->Identifier());
+ }
+ *reinterpret_cast<int *>(text + cursor) = labels[(*i)->Identifier()];
+ cursor += sizeof(int);
+ } else if (cmd == "jle") {
+ Script::Code &code(CreateScriptCode(Script::COMMAND_JLE, text + cursor));
+ cursor += sizeof(Script::Code);
+ code.numParams = 1;
+ ++i;
+ if (!labels.count((*i)->Identifier())) {
+ throw Error("use of undefined label " + (*i)->Identifier());
+ }
+ *reinterpret_cast<int *>(text + cursor) = labels[(*i)->Identifier()];
+ cursor += sizeof(int);
+ } else if (cmd == "jg") {
+ Script::Code &code(CreateScriptCode(Script::COMMAND_JG, text + cursor));
+ cursor += sizeof(Script::Code);
+ code.numParams = 1;
+ ++i;
+ if (!labels.count((*i)->Identifier())) {
+ throw Error("use of undefined label " + (*i)->Identifier());
+ }
+ *reinterpret_cast<int *>(text + cursor) = labels[(*i)->Identifier()];
+ cursor += sizeof(int);
+ } else if (cmd == "jge") {
+ Script::Code &code(CreateScriptCode(Script::COMMAND_JGE, text + cursor));
+ cursor += sizeof(Script::Code);
+ code.numParams = 1;
+ ++i;
+ if (!labels.count((*i)->Identifier())) {
+ throw Error("use of undefined label " + (*i)->Identifier());