Fixed stupid off-by-one errors

This commit is contained in:
Hackerpilot 2014-01-22 00:24:58 -08:00
parent 2c90f300fd
commit 62df18f489
1 changed files with 5 additions and 5 deletions

View File

@ -275,7 +275,7 @@ mixin template Lexer(IDType, Token, alias defaultTokenFunction,
} }
else if (pseudoTokens.countUntil(token) >= 0) else if (pseudoTokens.countUntil(token) >= 0)
{ {
if (token.length < 8) if (token.length <= 8)
{ {
code ~= " return " code ~= " return "
~ pseudoTokenHandlers[pseudoTokenHandlers.countUntil(token) + 1] ~ pseudoTokenHandlers[pseudoTokenHandlers.countUntil(token) + 1]
@ -283,7 +283,7 @@ mixin template Lexer(IDType, Token, alias defaultTokenFunction,
} }
else else
{ {
code ~= " if (range.peek(" ~ text(token.length) ~ ") == \"" ~ escape(token) ~"\")\n"; code ~= " if (range.peek(" ~ text(token.length - 1) ~ ") == \"" ~ escape(token) ~"\")\n";
code ~= " return " code ~= " return "
~ pseudoTokenHandlers[pseudoTokenHandlers.countUntil(token) + 1] ~ pseudoTokenHandlers[pseudoTokenHandlers.countUntil(token) + 1]
~ "();\n"; ~ "();\n";
@ -292,7 +292,7 @@ mixin template Lexer(IDType, Token, alias defaultTokenFunction,
else else
{ {
// possible default // possible default
if (token.length < 8) if (token.length <= 8)
{ {
code ~= " if (isSeparating(" ~ text(token.length) ~ "))\n"; code ~= " if (isSeparating(" ~ text(token.length) ~ "))\n";
code ~= " {\n"; code ~= " {\n";
@ -304,7 +304,7 @@ mixin template Lexer(IDType, Token, alias defaultTokenFunction,
} }
else else
{ {
code ~= " if (range.peek(" ~ text(token.length) ~ ") == \"" ~ escape(token) ~"\" && isSeparating(" ~ text(token.length) ~ "))\n"; code ~= " if (range.peek(" ~ text(token.length - 1) ~ ") == \"" ~ escape(token) ~"\" && isSeparating(" ~ text(token.length) ~ "))\n";
code ~= " {\n"; code ~= " {\n";
code ~= " range.popFrontN(" ~ text(token.length) ~ ");\n"; code ~= " range.popFrontN(" ~ text(token.length) ~ ");\n";
code ~= " return Token(tok!\"" ~ escape(token) ~ "\", null, line, column, index);\n"; code ~= " return Token(tok!\"" ~ escape(token) ~ "\", null, line, column, index);\n";
@ -386,7 +386,7 @@ mixin template Lexer(IDType, Token, alias defaultTokenFunction,
switch (frontBytes & 0x00000000_000000ff) switch (frontBytes & 0x00000000_000000ff)
{ {
mixin(tokenSearch); mixin(tokenSearch);
/+pragma(msg, tokenSearch);+/ // pragma(msg, tokenSearch);
default: default:
return defaultTokenFunction(); return defaultTokenFunction();
} }