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)して,メンバを初期化する。