Small code cleanup. Added ldc build command.

This commit is contained in:
Hackerpilot 2013-02-03 16:20:52 +00:00
parent 4adaae9e06
commit 0b8834a1b3
2 changed files with 179 additions and 65 deletions

View File

@ -1,2 +1,3 @@
dmd *.d std/d/*.d -release -inline -noboundscheck -O -w -wi -m64 -property -ofdscanner -L-lsqlite3 #-inline
#dmd *.d std/d/*.d -release -inline -noboundscheck -O -w -wi -m64 -property -ofdscanner -L-lsqlite3 #-inline
#dmd *.d std/d/*.d -g -m64 -w -wi -property -ofdscanner -L-lsqlite3 #-unittest
ldc2 -O3 *.d std/d/*.d -of=dscanner -L-lsqlite3

View File

@ -55,6 +55,7 @@
* <html>
* <head>
* <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
* </head>
* <body>
* <style type="text/css">
* html { background-color: #fdf6e3; color: #002b36; }
@ -441,64 +442,182 @@ private:
}
outer: switch (range.front)
{
// pragma(msg, generateCaseTrie(
mixin(generateCaseTrie(
"=", "TokenType.assign",
"@", "TokenType.at",
"&", "TokenType.bitAnd",
"&=", "TokenType.bitAndEquals",
"|", "TokenType.bitOr",
"|=", "TokenType.bitOrEquals",
"~=", "TokenType.catEquals",
":", "TokenType.colon",
",", "TokenType.comma",
"--", "TokenType.decrement",
"$", "TokenType.dollar",
"==", "TokenType.equals",
"=>", "TokenType.goesTo",
">", "TokenType.greater",
">=", "TokenType.greaterEqual",
"++", "TokenType.increment",
"{", "TokenType.lBrace",
"[", "TokenType.lBracket",
"<", "TokenType.less",
"<=", "TokenType.lessEqual",
"<>=", "TokenType.lessEqualGreater",
"<>", "TokenType.lessOrGreater",
"&&", "TokenType.logicAnd",
"||", "TokenType.logicOr",
"(", "TokenType.lParen",
"-", "TokenType.minus",
"-=", "TokenType.minusEquals",
"%", "TokenType.mod",
"%=", "TokenType.modEquals",
"*=", "TokenType.mulEquals",
"!", "TokenType.not",
"!=", "TokenType.notEquals",
"!>", "TokenType.notGreater",
"!>=", "TokenType.notGreaterEqual",
"!<", "TokenType.notLess",
"!<=", "TokenType.notLessEqual",
"!<>", "TokenType.notLessEqualGreater",
"+", "TokenType.plus",
"+=", "TokenType.plusEquals",
"^^", "TokenType.pow",
"^^=", "TokenType.powEquals",
"}", "TokenType.rBrace",
"]", "TokenType.rBracket",
")", "TokenType.rParen",
";", "TokenType.semicolon",
"<<", "TokenType.shiftLeft",
"<<=", "TokenType.shiftLeftEqual",
">>", "TokenType.shiftRight",
">>=", "TokenType.shiftRightEqual",
"*", "TokenType.star",
"?", "TokenType.ternary",
"~", "TokenType.tilde",
"!<>=", "TokenType.unordered",
">>>", "TokenType.unsignedShiftRight",
">>>=", "TokenType.unsignedShiftRightEqual",
"^", "TokenType.xor",
"^=", "TokenType.xorEquals",
"=", "TokenType.assign",
"@", "TokenType.at",
"&", "TokenType.bitAnd",
"&=", "TokenType.bitAndEquals",
"|", "TokenType.bitOr",
"|=", "TokenType.bitOrEquals",
"~=", "TokenType.catEquals",
":", "TokenType.colon",
",", "TokenType.comma",
"--", "TokenType.decrement",
"$", "TokenType.dollar",
"==", "TokenType.equals",
"=>", "TokenType.goesTo",
">", "TokenType.greater",
">=", "TokenType.greaterEqual",
"++", "TokenType.increment",
"{", "TokenType.lBrace",
"[", "TokenType.lBracket",
"<", "TokenType.less",
"<=", "TokenType.lessEqual",
"<>=", "TokenType.lessEqualGreater",
"<>", "TokenType.lessOrGreater",
"&&", "TokenType.logicAnd",
"||", "TokenType.logicOr",
"(", "TokenType.lParen",
"-", "TokenType.minus",
"-=", "TokenType.minusEquals",
"%", "TokenType.mod",
"%=", "TokenType.modEquals",
"*=", "TokenType.mulEquals",
"!", "TokenType.not",
"!=", "TokenType.notEquals",
"!>", "TokenType.notGreater",
"!>=", "TokenType.notGreaterEqual",
"!<", "TokenType.notLess",
"!<=", "TokenType.notLessEqual",
"!<>", "TokenType.notLessEqualGreater",
"+", "TokenType.plus",
"+=", "TokenType.plusEquals",
"^^", "TokenType.pow",
"^^=", "TokenType.powEquals",
"}", "TokenType.rBrace",
"]", "TokenType.rBracket",
")", "TokenType.rParen",
";", "TokenType.semicolon",
"<<", "TokenType.shiftLeft",
"<<=", "TokenType.shiftLeftEqual",
">>", "TokenType.shiftRight",
">>=", "TokenType.shiftRightEqual",
"*", "TokenType.star",
"?", "TokenType.ternary",
"~", "TokenType.tilde",
"!<>=", "TokenType.unordered",
">>>", "TokenType.unsignedShiftRight",
">>>=", "TokenType.unsignedShiftRightEqual",
"^", "TokenType.xor",
"^=", "TokenType.xorEquals",
// "bool", "TokenType.bool_",
// "byte", "TokenType.byte_",
// "cdouble", "TokenType.cdouble_",
// "cent", "TokenType.cent_",
// "cfloat", "TokenType.cfloat_",
// "char", "TokenType.char_",
// "creal", "TokenType.creal_",
// "dchar", "TokenType.dchar_",
// "double", "TokenType.double_",
// "dstring", "TokenType.dstring_",
// "float", "TokenType.float_",
// "function", "TokenType.function_",
// "idouble", "TokenType.idouble_",
// "ifloat", "TokenType.ifloat_",
// "int", "TokenType.int_",
// "ireal", "TokenType.ireal_",
// "long", "TokenType.long_",
// "real", "TokenType.real_",
// "short", "TokenType.short_",
// "string", "TokenType.string_",
// "ubyte", "TokenType.ubyte_",
// "ucent", "TokenType.ucent_",
// "uint", "TokenType.uint_",
// "ulong", "TokenType.ulong_",
// "ushort", "TokenType.ushort_",
// "void", "TokenType.void_",
// "wchar", "TokenType.wchar_",
// "wstring", "TokenType.wstring_",
// "align", "TokenType.align_",
// "deprecated", "TokenType.deprecated_",
// "extern", "TokenType.extern_",
// "pragma", "TokenType.pragma_",
// "export", "TokenType.export_",
// "package", "TokenType.package_",
// "private", "TokenType.private_",
// "protected", "TokenType.protected_",
// "public", "TokenType.public_",
// "abstract", "TokenType.abstract_",
// "auto", "TokenType.auto_",
// "const", "TokenType.const_",
// "final", "TokenType.final_",
// "__gshared", "TokenType.gshared",
// "immutable", "TokenType.immutable_",
// "inout", "TokenType.inout_",
// "scope", "TokenType.scope_",
// "shared", "TokenType.shared_",
// "static", "TokenType.static_",
// "synchronized", "TokenType.synchronized_",
// "alias", "TokenType.alias_",
// "asm", "TokenType.asm_",
// "assert", "TokenType.assert_",
// "body", "TokenType.body_",
// "break", "TokenType.break_",
// "case", "TokenType.case_",
// "cast", "TokenType.cast_",
// "catch", "TokenType.catch_",
// "class", "TokenType.class_",
// "continue", "TokenType.continue_",
// "debug", "TokenType.debug_",
// "default", "TokenType.default_",
// "delegate", "TokenType.delegate_",
// "delete", "TokenType.delete_",
// "do", "TokenType.do_",
// "else", "TokenType.else_",
// "enum", "TokenType.enum_",
// "false", "TokenType.false_",
// "finally", "TokenType.finally_",
// "foreach", "TokenType.foreach_",
// "foreach_reverse", "TokenType.foreach_reverse_",
// "for", "TokenType.for_",
// "goto", "TokenType.goto_",
// "if", "TokenType.if_",
// "import", "TokenType.import_",
// "in", "TokenType.in_",
// "interface", "TokenType.interface_",
// "invariant", "TokenType.invariant_",
// "is", "TokenType.is_",
// "lazy", "TokenType.lazy_",
// "macro", "TokenType.macro_",
// "mixin", "TokenType.mixin_",
// "module", "TokenType.module_",
// "new", "TokenType.new_",
// "nothrow", "TokenType.nothrow_",
// "null", "TokenType.null_",
// "out", "TokenType.out_",
// "override", "TokenType.override_",
// "pure", "TokenType.pure_",
// "ref", "TokenType.ref_",
// "return", "TokenType.return_",
// "struct", "TokenType.struct_",
// "super", "TokenType.super_",
// "switch", "TokenType.switch_",
// "template", "TokenType.template_",
// "this", "TokenType.this_",
// "throw", "TokenType.throw_",
// "true", "TokenType.true_",
// "try", "TokenType.try_",
// "typedef", "TokenType.typedef_",
// "typeid", "TokenType.typeid_",
// "typeof", "TokenType.typeof_",
// "union", "TokenType.union_",
// "unittest", "TokenType.unittest_",
// "version", "TokenType.version_",
// "volatile", "TokenType.volatile_",
// "while", "TokenType.while_",
// "with", "TokenType.with_",
// "__DATE__", "TokenType.date",
// "__EOF__", "TokenType.eof",
// "__TIME__", "TokenType.time",
// "__TIMESTAMP__", "TokenType.timestamp",
// "__VENDOR__", "TokenType.vendor",
// "__VERSION__", "TokenType.compilerVersion",
// "__FILE__", "TokenType.file",
// "__LINE__", "TokenType.line",
// "__traits", "TokenType.traits",
// "__parameters", "TokenType.parameters",
// "__vector", "TokenType.vector",
));
case '/':
auto r = range.save();
@ -2394,13 +2513,7 @@ string printCaseStatements(K, V)(TrieNode!(K,V) node, string indentString)
caseStatement ~= "\tsize_t i = 0;\n";
}
caseStatement ~= indentString;
caseStatement ~= "\tbuffer[i++] = '";
caseStatement ~= k;
caseStatement ~= "';\n";
caseStatement ~= indentString;
caseStatement ~= "\t++index;\n";
caseStatement ~= indentString;
caseStatement ~= "\trange.popFront();\n";
caseStatement ~= "\tkeepChar();\n";
if (v.children.length > 0)
{
caseStatement ~= indentString;