COMMON DEFをパースできるようにした
This commit is contained in:
@@ -75,6 +75,7 @@ class Lexical
|
|||||||
reserved["TRUE"] = TokenType.True;
|
reserved["TRUE"] = TokenType.True;
|
||||||
reserved["FALSE"] = TokenType.False;
|
reserved["FALSE"] = TokenType.False;
|
||||||
reserved["CALL"] = TokenType.Call;
|
reserved["CALL"] = TokenType.Call;
|
||||||
|
reserved["COMMON"] = TokenType.Common;
|
||||||
reserved.rehash();
|
reserved.rehash();
|
||||||
}
|
}
|
||||||
this(wstring input)
|
this(wstring input)
|
||||||
@@ -526,7 +527,20 @@ class Parser
|
|||||||
{
|
{
|
||||||
auto token = lex.front();
|
auto token = lex.front();
|
||||||
Statement statement;
|
Statement statement;
|
||||||
if(token.type == TokenType.Def)
|
if(token.type == TokenType.Common)
|
||||||
|
{
|
||||||
|
lex.popFront();
|
||||||
|
token = lex.front();
|
||||||
|
if (token.type != TokenType.Def)
|
||||||
|
{
|
||||||
|
syntaxError();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
statement = defineFunction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(token.type == TokenType.Def)
|
||||||
{
|
{
|
||||||
statement = defineFunction();
|
statement = defineFunction();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ enum TokenType
|
|||||||
Use,
|
Use,
|
||||||
Exec,
|
Exec,
|
||||||
Call,
|
Call,
|
||||||
|
Common,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Token
|
struct Token
|
||||||
|
|||||||
Reference in New Issue
Block a user