This is vs_test.m in view mode; [Download] [Up]
#import <stdio.h> #import "ValueStack.h" main() { /* Local Variables */ char choice; unsigned long size; id stack; double value; printf("\t1 - Create stack\n"); printf("\t2 - Free stack\n"); printf("\t3 - Push value\n"); printf("\t4 - Peek value\n"); printf("\t5 - Pop value\n"); printf("\t6 - Get stack size\n"); printf("\t7 - Print stack\n"); printf("\t8 - Clear stack\n"); printf("\tq - quit\n"); choice = ' '; while ( choice != 'q' ) { if (choice != '\n') printf("\n\tEnter choice: "); choice = getc(stdin); switch (choice) { case '1': /* create stack */ stack = [[ValueStack alloc] init]; break; case '2': /* Free stack */ [stack free]; break; case '3': /* Push value */ printf("\tEnter value: "); scanf("%lf", &value); if ([stack Push:value] == nil) printf("Push failed\n"); break; case '4': /* Peek value */ if ([stack Peek:&value] == nil) printf("Peek failed\n"); else printf("Peek value = %lf\n", value); break; case '5': /* Pop value */ if ([stack Pop:&value] == nil) printf("Pop failed\n"); else printf("Pop value = %lf\n", value); break; case '6': /* Get stack size */ size = [stack GetSize]; printf("Stack size = %ld\n", size); break; case '7': /* Print stack */ [stack PrintStack]; break; case '8': /* Clear stack */ [stack ClearStack]; break; case 'q': /* quit */ break; case '\n': break; default: /* display menu */ printf("\t1 - Create stack\n"); printf("\t2 - Free stack\n"); printf("\t3 - Push value\n"); printf("\t4 - Peek value\n"); printf("\t5 - Pop value\n"); printf("\t6 - Get stack size\n"); printf("\t7 - Print stack\n"); printf("\t8 - Clear stack\n"); printf("\tq - quit\n"); break; }/*switch*/ }/*while*/ }/* END main */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.