summaryrefslogtreecommitdiffstats
path: root/util/lexgen/generator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'util/lexgen/generator.cpp')
-rw-r--r--util/lexgen/generator.cpp48
1 files changed, 24 insertions, 24 deletions
diff --git a/util/lexgen/generator.cpp b/util/lexgen/generator.cpp
index a6fc93c0ca..06ba586c1f 100644
--- a/util/lexgen/generator.cpp
+++ b/util/lexgen/generator.cpp
@@ -48,7 +48,7 @@ void Function::printDeclaration(CodeBlock &block, const QString &funcNamePrefix)
block << (iline ? "inline " : "") << signature(funcNamePrefix) << (iline ? QLatin1String(" {") : QLatin1String(";"));
if (!iline)
return;
-
+
block.indent();
QString tmp = body;
if (tmp.endsWith(QLatin1Char('\n')))
@@ -81,7 +81,7 @@ QString Function::definition() const
QString result;
result += signature();
result += QLatin1String("\n{\n");
-
+
QString tmp = body;
if (tmp.endsWith(QLatin1Char('\n')))
@@ -92,7 +92,7 @@ QString Function::definition() const
tmp.replace(QLatin1Char('\n'), QLatin1String("\n "));
result += tmp;
-
+
result += QLatin1String("\n}\n");
return result;
@@ -102,16 +102,16 @@ void Class::Section::printDeclaration(const Class *klass, CodeBlock &block) cons
{
foreach (Function ctor, constructors)
ctor.printDeclaration(block, klass->name());
-
+
if (!constructors.isEmpty())
block.addNewLine();
-
+
foreach (Function func, functions)
func.printDeclaration(block);
-
+
if (!functions.isEmpty())
block.addNewLine();
-
+
foreach (QString var, variables)
block << var << ';';
}
@@ -133,13 +133,13 @@ void Class::addConstructor(Access access, const QString &body, const QString &_a
QString Class::Section::definition(const Class *klass) const
{
QString result;
-
+
foreach (Function ctor, constructors) {
ctor.setName(klass->name() + "::" + klass->name() + ctor.name());
result += ctor.definition();
result += QLatin1Char('\n');
}
-
+
foreach (Function func, functions) {
if (!func.hasBody()) continue;
func.setName(klass->name() + "::" + func.name());
@@ -153,10 +153,10 @@ QString Class::Section::definition(const Class *klass) const
QString Class::declaration() const
{
CodeBlock block;
-
+
block << QLatin1String("class ") << cname;
block << "{";
-
+
if (!sections[PublicMember].isEmpty()) {
block << "public:";
block.indent();
@@ -170,7 +170,7 @@ QString Class::declaration() const
sections[ProtectedMember].printDeclaration(this, block);
block.outdent();
}
-
+
if (!sections[PrivateMember].isEmpty()) {
block << "private:";
block.indent();
@@ -180,7 +180,7 @@ QString Class::declaration() const
block << "};";
block.addNewLine();
-
+
return block.toString();
}
@@ -406,12 +406,12 @@ void Generator::generateTransitions(CodeBlock &body, const TransitionMap &transi
QString Generator::generate()
{
Class klass(cfg.className);
-
+
klass.addMember(Class::PublicMember, "QString input");
klass.addMember(Class::PublicMember, "int pos");
klass.addMember(Class::PublicMember, "int lexemStart");
klass.addMember(Class::PublicMember, "int lexemLength");
-
+
{
CodeBlock body;
body << "input = inp;";
@@ -420,7 +420,7 @@ QString Generator::generate()
body << "lexemLength = 0;";
klass.addConstructor(Class::PublicMember, body, "const QString &inp");
}
-
+
{
Function next("QChar", "next()");
next.setInline(true);
@@ -430,7 +430,7 @@ QString Generator::generate()
next.addBody("return (pos < input.length()) ? input.at(pos++).toLower() : QChar();");
klass.addMember(Class::PublicMember, next);
}
-
+
/*
{
Function lexem("QString", "lexem()");
@@ -450,7 +450,7 @@ QString Generator::generate()
Function lexFunc;
lexFunc.setReturnType("int");
lexFunc.setName("lex()");
-
+
CodeBlock body;
body << "lexemStart = pos;";
body << "lexemLength = 0;";
@@ -487,14 +487,14 @@ QString Generator::generate()
body.outdent();
body.indent();
-
+
if (!dfa.at(i).transitions.isEmpty()) {
body << "ch = next();";
generateTransitions(body, dfa.at(i).transitions);
}
-
+
body << "goto out;";
-
+
body.outdent();
}
@@ -512,9 +512,9 @@ QString Generator::generate()
body.outdent();
body << "}";
body << "return token;";
-
+
lexFunc.addBody(body);
-
+
klass.addMember(Class::PublicMember, lexFunc);
QString header;
@@ -526,7 +526,7 @@ QString Generator::generate()
}
header += QLatin1String("// auto generated. DO NOT EDIT.\n");
-
+
return header + klass.declaration() + klass.definition();
}