20 lines
540 B
C++
20 lines
540 B
C++
|
|
#include "dslengine.h"
|
||
|
|
|
||
|
|
#include "parser.h"
|
||
|
|
|
||
|
|
Module DslEngine::compile(const QString& scriptText) {
|
||
|
|
Lexer lex(scriptText);
|
||
|
|
Parser parser(std::move(lex));
|
||
|
|
return parser.parseModule();
|
||
|
|
}
|
||
|
|
|
||
|
|
QVariantMap DslEngine::parse(const QString& scriptText, const QString& typeName, QIODevice* dev) {
|
||
|
|
Module mod = compile(scriptText);
|
||
|
|
return parse(mod, typeName, dev);
|
||
|
|
}
|
||
|
|
|
||
|
|
QVariantMap DslEngine::parse(const Module& mod, const QString& typeName, QIODevice* dev) {
|
||
|
|
Interpreter interp(mod);
|
||
|
|
return interp.runType(typeName, dev);
|
||
|
|
}
|