Я разрабатываю программу на C++, которая преобразует файлы .jack в формат XML с помощью класса JackTokenizer. Программа должна читать каждый файл .jack, маркировать его содержимое и генерировать соответствующий XML-файл. Однако я столкнулся с проблемой со структурой XML вывода.
Сведения о проблеме:
Ожидаемое поведение:
Вывод XML-файл для каждого файла .jack должен начинаться с и заканчиваться , инкапсулируя все токенизированные элементы внутри.
Фактическое поведение:
В настоящее время в сгенерированных XML-файлах отсутствует тег в начале и в конце. Вместо этого каждый XML-файл начинается непосредственно с тегов токенов, таких как , , и т. д., без ожидаемых закрывающих тегов.
Принятые шаги:< /strong>
Обеспечено правильное чтение и обработка файлов .jack из указанного каталога.
Класс JackTokenizer правильно токенизирует строки из файлов .jack и выводит соответствующие теги XML для каждого типа токена.
Проверенный файл логику обработки и токенизатора в функции ConvertFile, чтобы обеспечить правильную обработку токенов.
Код: Выделить всё
JackAnalyzer.cppКод: Выделить всё
#include
#include "../Compiler/JackCompiler/JackTokenizer.h"
#include "../Compiler/Utility.h"
int main() {
try {
while (true) {
Ui::uiLogo();
string directoryPath = File::askDirectoryPath();
// Check for valid directory and clear console.
bool isValidDir = File::isValidDirectory(directoryPath);
Ui::clear();
// If not valid directory, force user to re-enter.
while (!isValidDir) {
Ui::uiLogo();
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78652735/c-program-using-jacktokenizer-fails-to-add-tokens-to-xml-output[/url]
Мобильная версия