Fix wide-char parsing
This commit is contained in:
@@ -16,8 +16,8 @@ class Lexical
|
|||||||
int line;
|
int line;
|
||||||
void initReservedWordsTable()
|
void initReservedWordsTable()
|
||||||
{
|
{
|
||||||
table = new TokenType[256];
|
table = new TokenType[65536];
|
||||||
for(int i = 0;i<256;i++)
|
for(int i = 0;i<65536;i++)
|
||||||
{
|
{
|
||||||
table[i] = TokenType.Unknown;
|
table[i] = TokenType.Unknown;
|
||||||
}
|
}
|
||||||
@@ -125,7 +125,7 @@ class Lexical
|
|||||||
for(;i < code.length;i++)
|
for(;i < code.length;i++)
|
||||||
{
|
{
|
||||||
c = code[i];
|
c = code[i];
|
||||||
if(table[cast(char)c] == TokenType.NewLine) break;
|
if(table[c] == TokenType.NewLine) break;
|
||||||
}
|
}
|
||||||
token = Token(TokenType.NewLine);
|
token = Token(TokenType.NewLine);
|
||||||
if (i >= code.length)
|
if (i >= code.length)
|
||||||
@@ -203,7 +203,7 @@ class Lexical
|
|||||||
for(;i < code.length;i++)
|
for(;i < code.length;i++)
|
||||||
{
|
{
|
||||||
c = code[i];
|
c = code[i];
|
||||||
if(table[cast(char)c] == TokenType.NewLine) break;
|
if(table[c] == TokenType.NewLine) break;
|
||||||
}
|
}
|
||||||
token = Token(TokenType.NewLine);
|
token = Token(TokenType.NewLine);
|
||||||
if (i >= code.length)
|
if (i >= code.length)
|
||||||
@@ -336,11 +336,11 @@ class Lexical
|
|||||||
i += 2;
|
i += 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(table[cast(char)c] == TokenType.Unknown)
|
if(table[c] == TokenType.Unknown)
|
||||||
{
|
{
|
||||||
//error
|
//error
|
||||||
}
|
}
|
||||||
token = Token(table[cast(char)c]);
|
token = Token(table[c]);
|
||||||
i++;
|
i++;
|
||||||
//CRLFだった
|
//CRLFだった
|
||||||
if(token.type == TokenType.NewLine)
|
if(token.type == TokenType.NewLine)
|
||||||
|
|||||||
Reference in New Issue
Block a user