Table

lua 言語のテーブルであるとともに Lexer の内部でも使っている。

struct Node {
  TValue i_val;
  TKey i_key;
} Node;

struct Table {
  CommonHeader;
  lu_byte flags;     /* 1<<p means tagmethod(p) is not present */
  lu_byte lsizenode; /* log2 of size of `node' array */
  struct Table *metatable;
  TValue *array; /* array part */
  Node *node;
  Node *lastfree; /* any free position is before this position */
  GCObject *gclist;
  int sizearray; /* size of `array' array */
};