2015-06-03 19:51:42 +09:00
|
|
|
module otya.smilebasic.token;
|
|
|
|
|
import otya.smilebasic.type;
|
|
|
|
|
enum TokenType
|
|
|
|
|
{
|
|
|
|
|
Unknown,
|
|
|
|
|
Integer,
|
|
|
|
|
Double,
|
|
|
|
|
String,
|
|
|
|
|
Plus,
|
|
|
|
|
Minus,
|
|
|
|
|
Mul,
|
|
|
|
|
Div,
|
|
|
|
|
Mod,
|
|
|
|
|
Or,
|
|
|
|
|
And,
|
|
|
|
|
Xor,
|
2015-06-04 19:31:47 +09:00
|
|
|
Not,
|
2015-06-03 19:51:42 +09:00
|
|
|
Print,
|
|
|
|
|
If,
|
2015-06-03 21:18:55 +09:00
|
|
|
LParen,
|
|
|
|
|
RParen,
|
2015-06-03 21:52:09 +09:00
|
|
|
Iden,
|
|
|
|
|
Comma,
|
2015-06-04 19:31:47 +09:00
|
|
|
Colon,
|
|
|
|
|
Semicolon,
|
2015-06-03 19:51:42 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct Token
|
|
|
|
|
{
|
|
|
|
|
TokenType type;
|
|
|
|
|
Value value;
|
|
|
|
|
this(TokenType t, Value v)
|
|
|
|
|
{
|
|
|
|
|
type = t;
|
|
|
|
|
value = v;
|
|
|
|
|
}
|
2015-06-03 20:59:47 +09:00
|
|
|
this(TokenType t)
|
|
|
|
|
{
|
|
|
|
|
type = t;
|
|
|
|
|
}
|
2015-06-03 19:51:42 +09:00
|
|
|
}
|