/* The function display buffer contents */ void display (Buffer *ptrBuffer){ printf("\nPrinting input buffer parameters:\n\n"); printf("The capacity of the buffer is: %d\n",b_getcapacity(ptrBuffer)); printf("The current size of the buffer is: %d\n",b_getsize(ptrBuffer)); printf("\nPrinting input buffer contents:\n\n"); b_print(ptrBuffer); }
int a(void) { int test; b_inc(); b_print(); printf("test addr: %p, func a %p\n", &test, a); return 0; }
/* The function display buffer contents */ void display (Buffer *ptrBuffer){ printf("\nPrinting input buffer parameters:\n\n"); printf("The capacity of the buffer is: %d\n",b_capacity(ptrBuffer)); printf("The current size of the buffer is: %d\n",b_size(ptrBuffer)); printf("The reallocation flag is: %d\n",b_rflag(ptrBuffer)); printf("\nPrinting input buffer contents:\n\n"); b_print(ptrBuffer); }
int b_printf(int argc, char *argv[],Shbltin_t *context) { struct print prdata; NOT_USED(argc); memset(&prdata,0,sizeof(prdata)); prdata.sh = context->shp; prdata.options = sh_optprintf; return(b_print(-1,argv,(Shbltin_t*)&prdata)); }
int b_printf(int argc, char *argv[],void *extra) { struct print prdata; NOT_USED(argc); memset(&prdata,0,sizeof(prdata)); prdata.sh = ((Shbltin_t*)extra)->shp; prdata.options = sh_optprintf; return(b_print(-1,argv,&prdata)); }
void display(Buffer *ptr_Buffer){ printf("\nPrinting buffer parameters:\n\n"); printf("The capacity of the buffer is: %d\n", b_capacity(ptr_Buffer)); printf("The current size of the buffer is: %d\n", b_size(ptr_Buffer)); printf("The operational mode of the buffer is: %d\n", b_mode(ptr_Buffer)); printf("The increment factor of the buffer is: %u\n", b_inc_factor(ptr_Buffer)); printf("The current mark of the buffer is: %d\n", b_mark(ptr_Buffer)); /*printf("The reallocation flag is: %d\n",b_rflag(ptr_Buffer));*/ printf("\nPrinting buffer contents:\n\n"); b_print(ptr_Buffer); }
int B_echo(int argc, char *argv[],Shbltin_t *context) { static char bsd_univ; struct print prdata; prdata.options = sh_optecho+5; prdata.raw = prdata.echon = 0; prdata.sh = context->shp; NOT_USED(argc); /* This mess is because /bin/echo on BSD is different */ if(!prdata.sh->universe) { register char *universe; if(universe=astconf("UNIVERSE",0,0)) bsd_univ = (strcmp(universe,"ucb")==0); prdata.sh->universe = 1; } if(!bsd_univ) return(b_print(0,argv,(Shbltin_t*)&prdata)); prdata.options = sh_optecho; prdata.raw = 1; while(argv[1] && *argv[1]=='-') { if(strcmp(argv[1],"-n")==0) prdata.echon = 1; #if !SHOPT_ECHOE else if(strcmp(argv[1],"-e")==0) prdata.raw = 0; else if(strcmp(argv[1],"-ne")==0 || strcmp(argv[1],"-en")==0) { prdata.raw = 0; prdata.echon = 1; } #endif /* SHOPT_ECHOE */ else break; argv++; } return(b_print(0,argv,(Shbltin_t*)&prdata)); }
/* main function takes a PLATYPUS source file as * an argument at the command line. * usage: scanner source_file_name" */ int main(int argc, char ** argv){ Buffer *sc_buf; /* pointer to input (source) buffer */ FILE *fi; /* input file handle */ Token t; /* token produced by the scanner */ int loadsize = 0; /*the size of the file loaded in the buffer */ int ansi_c = !ANSI_C; /* ANSI C compliancy flag */ /* Check if the compiler option is set to compile ANSI C */ /* __DATE__, __TIME__, __LINE__, __FILE__, __STDC__ are predefined preprocessor macros*/ if(ansi_c){ err_printf("Date: %s Time: %s",__DATE__, __TIME__); err_printf("ERROR: Compiler is not ANSI C compliant!\n"); exit(1); } /*check for correct arrguments - source file name */ if (argc <= 1){ /* __DATE__, __TIME__, __LINE__, __FILE__ are predefined preprocessor macros*/ err_printf("Date: %s Time: %s",__DATE__, __TIME__); err_printf("Runtime error at line %d in file %s", __LINE__, __FILE__); err_printf("%s%s%s",argv[0],": ","Missing source file name."); err_printf("%s%s%s","Usage: ", "scanner", " source_file_name"); exit(1); } /* create a source code input buffer - multiplicative mode */ sc_buf = b_create(INIT_CAPACITY,INC_FACTOR,'m'); if (sc_buf == NULL){ err_printf("%s%s%s",argv[0],": ","Could not create source buffer"); exit(1); } /*open source file */ if ((fi = fopen(argv[1],"r")) == NULL){ err_printf("%s%s%s%s",argv[0],": ", "Cannot open file: ",argv[1]); exit (1); } /* load source file into input buffer */ printf("Reading file %s ....Please wait\n",argv[1]); loadsize = b_load (fi,sc_buf); if(loadsize == R_FAIL_1) err_printf("%s%s%s",argv[0],": ","Error in loading buffer."); /* close source file */ fclose(fi); /*find the size of the file */ if (loadsize == LOAD_FAIL){ printf("The input file %s %s\n", argv[1],"is not completely loaded."); printf("Input file size: %ld\n", get_filesize(argv[1])); } /* pack and display the source buffer */ if(b_pack(sc_buf)){ display(sc_buf); } /* create string Literal Table */ str_LTBL = b_create(INIT_CAPACITY,INC_FACTOR,'a'); if (str_LTBL == NULL){ err_printf("%s%s%s",argv[0],": ","Could not create string literals buffer"); exit(1); } /*Testbed for the scanner */ /* add SEOF to input program buffer*/ b_addc(sc_buf,'\0'); /* Initialize scanner input buffer */ if(scanner_init(sc_buf)){; err_printf("%s%s%s",argv[0],": ","Empty program buffer - scanning canceled"); exit(1); } printf("\nScanning source file...\n\n"); printf("Token\t\tAttribute\n"); printf("----------------------------------\n"); do{ t= mlwpar_next_token(sc_buf); print_token(t); }while(t.code != SEOF_T); if(b_size(str_LTBL)) b_print(str_LTBL); b_destroy(sc_buf); b_destroy(str_LTBL); sc_buf = str_LTBL = NULL; return (0); }