indentation fixes and unit test updates
This commit is contained in:
parent
7a8964d8b5
commit
59c6557c45
43
tokenizer.d
43
tokenizer.d
|
@ -424,12 +424,12 @@ body
|
||||||
switch (input.front)
|
switch (input.front)
|
||||||
{
|
{
|
||||||
case 'w':
|
case 'w':
|
||||||
t.type = TokenType.StringLiteral;
|
t.type = TokenType.WStringLiteral;
|
||||||
input.popFront();
|
input.popFront();
|
||||||
++index;
|
++index;
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
t.type = TokenType.StringLiteral;
|
t.type = TokenType.DStringLiteral;
|
||||||
input.popFront();
|
input.popFront();
|
||||||
++index;
|
++index;
|
||||||
break;
|
break;
|
||||||
|
@ -456,6 +456,12 @@ unittest
|
||||||
assert (lexString(b, i, l) == "ab\ncd");
|
assert (lexString(b, i, l) == "ab\ncd");
|
||||||
auto c = "`abc\\ndef`";
|
auto c = "`abc\\ndef`";
|
||||||
assert (lexString(c, i, l, false) == "abc\\ndef");
|
assert (lexString(c, i, l, false) == "abc\\ndef");
|
||||||
|
auto d = `"12345"w`;
|
||||||
|
assert (lexString(d, i, l).type == TokenType.WStringLiteral);
|
||||||
|
auto e = `"abc"c`;
|
||||||
|
assert (lexString(e, i, l).type == TokenType.StringLiteral);
|
||||||
|
auto f = `"abc"d`;
|
||||||
|
assert (lexString(f, i, l).type == TokenType.DStringLiteral);
|
||||||
}
|
}
|
||||||
|
|
||||||
Token lexNumber(R)(ref R input, ref uint index, const uint lineNumber)
|
Token lexNumber(R)(ref R input, ref uint index, const uint lineNumber)
|
||||||
|
@ -520,7 +526,7 @@ Token lexBinary(R)(ref R input, ref uint index, const uint lineNumber,
|
||||||
case 'u':
|
case 'u':
|
||||||
case 'U':
|
case 'U':
|
||||||
if (isUnsigned)
|
if (isUnsigned)
|
||||||
break;
|
break binaryLoop;
|
||||||
app.put(input.front);
|
app.put(input.front);
|
||||||
input.popFront();
|
input.popFront();
|
||||||
++index;
|
++index;
|
||||||
|
@ -561,10 +567,41 @@ unittest
|
||||||
{
|
{
|
||||||
uint i;
|
uint i;
|
||||||
uint l;
|
uint l;
|
||||||
|
|
||||||
auto a = "0b000101";
|
auto a = "0b000101";
|
||||||
auto ar = lexNumber(a, i, l);
|
auto ar = lexNumber(a, i, l);
|
||||||
assert (ar.value == "0b000101");
|
assert (ar.value == "0b000101");
|
||||||
assert (a == "");
|
assert (a == "");
|
||||||
|
|
||||||
|
auto b = "0b001L_";
|
||||||
|
auto br = lexNumber(b, i, l);
|
||||||
|
assert (br.value == "0b001L");
|
||||||
|
assert (br.type == TokenType.LongLiteral);
|
||||||
|
|
||||||
|
auto c = "0b1101uLL";
|
||||||
|
auto cr = lexNumber(c, i, l);
|
||||||
|
assert (cr.value == "0b1101uL");
|
||||||
|
assert (cr.type == TokenType.UnsignedLongLiteral);
|
||||||
|
|
||||||
|
auto d = "0b1q";
|
||||||
|
auto dr = lexNumber(d, i, l);
|
||||||
|
assert (dr.value == "0b1");
|
||||||
|
assert (dr.type == TokenType.IntLiteral);
|
||||||
|
|
||||||
|
auto e = "0b1_0_1LU";
|
||||||
|
auto er = lexNumber(e, i, l);
|
||||||
|
assert (er.value == "0b1_0_1LU");
|
||||||
|
assert (er.type == TokenType.UnsignedLongLiteral);
|
||||||
|
|
||||||
|
auto f = "0b1_0_1uU";
|
||||||
|
auto fr = lexNumber(f, i, l);
|
||||||
|
assert (fr.value == "0b1_0_1u");
|
||||||
|
assert (fr.type == TokenType.UnsignedIntLiteral);
|
||||||
|
|
||||||
|
auto g = "0b1_0_1LL";
|
||||||
|
auto gr = lexNumber(g, i, l);
|
||||||
|
assert (gr.value == "0b1_0_1L");
|
||||||
|
assert (gr.type == TokenType.LongLiteral);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue