diff --git a/0n1n.json b/grammar/0n1n.json similarity index 100% rename from 0n1n.json rename to grammar/0n1n.json diff --git a/m-n.json b/grammar/m-n.json similarity index 100% rename from m-n.json rename to grammar/m-n.json diff --git a/grammar/wcw.json b/grammar/wcw.json new file mode 100644 index 0000000..249639d --- /dev/null +++ b/grammar/wcw.json @@ -0,0 +1,227 @@ +{ + "name": "wcw", + "description": "{ wcw | w ∈ {a,b}+ }", + "grammar": { + "states": { + "states": [ + "q0", + "[q1,a]", + "[q1,b]", + "[q2,a]", + "[q2,b]", + "q3", + "q4", + "q5", + "q6", + "q7", + "q8" + ], + "initial": "q0", + "finial": [ + "q8" + ] + }, + "input": [ + "a", + "b", + "c" + ], + "alphabet": [ + "a", + "b", + "c", + "X", + "Y", + "B" + ], + "blank": "B", + "transition": { + "q0": { + "a": [ + "[q1,a]", + "X", + "R" + ], + "b": [ + "[q1,b]", + "Y", + "R" + ] + }, + "[q1,a]": { + "a": [ + "[q1,a]", + "a", + "R" + ], + "b": [ + "[q1,a]", + "b", + "R" + ], + "c":[ + "[q2,a]", + "c", + "R" + ] + }, + "[q1,b]": { + "a": [ + "[q1,b]", + "a", + "R" + ], + "b": [ + "[q1,b]", + "b", + "R" + ], + "c":[ + "[q2,b]", + "c", + "R" + ] + }, + "[q2,a]": { + "X": [ + "[q2,a]", + "X", + "R" + ], + "Y": [ + "[q2,a]", + "Y", + "R" + ], + "a":[ + "q3", + "X", + "L" + ] + }, + "[q2,b]": { + "X": [ + "[q2,b]", + "X", + "R" + ], + "Y": [ + "[q2,b]", + "Y", + "R" + ], + "b":[ + "q3", + "Y", + "L" + ] + }, + "q3": { + "X": [ + "q3", + "X", + "L" + ], + "Y": [ + "q3", + "Y", + "L" + ], + "c": [ + "q4", + "c", + "L" + ] + }, + "q4": { + "a": [ + "q5", + "a", + "L" + ], + "b": [ + "q5", + "b", + "L" + ], + "X": [ + "q6", + "X", + "R" + ], + "Y":[ + "q6", + "Y", + "R" + ] + }, + "q5": { + "a": [ + "q5", + "a", + "L" + ], + "b": [ + "q5", + "b", + "L" + ], + "X": [ + "q0", + "X", + "R" + ], + "Y": [ + "q0", + "Y", + "R" + ] + }, + "q6":{ + "X":[ + "q6", + "X", + "R" + ], + "Y":[ + "q6", + "Y", + "R" + ], + "c":[ + "q6", + "c", + "R" + ], + "B":[ + "q7", + "B", + "L" + ] + }, + "q7":{ + "c":[ + "q7", + "c", + "L" + ], + "X":[ + "q7", + "a", + "L" + ], + "Y":[ + "q7", + "b", + "L" + ], + "B":[ + "q8", + "B", + "R" + ] + } + } + }, + "demo":"aabbbcaabbb" +} \ No newline at end of file diff --git a/main.cpp b/main.cpp index 260020e..540c6f0 100644 --- a/main.cpp +++ b/main.cpp @@ -10,12 +10,5 @@ int main(int argc, char *argv[]) MainWindow w; w.show(); -// TuringMachine tm; -// tm.setGrammar("0n1n.json"); -// tm.setTestStr(""); -// if(tm.run()) -// qDebug()<<"OK"; -// else -// qDebug()<<"not ok"; return a.exec(); } diff --git a/mainwindow.cpp b/mainwindow.cpp index ba7de5b..6af379c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -14,7 +14,7 @@ MainWindow::MainWindow(QWidget *parent) : helpMenu->addAction(aboutAction); setCentralWidget(cw); menuBar()->addMenu(helpMenu); - statusBar()->showMessage("欢迎使用环保图灵机!"); + statusBar()->showMessage(tr("欢迎使用图灵机!")); connect(cw, CentralWidget::setStatus, this,[this](QString message) { statusBar()->showMessage(message, 0); @@ -31,7 +31,7 @@ void MainWindow::showAbout() { QMessageBox *aboutWindow = new QMessageBox(this); aboutWindow->setStandardButtons(QMessageBox::Ok); - aboutWindow->setText(tr("

TuringMachine

" + aboutWindow->setText(tr("

TuringMachine

" "

Based on Qt 5.10.1 (MinGW 5.3.0, 32bit)

" "Source Code: https://github.com/c-my/TuringMachine
" "Email: "