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
|
||||
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>
|
||||
* <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;
|
||||
|
|
Loading…
Reference in New Issue