static void PrintExprBinary(FLispString &out, ZCC_TreeNode *node) { ZCC_ExprBinary *enode = (ZCC_ExprBinary *)node; OpenExprType(out, enode->Operation); PrintNodes(out, enode->Left); PrintNodes(out, enode->Right); out.Close(); }
static void PrintClassType(FLispString &out, ZCC_TreeNode *node) { ZCC_ClassType *tnode = (ZCC_ClassType *)node; out.Open("class-type"); PrintNodes(out, tnode->ArraySize); PrintNodes(out, tnode->Restriction); out.Close(); }
static void PrintLocalVarStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_LocalVarStmt *snode = (ZCC_LocalVarStmt *)node; out.Open("local-var-stmt"); PrintNodes(out, snode->Type); PrintNodes(out, snode->Vars); out.Close(); }
static void PrintAssignStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_AssignStmt *snode = (ZCC_AssignStmt *)node; out.Open("assign-stmt"); PrintNodes(out, snode->Dests); PrintNodes(out, snode->Sources); out.Close(); }
static void PrintDynArrayType(FLispString &out, ZCC_TreeNode *node) { ZCC_DynArrayType *tnode = (ZCC_DynArrayType *)node; out.Open("dyn-array-type"); PrintNodes(out, tnode->ArraySize); PrintNodes(out, tnode->ElementType); out.Close(); }
static void PrintStates(FLispString &out, ZCC_TreeNode *node) { ZCC_States *snode = (ZCC_States *)node; out.Break(); out.Open("states"); PrintNodes(out, snode->Flags, false, true); PrintNodes(out, snode->Body, false, true); out.Close(); }
static void PrintVectorInitializer(FLispString &out, ZCC_TreeNode *node) { ZCC_VectorValue *enode = (ZCC_VectorValue *)node; OpenExprType(out, enode->Operation); PrintNodes(out, enode->X); PrintNodes(out, enode->Y); PrintNodes(out, enode->Z); out.Close(); }
static void PrintStaticArray(FLispString &out, ZCC_TreeNode *node) { ZCC_StaticArrayStatement *enode = (ZCC_StaticArrayStatement *)node; out.Open("static-array-stmt"); PrintNodes(out, enode->Type, false); out.AddName(enode->Id); PrintNodes(out, enode->Values, false); out.Close(); }
static void PrintExprFuncCall(FLispString &out, ZCC_TreeNode *node) { ZCC_ExprFuncCall *enode = (ZCC_ExprFuncCall *)node; assert(enode->Operation == PEX_FuncCall); out.Open("expr-func-call"); PrintNodes(out, enode->Function); PrintNodes(out, enode->Parameters, false); out.Close(); }
static void PrintMapType(FLispString &out, ZCC_TreeNode *node) { ZCC_MapType *tnode = (ZCC_MapType *)node; out.Open("map-type"); PrintNodes(out, tnode->ArraySize); PrintNodes(out, tnode->KeyType); PrintNodes(out, tnode->ValueType); out.Close(); }
static void PrintStateGoto(FLispString &out, ZCC_TreeNode *node) { ZCC_StateGoto *snode = (ZCC_StateGoto *)node; out.Open("state-goto"); PrintNodes(out, snode->Qualifier); PrintNodes(out, snode->Label); PrintNodes(out, snode->Offset); out.Close(); }
static void PrintPropertyStmt(FLispString &out, ZCC_TreeNode *node) { auto dnode = (ZCC_PropertyStmt *)node; out.Break(); out.Open("property-stmt"); PrintNodes(out, dnode->Prop, false); PrintNodes(out, dnode->Values, false); out.Close(); }
static void PrintVarDeclarator(FLispString &out, ZCC_TreeNode *node) { ZCC_VarDeclarator *dnode = (ZCC_VarDeclarator *)node; out.Break(); out.Open("var-declarator"); out.AddHex(dnode->Flags); PrintNodes(out, dnode->Type); PrintNodes(out, dnode->Names); out.Close(); }
static void PrintSwitchStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_SwitchStmt *snode = (ZCC_SwitchStmt *)node; out.Break(); out.Open("switch-stmt"); PrintNodes(out, snode->Condition); out.Break(); PrintNodes(out, snode->Content, false); out.Close(); }
static void PrintVarInit(FLispString &out, ZCC_TreeNode *node) { ZCC_VarInit *vnode = (ZCC_VarInit *)node; out.Open("var-init"); PrintNodes(out, vnode->ArraySize); PrintNodes(out, vnode->Init); if (vnode->InitIsArray) out.Add("array", 5); out.AddName(vnode->Name); out.Close(); }
static void PrintFuncParamDecl(FLispString &out, ZCC_TreeNode *node) { ZCC_FuncParamDecl *dnode = (ZCC_FuncParamDecl *)node; out.Break(); out.Open("func-param-decl"); PrintNodes(out, dnode->Type); out.AddName(dnode->Name); out.AddHex(dnode->Flags); PrintNodes(out, dnode->Default); out.Close(); }
static void PrintClass(FLispString &out, ZCC_TreeNode *node) { ZCC_Class *cnode = (ZCC_Class *)node; out.Break(); out.Open("class"); out.AddName(cnode->NodeName); PrintNodes(out, cnode->ParentName); PrintNodes(out, cnode->Replaces); out.AddHex(cnode->Flags); PrintNodes(out, cnode->Body, false, true); out.Close(); }
static void PrintIfStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_IfStmt *snode = (ZCC_IfStmt *)node; out.Break(); out.Open("if-stmt"); PrintNodes(out, snode->Condition); out.Break(); PrintNodes(out, snode->TruePath); out.Break(); PrintNodes(out, snode->FalsePath); out.Close(); }
static void PrintBasicType(FLispString &out, ZCC_TreeNode *node) { ZCC_BasicType *tnode = (ZCC_BasicType *)node; out.Open("basic-type"); PrintNodes(out, tnode->ArraySize); PrintBuiltInType(out, tnode->Type); if (tnode->Type == ZCC_UserType || tnode->Type == ZCC_NativeType) { if (tnode->Type == ZCC_NativeType) out.Add("@", 1); PrintNodes(out, tnode->UserType, false); } out.Close(); }
static void PrintFuncDeclarator(FLispString &out, ZCC_TreeNode *node) { ZCC_FuncDeclarator *dnode = (ZCC_FuncDeclarator *)node; out.Break(); out.Open("func-declarator"); out.AddHex(dnode->Flags); PrintNodes(out, dnode->UseFlags); PrintNodes(out, dnode->Type); out.AddName(dnode->Name); PrintNodes(out, dnode->Params); PrintNodes(out, dnode->Body, false); out.Close(); }
static void PrintIterationStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_IterationStmt *snode = (ZCC_IterationStmt *)node; out.Break(); out.Open("iteration-stmt"); out.Add((snode->CheckAt == ZCC_IterationStmt::Start) ? "start" : "end"); out.Break(); PrintNodes(out, snode->LoopCondition); out.Break(); PrintNodes(out, snode->LoopBumper); out.Break(); PrintNodes(out, snode->LoopStatement); out.Close(); }
static void PrintExprUnary(FLispString &out, ZCC_TreeNode *node) { ZCC_ExprUnary *enode = (ZCC_ExprUnary *)node; OpenExprType(out, enode->Operation); PrintNodes(out, enode->Operand, false); out.Close(); }
static void PrintStateLine(FLispString &out, ZCC_TreeNode *node) { ZCC_StateLine *snode = (ZCC_StateLine *)node; out.Open("state-line"); out.Add(*(snode->Sprite)); PrintNodes(out, snode->Duration); if (snode->bNoDelay) out.Add("nodelay", 7); if (snode->bBright) out.Add("bright", 6); if (snode->bFast) out.Add("fast", 4); if (snode->bSlow) out.Add("slow", 4); if (snode->bCanRaise) out.Add("canraise", 8); out.Add(*(snode->Frames)); PrintNodes(out, snode->Offset); PrintNodes(out, snode->Action, false); out.Close(); }
static void PrintType(FLispString &out, ZCC_TreeNode *node) { ZCC_Type *tnode = (ZCC_Type *)node; out.Open("bad-type"); PrintNodes(out, tnode->ArraySize); out.Close(); }
main() { NodePtr top = NULL; NodePtr temp; int i; /* create the stack */ for(i = 0; i < ITER; i++) Push(&top, i + 1); /* delete the top node */ if (top) { printf("Top node datum is %d,\n", top->data); /* get top node */ temp = top; /* advance to next node before deleting */ top = top->link; /* delete top node by freeing temp */ free(temp); printf("This node has been deleted.\n"); } else printf("The stack is empty.\n"); /* print the stack */ PrintNodes(top); }
static void PrintCompoundStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_CompoundStmt *snode = (ZCC_CompoundStmt *)node; out.Break(); out.Open("compound-stmt"); PrintNodes(out, snode->Content, false, true); out.Close(); }
static void PrintDefault(FLispString &out, ZCC_TreeNode *node) { ZCC_Default *snode = (ZCC_Default *)node; out.Break(); out.Open("default"); PrintNodes(out, snode->Content, false, true); out.Close(); }
static void PrintExpressionStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_ExpressionStmt *snode = (ZCC_ExpressionStmt *)node; out.Break(); out.Open("expression-stmt"); PrintNodes(out, snode->Expression, false); out.Close(); }
static void PrintReturnStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_ReturnStmt *snode = (ZCC_ReturnStmt *)node; out.Break(); out.Open("return-stmt"); PrintNodes(out, snode->Values, false); out.Close(); }
static void PrintCaseStmt(FLispString &out, ZCC_TreeNode *node) { ZCC_CaseStmt *snode = (ZCC_CaseStmt *)node; out.Break(); out.Open("case-stmt"); PrintNodes(out, snode->Condition, false); out.Close(); }