inline void writeTapeRecord(MemoryWriter& tape, size_t command, ident_t value1, ident_t value2) { tape.writeDWord(command); // write total length including equal sign tape.writeDWord(getlength(value1) + getlength(value2) + 2); if (!emptystr(value1)) { tape.writeLiteral(value1, getlength(value1)); tape.writeChar('='); } if (!emptystr(value2)) { tape.writeLiteral(value2); } else tape.writeChar((char)0); }
inline void writeTapeRecord(MemoryWriter& tape, size_t command, ident_t value, bool forward = false) { tape.writeDWord(command); if (!emptystr(value)) { if (forward) { tape.writeDWord(getlength(value) + 1 + FORWARD_PREFIX_NS_LEN); tape.writeLiteral(FORWARD_PREFIX_NS, FORWARD_PREFIX_NS_LEN); tape.writeLiteral(value, getlength(value) + 1); } else { tape.writeDWord(getlength(value) + 1); tape.writeLiteral(value, getlength(value) + 1); } } else tape.writeDWord(0); }