Small code cleanup. Added ldc build command.
This commit is contained in:
parent
4adaae9e06
commit
0b8834a1b3
3
build.sh
3
build.sh
|
@ -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
|
#dmd *.d std/d/*.d -g -m64 -w -wi -property -ofdscanner -L-lsqlite3 #-unittest
|
||||||
|
ldc2 -O3 *.d std/d/*.d -of=dscanner -L-lsqlite3
|
||||||
|
|
241
std/d/lexer.d
241
std/d/lexer.d
|
@ -55,6 +55,7 @@
|
||||||
* <html>
|
* <html>
|
||||||
* <head>
|
* <head>
|
||||||
* <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
* <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||||
|
* </head>
|
||||||
* <body>
|
* <body>
|
||||||
* <style type="text/css">
|
* <style type="text/css">
|
||||||
* html { background-color: #fdf6e3; color: #002b36; }
|
* html { background-color: #fdf6e3; color: #002b36; }
|
||||||
|
@ -441,64 +442,182 @@ private:
|
||||||
}
|
}
|
||||||
outer: switch (range.front)
|
outer: switch (range.front)
|
||||||
{
|
{
|
||||||
|
// pragma(msg, generateCaseTrie(
|
||||||
mixin(generateCaseTrie(
|
mixin(generateCaseTrie(
|
||||||
"=", "TokenType.assign",
|
"=", "TokenType.assign",
|
||||||
"@", "TokenType.at",
|
"@", "TokenType.at",
|
||||||
"&", "TokenType.bitAnd",
|
"&", "TokenType.bitAnd",
|
||||||
"&=", "TokenType.bitAndEquals",
|
"&=", "TokenType.bitAndEquals",
|
||||||
"|", "TokenType.bitOr",
|
"|", "TokenType.bitOr",
|
||||||
"|=", "TokenType.bitOrEquals",
|
"|=", "TokenType.bitOrEquals",
|
||||||
"~=", "TokenType.catEquals",
|
"~=", "TokenType.catEquals",
|
||||||
":", "TokenType.colon",
|
":", "TokenType.colon",
|
||||||
",", "TokenType.comma",
|
",", "TokenType.comma",
|
||||||
"--", "TokenType.decrement",
|
"--", "TokenType.decrement",
|
||||||
"$", "TokenType.dollar",
|
"$", "TokenType.dollar",
|
||||||
"==", "TokenType.equals",
|
"==", "TokenType.equals",
|
||||||
"=>", "TokenType.goesTo",
|
"=>", "TokenType.goesTo",
|
||||||
">", "TokenType.greater",
|
">", "TokenType.greater",
|
||||||
">=", "TokenType.greaterEqual",
|
">=", "TokenType.greaterEqual",
|
||||||
"++", "TokenType.increment",
|
"++", "TokenType.increment",
|
||||||
"{", "TokenType.lBrace",
|
"{", "TokenType.lBrace",
|
||||||
"[", "TokenType.lBracket",
|
"[", "TokenType.lBracket",
|
||||||
"<", "TokenType.less",
|
"<", "TokenType.less",
|
||||||
"<=", "TokenType.lessEqual",
|
"<=", "TokenType.lessEqual",
|
||||||
"<>=", "TokenType.lessEqualGreater",
|
"<>=", "TokenType.lessEqualGreater",
|
||||||
"<>", "TokenType.lessOrGreater",
|
"<>", "TokenType.lessOrGreater",
|
||||||
"&&", "TokenType.logicAnd",
|
"&&", "TokenType.logicAnd",
|
||||||
"||", "TokenType.logicOr",
|
"||", "TokenType.logicOr",
|
||||||
"(", "TokenType.lParen",
|
"(", "TokenType.lParen",
|
||||||
"-", "TokenType.minus",
|
"-", "TokenType.minus",
|
||||||
"-=", "TokenType.minusEquals",
|
"-=", "TokenType.minusEquals",
|
||||||
"%", "TokenType.mod",
|
"%", "TokenType.mod",
|
||||||
"%=", "TokenType.modEquals",
|
"%=", "TokenType.modEquals",
|
||||||
"*=", "TokenType.mulEquals",
|
"*=", "TokenType.mulEquals",
|
||||||
"!", "TokenType.not",
|
"!", "TokenType.not",
|
||||||
"!=", "TokenType.notEquals",
|
"!=", "TokenType.notEquals",
|
||||||
"!>", "TokenType.notGreater",
|
"!>", "TokenType.notGreater",
|
||||||
"!>=", "TokenType.notGreaterEqual",
|
"!>=", "TokenType.notGreaterEqual",
|
||||||
"!<", "TokenType.notLess",
|
"!<", "TokenType.notLess",
|
||||||
"!<=", "TokenType.notLessEqual",
|
"!<=", "TokenType.notLessEqual",
|
||||||
"!<>", "TokenType.notLessEqualGreater",
|
"!<>", "TokenType.notLessEqualGreater",
|
||||||
"+", "TokenType.plus",
|
"+", "TokenType.plus",
|
||||||
"+=", "TokenType.plusEquals",
|
"+=", "TokenType.plusEquals",
|
||||||
"^^", "TokenType.pow",
|
"^^", "TokenType.pow",
|
||||||
"^^=", "TokenType.powEquals",
|
"^^=", "TokenType.powEquals",
|
||||||
"}", "TokenType.rBrace",
|
"}", "TokenType.rBrace",
|
||||||
"]", "TokenType.rBracket",
|
"]", "TokenType.rBracket",
|
||||||
")", "TokenType.rParen",
|
")", "TokenType.rParen",
|
||||||
";", "TokenType.semicolon",
|
";", "TokenType.semicolon",
|
||||||
"<<", "TokenType.shiftLeft",
|
"<<", "TokenType.shiftLeft",
|
||||||
"<<=", "TokenType.shiftLeftEqual",
|
"<<=", "TokenType.shiftLeftEqual",
|
||||||
">>", "TokenType.shiftRight",
|
">>", "TokenType.shiftRight",
|
||||||
">>=", "TokenType.shiftRightEqual",
|
">>=", "TokenType.shiftRightEqual",
|
||||||
"*", "TokenType.star",
|
"*", "TokenType.star",
|
||||||
"?", "TokenType.ternary",
|
"?", "TokenType.ternary",
|
||||||
"~", "TokenType.tilde",
|
"~", "TokenType.tilde",
|
||||||
"!<>=", "TokenType.unordered",
|
"!<>=", "TokenType.unordered",
|
||||||
">>>", "TokenType.unsignedShiftRight",
|
">>>", "TokenType.unsignedShiftRight",
|
||||||
">>>=", "TokenType.unsignedShiftRightEqual",
|
">>>=", "TokenType.unsignedShiftRightEqual",
|
||||||
"^", "TokenType.xor",
|
"^", "TokenType.xor",
|
||||||
"^=", "TokenType.xorEquals",
|
"^=", "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 '/':
|
case '/':
|
||||||
auto r = range.save();
|
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 ~= "\tsize_t i = 0;\n";
|
||||||
}
|
}
|
||||||
caseStatement ~= indentString;
|
caseStatement ~= indentString;
|
||||||
caseStatement ~= "\tbuffer[i++] = '";
|
caseStatement ~= "\tkeepChar();\n";
|
||||||
caseStatement ~= k;
|
|
||||||
caseStatement ~= "';\n";
|
|
||||||
caseStatement ~= indentString;
|
|
||||||
caseStatement ~= "\t++index;\n";
|
|
||||||
caseStatement ~= indentString;
|
|
||||||
caseStatement ~= "\trange.popFront();\n";
|
|
||||||
if (v.children.length > 0)
|
if (v.children.length > 0)
|
||||||
{
|
{
|
||||||
caseStatement ~= indentString;
|
caseStatement ~= indentString;
|
||||||
|
|
Loading…
Reference in New Issue