mirror of
https://github.com/jorenchik/mdemory.git
synced 2026-03-22 00:26:21 +00:00
changes in code after tests on windows
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <ctime>
|
#include <time.h>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <map>
|
#include <map>
|
||||||
@@ -8,31 +8,12 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include <qabstractbutton.h>
|
|
||||||
#include <qapplication.h>
|
|
||||||
#include <qboxlayout.h>
|
|
||||||
#include <qcombobox.h>
|
|
||||||
#include <qdialog.h>
|
|
||||||
#include <qlabel.h>
|
|
||||||
#include <qlayoutitem.h>
|
|
||||||
#include <qmainwindow.h>
|
|
||||||
#include <qnamespace.h>
|
|
||||||
#include <qobjectdefs.h>
|
|
||||||
#include <qsettings.h>
|
|
||||||
#include <qsizepolicy.h>
|
|
||||||
#include <qt/QtWidgets/qwidget.h>
|
|
||||||
#include <qtoolbutton.h>
|
|
||||||
#include <qwidget.h>
|
|
||||||
#include <qwindow.h>
|
|
||||||
#include <qwindowdefs.h>
|
|
||||||
|
|
||||||
#include <Qsci/qsciscintilla.h>
|
|
||||||
#include <Qsci/qscilexercpp.h>
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
#include <QHeaderView>
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
#include <QFileSystemModel>
|
#include <QFileSystemModel>
|
||||||
#include <QTreeView>
|
#include <QTreeView>
|
||||||
@@ -42,28 +23,18 @@
|
|||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
#include <QSpacerItem>
|
#include <QSpacerItem>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
#include <QShortcut>
|
||||||
#include <QTime>
|
#include <QTime>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QListView>
|
|
||||||
#include <QWindow>
|
|
||||||
#include <QMenuBar>
|
#include <QMenuBar>
|
||||||
#include <QMenu>
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <qabstractitemmodel.h>
|
|
||||||
#include <QFormLayout>
|
|
||||||
#include <QSettings>
|
|
||||||
#include <QLineEdit>
|
|
||||||
#include <QComboBox>
|
|
||||||
#include <QSpinBox>
|
|
||||||
#include <QDoubleSpinBox>
|
|
||||||
#include <QCheckBox>
|
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QStandardPaths>
|
|
||||||
#include <QShortcut>
|
|
||||||
#include <QWidget>
|
|
||||||
#include <QTextBrowser>
|
#include <QTextBrowser>
|
||||||
#include <QHeaderView>
|
|
||||||
|
#include <Qsci/qscilexer.h>
|
||||||
|
#include <Qsci/qsciscintilla.h>
|
||||||
|
#include <Qsci/qscilexercpp.h>
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
@@ -71,7 +42,6 @@
|
|||||||
#include "trainWindow.h"
|
#include "trainWindow.h"
|
||||||
#include "api.h"
|
#include "api.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
#include "qscilexer.h"
|
|
||||||
|
|
||||||
// Atmiņas bāze.
|
// Atmiņas bāze.
|
||||||
QString currentPath = "";
|
QString currentPath = "";
|
||||||
@@ -746,6 +716,32 @@ void pickDirectory(QString directory) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pārbauda direktorija lasāmību
|
||||||
|
try {
|
||||||
|
auto tempFile = path.concat("/.writetest.tmp").string();
|
||||||
|
std::ofstream file(tempFile);
|
||||||
|
if (file) {
|
||||||
|
file.close();
|
||||||
|
std::filesystem::remove(tempFile);
|
||||||
|
} else {
|
||||||
|
QMessageBox::information(
|
||||||
|
nullptr,
|
||||||
|
"Atveršanas kļūda",
|
||||||
|
"Izvēlētajā direktorijā nav iespējams rakstīt."
|
||||||
|
);
|
||||||
|
currentPath = "";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
QMessageBox::information(
|
||||||
|
nullptr,
|
||||||
|
"Atveršanas kļūda",
|
||||||
|
"Neizdevās pārbaudīt izvēlētā direktorija rakstāmību."
|
||||||
|
);
|
||||||
|
currentPath = "";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
currentPath = directory;
|
currentPath = directory;
|
||||||
|
|
||||||
// Atjauno failu sarakstu.
|
// Atjauno failu sarakstu.
|
||||||
@@ -768,6 +764,7 @@ void pickDirectory(QString directory) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setupEditorSave() {
|
void setupEditorSave() {
|
||||||
|
const QString title = editMdem ? "Rediģēšanas kļūda" : "Pievienošanas kļūda";
|
||||||
debug = settings->value(SETTING_DEBUG).toBool();
|
debug = settings->value(SETTING_DEBUG).toBool();
|
||||||
showTimes = settings->value(SETTING_SHOW_TIMES).toBool();
|
showTimes = settings->value(SETTING_SHOW_TIMES).toBool();
|
||||||
auto res = transpile(editor->text().toStdString());
|
auto res = transpile(editor->text().toStdString());
|
||||||
@@ -778,7 +775,7 @@ void setupEditorSave() {
|
|||||||
}
|
}
|
||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Rediģēšanas kļūda",
|
title,
|
||||||
QString::fromStdString(res.error)
|
QString::fromStdString(res.error)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -786,7 +783,7 @@ void setupEditorSave() {
|
|||||||
if (res.value.questions.size() <= 0) {
|
if (res.value.questions.size() <= 0) {
|
||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Rediģēšanas kļūda",
|
title,
|
||||||
"Jūsu ievadē nav jautājumu."
|
"Jūsu ievadē nav jautājumu."
|
||||||
);
|
);
|
||||||
} else if (res.value.questions.size() == 1) {
|
} else if (res.value.questions.size() == 1) {
|
||||||
@@ -807,7 +804,7 @@ void setupEditorSave() {
|
|||||||
} else {
|
} else {
|
||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Rediģēšanas kļūda",
|
title,
|
||||||
"Jūsu ievadē ir vairāki jautājumi. Lūdzu ievadiet vienu!"
|
"Jūsu ievadē ir vairāki jautājumi. Lūdzu ievadiet vienu!"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -815,7 +812,7 @@ void setupEditorSave() {
|
|||||||
if (res.value.questions.size() <= 0) {
|
if (res.value.questions.size() <= 0) {
|
||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Rediģēšanas kļūda",
|
title,
|
||||||
"Jūsu ievadē nav jautājumu."
|
"Jūsu ievadē nav jautājumu."
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -873,6 +870,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
// Saistīti logi.
|
// Saistīti logi.
|
||||||
auto *settingsWindow = initSettings();
|
auto *settingsWindow = initSettings();
|
||||||
trainWindow = initTrainWindow();
|
trainWindow = initTrainWindow();
|
||||||
|
trainWindow->resize(800, 600);
|
||||||
|
|
||||||
QMainWindow *guideWindow = new QMainWindow;
|
QMainWindow *guideWindow = new QMainWindow;
|
||||||
{ // Apmācības logs.
|
{ // Apmācības logs.
|
||||||
@@ -884,6 +882,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
layout->addWidget(textBrowser);
|
layout->addWidget(textBrowser);
|
||||||
guideWidget->setLayout(layout);
|
guideWidget->setLayout(layout);
|
||||||
guideWindow->setCentralWidget(guideWidget);
|
guideWindow->setCentralWidget(guideWidget);
|
||||||
|
guideWindow->resize(800, 600);
|
||||||
}
|
}
|
||||||
|
|
||||||
QAction *actionOpen;
|
QAction *actionOpen;
|
||||||
@@ -1019,14 +1018,26 @@ QMainWindow *initMdemListWindow() {
|
|||||||
|
|
||||||
// Pogu definēšana.
|
// Pogu definēšana.
|
||||||
QObject::connect(&toolbar->btnAdd, &QToolButton::clicked, []() {
|
QObject::connect(&toolbar->btnAdd, &QToolButton::clicked, []() {
|
||||||
|
if (!currentMdemBuffer) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
editMdem = nullptr;
|
editMdem = nullptr;
|
||||||
editorWindow->show();
|
editorWindow->show();
|
||||||
editor->setText("");
|
editor->setText("");
|
||||||
});
|
});
|
||||||
QObject::connect(&toolbar->btnLoad, &QToolButton::clicked, []() {
|
QObject::connect(&toolbar->btnLoad, &QToolButton::clicked, []() {
|
||||||
|
if (!currentMdemBuffer) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!trainWindow->isHidden()) {
|
||||||
|
trainWindow->hide();
|
||||||
|
}
|
||||||
reloadMdem(currentMdem);
|
reloadMdem(currentMdem);
|
||||||
});
|
});
|
||||||
QObject::connect(&toolbar->btnSave, &QToolButton::clicked, []() {
|
QObject::connect(&toolbar->btnSave, &QToolButton::clicked, []() {
|
||||||
|
if (!currentMdemBuffer) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
saveMdem();
|
saveMdem();
|
||||||
});
|
});
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
@@ -1088,7 +1099,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
mdemList = new QTreeView();
|
mdemList = new QTreeView();
|
||||||
|
|
||||||
QStringList filters;
|
QStringList filters;
|
||||||
filters << "*.mdem";
|
filters << "*.mdem" << "*.txt";
|
||||||
model->setNameFilters(filters);
|
model->setNameFilters(filters);
|
||||||
model->setNameFilterDisables(false);
|
model->setNameFilterDisables(false);
|
||||||
|
|
||||||
@@ -1108,7 +1119,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
&QTreeView::doubleClicked,
|
&QTreeView::doubleClicked,
|
||||||
[](const QModelIndex &index) {
|
[](const QModelIndex &index) {
|
||||||
auto fileInfo = model->fileInfo(index);
|
auto fileInfo = model->fileInfo(index);
|
||||||
if (fileInfo.suffix() == "mdem") {
|
if (!fileInfo.isDir()) {
|
||||||
trainWindow->close();
|
trainWindow->close();
|
||||||
reloadMdem(fileInfo.filePath().toStdString());
|
reloadMdem(fileInfo.filePath().toStdString());
|
||||||
}
|
}
|
||||||
@@ -1271,5 +1282,6 @@ QMainWindow *initMdemListWindow() {
|
|||||||
|
|
||||||
window->setCentralWidget(wMain);
|
window->setCentralWidget(wMain);
|
||||||
window->show();
|
window->show();
|
||||||
|
window->resize(800, 600);
|
||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,65 +1,23 @@
|
|||||||
#include <qabstractbutton.h>
|
#include <filesystem>
|
||||||
#include <qapplication.h>
|
|
||||||
#include <qboxlayout.h>
|
|
||||||
#include <qcheckbox.h>
|
|
||||||
#include <qcombobox.h>
|
|
||||||
#include <qcoreevent.h>
|
|
||||||
#include <qdialog.h>
|
|
||||||
#include <qlabel.h>
|
|
||||||
#include <qlayoutitem.h>
|
|
||||||
#include <qmainwindow.h>
|
|
||||||
#include <qnamespace.h>
|
|
||||||
#include <qobject.h>
|
|
||||||
#include <qobjectdefs.h>
|
|
||||||
#include <qsettings.h>
|
|
||||||
#include <qsizepolicy.h>
|
|
||||||
#include <qspinbox.h>
|
|
||||||
#include <qt/QtWidgets/qwidget.h>
|
|
||||||
#include <qtoolbutton.h>
|
|
||||||
#include <qvalidator.h>
|
|
||||||
#include <qwidget.h>
|
|
||||||
#include <qwindow.h>
|
|
||||||
#include <qwindowdefs.h>
|
|
||||||
|
|
||||||
#include <Qsci/qsciscintilla.h>
|
|
||||||
#include <Qsci/qscilexercpp.h>
|
|
||||||
#include <QApplication>
|
|
||||||
#include <QMainWindow>
|
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QToolButton>
|
|
||||||
#include <QFileSystemModel>
|
|
||||||
#include <QTreeView>
|
|
||||||
#include <QSplitter>
|
|
||||||
#include <QVariant>
|
|
||||||
#include <QMessageBox>
|
|
||||||
#include <QScrollArea>
|
|
||||||
#include <QSpacerItem>
|
#include <QSpacerItem>
|
||||||
#include <QFile>
|
|
||||||
#include <QTime>
|
|
||||||
#include <QRegularExpression>
|
|
||||||
#include <QStringList>
|
|
||||||
#include <QListView>
|
|
||||||
#include <QWindow>
|
|
||||||
#include <QMenuBar>
|
|
||||||
#include <QMenu>
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <qabstractitemmodel.h>
|
|
||||||
#include <QFormLayout>
|
#include <QFormLayout>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QComboBox>
|
|
||||||
#include <QSpinBox>
|
#include <QSpinBox>
|
||||||
#include <QDoubleSpinBox>
|
#include <QDoubleSpinBox>
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
#include <QDateTime>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
#include <QShortcut>
|
#include <QShortcut>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "mdemList.h"
|
#include "mdemList.h"
|
||||||
#include "qscilexer.h"
|
|
||||||
|
|
||||||
QSettings *settings;
|
QSettings *settings;
|
||||||
|
|
||||||
@@ -72,6 +30,11 @@ QWidget *initSettings () {
|
|||||||
auto configDir = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
|
auto configDir = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
|
||||||
QDir().mkpath(configDir);
|
QDir().mkpath(configDir);
|
||||||
QString settingsFile = configDir + "/mdem.ini";
|
QString settingsFile = configDir + "/mdem.ini";
|
||||||
|
|
||||||
|
bool setToDefault = false;
|
||||||
|
if (!std::filesystem::exists(settingsFile.toStdString())) {
|
||||||
|
setToDefault = true;
|
||||||
|
}
|
||||||
settings = new QSettings(settingsFile, QSettings::IniFormat);
|
settings = new QSettings(settingsFile, QSettings::IniFormat);
|
||||||
|
|
||||||
// Logs.
|
// Logs.
|
||||||
@@ -155,9 +118,11 @@ QWidget *initSettings () {
|
|||||||
wButtons->setLayout(btnLayout);
|
wButtons->setLayout(btnLayout);
|
||||||
auto btnSaveSettings = new QPushButton("Saglabāt");
|
auto btnSaveSettings = new QPushButton("Saglabāt");
|
||||||
auto btnLoad = new QPushButton("Ielādēt");
|
auto btnLoad = new QPushButton("Ielādēt");
|
||||||
|
auto btnReset = new QPushButton("Atiestatīt");
|
||||||
auto mainLayout = new QVBoxLayout;
|
auto mainLayout = new QVBoxLayout;
|
||||||
btnLayout->addWidget(btnSaveSettings);
|
btnLayout->addWidget(btnSaveSettings);
|
||||||
btnLayout->addWidget(btnLoad);
|
btnLayout->addWidget(btnLoad);
|
||||||
|
btnLayout->addWidget(btnReset);
|
||||||
wButtons->setStyleSheet("font-size: 15px;");
|
wButtons->setStyleSheet("font-size: 15px;");
|
||||||
|
|
||||||
// Uzstāda lauku vērtības no uzstādījumu vērtībām.
|
// Uzstāda lauku vērtības no uzstādījumu vērtībām.
|
||||||
@@ -281,6 +246,46 @@ QWidget *initSettings () {
|
|||||||
updateSettingsLabel(false);
|
updateSettingsLabel(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Iestata uz noklusētiem iestatījumiem, ja konfigurācija neeksistēja ieptiekš.
|
||||||
|
auto resetInputsToDefault = [
|
||||||
|
perPage,
|
||||||
|
mbaseInput,
|
||||||
|
characterWrap,
|
||||||
|
timezone,
|
||||||
|
notRemembered,
|
||||||
|
hard,
|
||||||
|
medium,
|
||||||
|
easy,
|
||||||
|
debug,
|
||||||
|
showTimes,
|
||||||
|
updateSettingsLabel
|
||||||
|
]() {
|
||||||
|
// Noklutētā atmiņas bāze - lietotāja mājas direktorijs.
|
||||||
|
auto homeDir = QStandardPaths::writableLocation(
|
||||||
|
QStandardPaths::HomeLocation
|
||||||
|
);
|
||||||
|
mbaseInput->setText(homeDir);
|
||||||
|
|
||||||
|
perPage->setValue(10);
|
||||||
|
characterWrap->setValue(80);
|
||||||
|
|
||||||
|
// Noklusētā laika zona - lokālā laika zona.
|
||||||
|
auto localTime = QDateTime::currentDateTime();
|
||||||
|
auto utcTime = QDateTime::currentDateTimeUtc();
|
||||||
|
qint64 offsetSeconds = localTime.offsetFromUtc();
|
||||||
|
int offsetHours = offsetSeconds / 3600;
|
||||||
|
timezone->setValue(offsetHours);
|
||||||
|
|
||||||
|
notRemembered->setValue(0);
|
||||||
|
hard->setValue(3);
|
||||||
|
medium->setValue(24);
|
||||||
|
easy->setValue(48);
|
||||||
|
debug->setChecked(false);
|
||||||
|
showTimes->setChecked(false);
|
||||||
|
|
||||||
|
updateSettingsLabel(true);
|
||||||
|
};
|
||||||
|
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
btnSaveSettings,
|
btnSaveSettings,
|
||||||
&QPushButton::clicked,
|
&QPushButton::clicked,
|
||||||
@@ -306,7 +311,19 @@ QWidget *initSettings () {
|
|||||||
loadSettings();
|
loadSettings();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
QObject::connect(
|
||||||
|
btnReset,
|
||||||
|
&QPushButton::clicked,
|
||||||
|
[resetInputsToDefault]() {
|
||||||
|
resetInputsToDefault();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (setToDefault) {
|
||||||
|
resetInputsToDefault();
|
||||||
|
saveSettings();
|
||||||
|
} else {
|
||||||
loadSettings();
|
loadSettings();
|
||||||
|
}
|
||||||
|
|
||||||
// Lai pogas ir lejā.
|
// Lai pogas ir lejā.
|
||||||
auto spacer = new QSpacerItem(
|
auto spacer = new QSpacerItem(
|
||||||
@@ -323,5 +340,6 @@ QWidget *initSettings () {
|
|||||||
mainLayout->addWidget(wButtons);
|
mainLayout->addWidget(wButtons);
|
||||||
|
|
||||||
settingsWindow->setLayout(mainLayout);
|
settingsWindow->setLayout(mainLayout);
|
||||||
|
settingsWindow->resize(800, 600);
|
||||||
return settingsWindow;
|
return settingsWindow;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,33 +1,20 @@
|
|||||||
#include <QMainWindow>
|
#include <random>
|
||||||
#include <QWidget>
|
|
||||||
#include <QToolButton>
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <qabstractitemview.h>
|
|
||||||
#include <qboxlayout.h>
|
#include <QListView>
|
||||||
#include <qchar.h>
|
|
||||||
#include <qcoreevent.h>
|
|
||||||
#include <qlabel.h>
|
|
||||||
#include <qlayoutitem.h>
|
|
||||||
#include <qlistview.h>
|
|
||||||
#include <qmainwindow.h>
|
|
||||||
#include <qnamespace.h>
|
|
||||||
#include <qscrollarea.h>
|
|
||||||
#include <qstandarditemmodel.h>
|
|
||||||
#include <qstringalgorithms.h>
|
|
||||||
#include <qstringlistmodel.h>
|
|
||||||
#include <qtoolbutton.h>
|
|
||||||
#include <Qt>
|
#include <Qt>
|
||||||
#include <random>
|
#include <QMainWindow>
|
||||||
#include <qwidget.h>
|
#include <QWidget>
|
||||||
|
#include <QToolButton>
|
||||||
#include <QStandardItemModel>
|
#include <QStandardItemModel>
|
||||||
#include <QDropEvent>
|
#include <QDropEvent>
|
||||||
#include <QDrag>
|
|
||||||
#include <QStyledItemDelegate>
|
#include <QStyledItemDelegate>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QShortcut>
|
#include <QShortcut>
|
||||||
|
#include <QScrollArea>
|
||||||
|
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "mdemList.h"
|
#include "mdemList.h"
|
||||||
|
|||||||
@@ -108,6 +108,24 @@ Result<ParseInfo> transpile(std::string fileContent) {
|
|||||||
start = std::chrono::high_resolution_clock::now();
|
start = std::chrono::high_resolution_clock::now();
|
||||||
end = std::chrono::high_resolution_clock::now();
|
end = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
|
// Apstrādā jaunas rindas simbolus gan DOS,
|
||||||
|
// gan UNIX formātā vienādi.
|
||||||
|
std::string normalized;
|
||||||
|
for (int i = 0; i < fileContent.size(); ++i) {
|
||||||
|
if (fileContent[i] == '\r') {
|
||||||
|
if (
|
||||||
|
i + 1 < fileContent.size() &&
|
||||||
|
fileContent[i + 1] == '\n'
|
||||||
|
) {
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
normalized.push_back('\n');
|
||||||
|
} else {
|
||||||
|
normalized.push_back(fileContent[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fileContent = normalized;
|
||||||
|
|
||||||
auto lexRes = tokenizeMdem(fileContent);
|
auto lexRes = tokenizeMdem(fileContent);
|
||||||
auto tokens = lexRes.value;
|
auto tokens = lexRes.value;
|
||||||
if (lexRes.error.length() > 0) {
|
if (lexRes.error.length() > 0) {
|
||||||
|
|||||||
@@ -10,6 +10,11 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "result.h"
|
#include "result.h"
|
||||||
|
|
||||||
|
// Uz Windows sistēmās timegm funkcijai ir atšķirīgs nosaukums.
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define timegm _mkgmtime
|
||||||
|
#endif
|
||||||
|
|
||||||
std::vector<Token> tokens;
|
std::vector<Token> tokens;
|
||||||
std::vector<char> buffer;
|
std::vector<char> buffer;
|
||||||
int32_t row;
|
int32_t row;
|
||||||
|
|||||||
Reference in New Issue
Block a user