node

・nodes.h: makeNode(_type_)
nodeを作成するマクロ。
newNode()を実行する。
makeNode(Var)とすると,((Var *)newNode(sizeof(Var), T_Var))に展開される。

・node.h: newNode(size, tag)
指定したsizeのメモリをpalloc0fast()で確保して,typeフィールドに,
tag名(T_Varなど)を設定する。

・node.h: nodeTag()
nodeのtypeを返すマクロ。

・node.c:
node.hのnewNodeマクロで使用する,newNodeMacroHolderの実体を定義。
このファイルは,newNodeMacroHolderのためだけにある。

・primnodes.h:
primitive node(Var, Exprなど)のデータ型を定義。

・copyfuncs.c:
nodeをcopyするための関数群。

・copyfuncs.c: copyObject()
nodeをコピーする。
switch(nodeTag())で,nodeの種別ごとのコピー関数を実行する。
例えばT_Varのときは,_copyVar()を実行する。

・makefuncs.c:
nodeを作成するための関数群。

・makefuncs.c: makeVar
Varを作成する。
makeNode(Var)して,メンバを初期化する。