Given:
Code: Select all
enum Token_type
tk_eoi
tk_if
...
tk_variable
end enum
type Atr_s
tok as Token_type
text as string
right_associative as boolean
is_binary as boolean
is_unary as boolean
precedence as integer
end type
dim shared atr(tk_eoi to tk_variable) as Atr_s
Code: Select all
atr(tk_eoi ).tok = tk_eoi
atr(tk_if ).tok = tk_if
...
atr(tk_variable).tok = tk_variable
atr(tk_eoi ).text = "EOI"
atr(tk_if ).text = "if"
...
atr(tk_variable).text = "Variable"
atr(tk_eoi ).right_associative = false
atr(tk_if ).right_associative = false
...
atr(tk_variable).right_associative = false
atr(tk_eoi ).is_binary = false
atr(tk_if ).is_binary = false
...
atr(tk_variable).is_binary = false
atr(tk_eoi ).is_unary = false
atr(tk_if ).is_unary = false
...
atr(tk_variable).is_unary = false
atr(tk_eoi ).precedence = -1
atr(tk_if ).precedence = -1
...
atr(tk_variable).precedence = -1
Code: Select all
struct {
TokenType tok;
char *text;
bool right_associative, is_binary, is_unary;
int precedence;
} atr[] = {
{EOI, "EOI" , false, false, false, -1},
{If, "If" , false, false, false, -1},
...
{Variable, "Variable", false, false, false, -1},
};
Any ideas?
Thanks!