Changeset 5875
- Timestamp:
- 29/04/09 18:44:10 (3 years ago)
- Location:
- trunk
- Files:
-
- 2 removed
- 8 modified
-
AISC/aisc.c (modified) (6 diffs)
-
AISC/aisc.h (modified) (2 diffs)
-
AISC/aisc_commands.c (modified) (49 diffs)
-
AISC/aisc_mix.c (modified) (2 diffs)
-
AISC/aisc_proto.h (modified) (3 diffs)
-
AISC/aisc_var_ref.c (modified) (5 diffs)
-
AISC_COM/Makefile (deleted)
-
AISC_COM/pb_com.aisc (deleted)
-
NAMES_COM/Makefile (modified) (1 diff)
-
PROBE_COM/Makefile (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/AISC/aisc.c
r5844 r5875 7 7 8 8 const int linebufsize = 200000; 9 char error_buf[256];9 char string_buf[256]; 10 10 11 11 struct global_struct *gl; … … 46 46 47 47 48 void 49 aisc_init() 48 static void aisc_init() 50 49 { 51 50 int i; … … 129 128 } 130 129 131 void p_err(const char *error) {130 static void p_err(const char *error) { 132 131 fprintf(stderr, "%s:%i: Error: %s\n", gl->line_path, gl->line_cnt, error); 133 132 gl->error_flag = 1; 134 133 } 135 134 136 void p_err_eof (void){ p_err("Unexpected end of file seen"); }137 void p_error_brih (void){ p_err("You tried to insert a bracket in a named field"); } 138 void p_error_nobr (void){ p_err("{} found, missing contents"); }139 void p_error_nocbr (void){ p_err("missing '}'"); }140 void p_error_emwbr (void){ p_err("string expected, ',' found"); }141 void p_error_hewnoid (void){ p_err("string expected, ';' found"); }142 void p_error_mixhnh (void){ p_err("you cannot use the symbol '@' in this line (or it must be the third symbol in the line)"); }143 void p_error_misscom (void){ p_err("missing ';'"); }144 void p_error_missco (void){ p_err("missing ',' or ';' or 'newline'"); }145 void p_error_exp_string(void){ p_err("string expected"); }146 147 char *read_aisc_string(char ** in, int *is_m) {135 static void p_err_eof (void){ p_err("Unexpected end of file seen"); } 136 /* static void p_error_brih (void){ p_err("You tried to insert a bracket in a named field"); } */ 137 static void p_error_nobr (void){ p_err("{} found, missing contents"); } 138 static void p_error_nocbr (void){ p_err("missing '}'"); } 139 static void p_error_emwbr (void){ p_err("string expected, ',' found"); } 140 static void p_error_hewnoid (void){ p_err("string expected, ';' found"); } 141 static void p_error_mixhnh (void){ p_err("you cannot use the symbol '@' in this line (or it must be the third symbol in the line)"); } 142 static void p_error_misscom (void){ p_err("missing ';'"); } 143 static void p_error_missco (void){ p_err("missing ',' or ';' or 'newline'"); } 144 static void p_error_exp_string(void){ p_err("string expected"); } 145 146 static char *read_aisc_string(char ** in, int *is_m) { 148 147 char *cp; 149 148 char buf[1024]; … … 277 276 return (char *) strdup(buf); 278 277 } 279 AD *make_AD(void) 280 { 281 return (AD *) calloc(sizeof(AD), 1); 282 } 283 HS *make_HS(void) 284 { 285 return (HS *) calloc(sizeof(HS), 1); 286 } 287 CL *make_CL(void) 288 { 289 return (CL *) calloc(sizeof(CL), 1); 290 } 278 279 static AD *make_AD(void) { return (AD *) calloc(sizeof(AD), 1); } 280 static HS *make_HS(void) { return (HS *) calloc(sizeof(HS), 1); } 281 CL *make_CL(void) { return (CL *) calloc(sizeof(CL), 1); } 291 282 292 283 #define ITEM_MAKE hitem = make_AD();if (item) { \ … … 296 287 }; item = hitem; item->first_item = first_item; 297 288 298 AD *read_aisc_line(char ** in, HS ** hs)289 static AD *read_aisc_line(char ** in, HS ** hs) 299 290 { /* lese bis zum ;/} */ 300 291 static int is_m; … … 463 454 } 464 455 465 CL *read_prog(char ** in,char *file)456 static CL *read_prog(char ** in,char *file) 466 457 { 467 458 char *p; -
trunk/AISC/aisc.h
r2991 r5875 112 112 113 113 extern struct global_struct *gl; 114 extern char error_buf[256];114 extern char string_buf[256]; 115 115 #define READ_SPACES(var) while(gl->s3_tab[(unsigned)(*var)]) var++; 116 116 #define READ_RSPACES(var) while(gl->s3_tab[(unsigned)(*(--var))]); … … 122 122 #define END_STR2 ')' 123 123 124 #include "aisc_proto.h" 124 125 126 #define aisc_assert(cond) do { if (!(cond)) { *(char*)NULL = 0; } } while(0) /* core dump */ 125 127 128 // #define SHOW_CALLER // show where error was raised 129 130 #ifdef SHOW_CALLER 131 #define print_error(err) print_error_internal(err, __FILE__, __LINE__) 132 #define print_warning(err) print_warning_internal(err, __FILE__, __LINE__) 133 #define printf_error(format, arg) print_error_internal(formatted(format, arg), __FILE__, __LINE__) 134 #else 135 #define print_error(err) print_error_internal(err, NULL, 0) 136 #define print_warning(err) print_warning_internal(err, NULL, 0) 137 #define printf_error(format, arg) print_error_internal(formatted(format, arg), NULL, 0) 138 #endif -
trunk/AISC/aisc_commands.c
r5844 r5875 10 10 #include "aisc_proto.h" 11 11 12 int contains_tabs = 0; 13 14 int print_error(const char *err) { 15 /* fprintf(stderr, "ERROR: %s: line %i in file %s\n", err, gl->pc->linenr, gl->pc->path); */ 16 fprintf(stderr, "%s:%i: Error: %s\n", gl->pc->path, gl->pc->linenr, err); 17 return 1; 12 int contains_tabs = 0; 13 static int error_count = 0; 14 15 void print_error_internal(const char *err, const char *launcher_file, int launcher_line) { 16 fprintf(stderr, "./%s:%i: Error: %s\n", gl->pc->path, gl->pc->linenr, err); 17 if (launcher_file) fprintf(stderr, "../AISC/%s:%i: error was launched from here\n", launcher_file, launcher_line); 18 error_count++; 19 } 20 21 void print_warning_internal(const char *err, const char *launcher_file, int launcher_line) { 22 fprintf(stderr, "./%s:%i: Warning: %s\n", gl->pc->path, gl->pc->linenr, err); 23 if (launcher_file) fprintf(stderr, "../AISC/%s:%i: error was launched from here\n", launcher_file, launcher_line); 18 24 } 19 25 20 26 #define ERRBUFSIZE 200 21 22 int printf_error(const char *format, ...) { 27 const char *formatted(const char *format, ...) { 23 28 /* goes to header: __ATTR__FORMAT(1) */ 29 24 30 static char *errbuf = 0; 25 31 if (!errbuf) { errbuf = (char*)malloc(ERRBUFSIZE+1); } … … 29 35 int chars = vsprintf(errbuf, format, argPtr); 30 36 if (chars>ERRBUFSIZE) { 31 fprintf(stderr, "%s:%i: Error buffer overflow!\n", __FILE__, __LINE__);37 fprintf(stderr, "%s:%i: Error: Buffer overflow!\n", __FILE__, __LINE__); 32 38 vfprintf(stderr, format, argPtr); 33 39 fputc('\n', stderr); … … 38 44 va_end(argPtr); 39 45 40 return print_error(errbuf); 41 } 42 46 return errbuf; 47 } 43 48 #undef ERRBUFSIZE 44 49 45 void memcopy(char *dest, const char *source, int len)50 static void memcopy(char *dest, const char *source, int len) 46 51 { 47 52 int i; … … 65 70 } 66 71 67 char *find_string(const char *str,const char *key)72 static char *find_string(const char *str,const char *key) 68 73 { 69 74 const char *p1,*p2; … … 84 89 } 85 90 86 char *calc_rest_line(/*const*/ char *str, int size, int presize) 87 { /* wertet einen Puffer str aus , str[-1] muss exestieren !!! */ 91 static char *calc_rest_line(/*const*/ char *str, int size, int presize) 92 { 93 /* wertet einen Puffer str aus , str[-1] muss exestieren !!! */ 88 94 char *ld; 89 95 char *p; … … 131 137 fi = strpbrk(path, "+,"); 132 138 if (!fi) { 133 print_error("NO '+,;' found in ADD FUN KTION");139 print_error("NO '+,;' found in ADD FUNCTION"); 134 140 return 0; 135 141 } 136 142 *(fi++) = 0; 137 143 READ_SPACES(fi); 138 sprintf( error_buf, "%li", atol(path) + atol(fi));139 fi = strdup( error_buf);144 sprintf(string_buf, "%li", atol(path) + atol(fi)); 145 fi = strdup(string_buf); 140 146 }else if (*p == '*') { 141 147 path = p + 1; … … 143 149 fi = strpbrk(path, "*,"); 144 150 if (!fi) { 145 print_error("NO '*,;' found in ADD FUN KTION");151 print_error("NO '*,;' found in ADD FUNCTION"); 146 152 return 0; 147 153 } 148 154 *(fi++) = 0; 149 155 READ_SPACES(fi); 150 sprintf( error_buf, "%li", atol(path) * atol(fi));151 fi = strdup( error_buf);156 sprintf(string_buf, "%li", atol(path) * atol(fi)); 157 fi = strdup(string_buf); 152 158 } else if (*p == '#') { 153 159 if (!strncmp(p, "#FILE", 5)) { … … 206 212 207 213 208 int 209 calc_line(char *str, char *buf) 214 static int calc_line(char *str, char *buf) 210 215 { 211 216 char *ld; … … 225 230 } 226 231 227 int 228 calc_line2(char *str, char *buf) 232 static int calc_line2(char *str, char *buf) 229 233 { /* erstes $( nicht auswerten ) !!! */ 230 234 char *ld; … … 251 255 } 252 256 253 void 254 write_aisc(AD * ad, FILE * out, int deep) 257 static void write_aisc(AD * ad, FILE * out, int deep) 255 258 { 256 259 AD *item, *line; … … 279 282 } 280 283 281 void 282 write_prg(CL * cl, FILE * out, int deep)284 /* 285 static void write_prg(CL * cl, FILE * out, int deep) 283 286 { 284 287 CL *line; … … 290 293 } 291 294 } 292 293 294 int 295 do_com_dbg(char *str) 295 */ 296 297 static int do_com_dbg(char *str) 296 298 { 297 299 write_aisc(gl->root, stdout, 0); … … 299 301 return 0; 300 302 } 301 int 302 do_com_data(char *str) 303 static int do_com_data(char *str) 303 304 { 304 305 char *in; … … 319 320 } 320 321 321 int 322 do_com_write(FILE * out, char *str) 322 static int do_com_write(FILE * out, char *str) 323 323 { 324 324 char *p; … … 380 380 p = strchr(p, '@'); 381 381 if (!p) { 382 print f_error("expected '@' after '@SETSOURCE' (injected code)");382 print_error("expected '@' after '@SETSOURCE' (injected code)"); 383 383 return 1; 384 384 } … … 401 401 } 402 402 403 int 404 do_com_print(char *str) 403 static int do_com_print(char *str) 405 404 { 406 405 do_com_write(gl->out, str); 407 406 return 0; 408 407 } 409 int 410 do_com_print2(char *str) 408 static int do_com_print2(char *str) 411 409 { 412 410 do_com_write(stdout, str); … … 414 412 } 415 413 416 int 417 do_com_tabstop(char *str) 414 static int do_com_tabstop(char *str) 418 415 { 419 416 int ts, i; … … 429 426 } 430 427 431 int 432 do_com_tab(char *str) 428 static int do_com_tab(char *str) 433 429 { 434 430 int ts, val; … … 450 446 } 451 447 452 int 453 do_com_error(char *str) 448 static int do_com_error(char *str) 454 449 { 455 450 print_error(str); 456 451 return 1; 457 452 } 458 int do_com_open(char *str) 453 454 static int do_com_open(char *str) 459 455 { 460 456 FILE *file; … … 469 465 } 470 466 if (strlen(fn) < 3) { 471 print _error("Filename too short (<3)");467 printf_error("Filename '%s' too short (<3)", fn); 472 468 return 1; 473 469 } 474 470 for (i = 0; i < OPENFILES; i++) { 475 471 if (gl->fouts[i]) { 476 if ( !strcmp(gl->fouts[i], str)) {477 print _error("File already opened");472 if (strcmp(gl->fouts[i], str) == 0) { 473 printf_error("File '%s' already opened", str); 478 474 return 1; 479 475 } … … 486 482 } 487 483 if (i == OPENFILES) { 488 print_error("Too many Files open");484 print_error("Too many open files"); 489 485 return 1; 490 486 } 491 487 file = fopen(fn, "w"); 492 488 if (!file) { 493 print _error("Cannot open File");489 printf_error("Cannot open file '%s'", fn); 494 490 return 1; 495 491 } … … 517 513 } 518 514 519 int do_com_close(char *str)515 static int do_com_close(char *str) 520 516 { 521 517 int i; … … 541 537 } 542 538 543 int do_com_out(char *str)539 static int do_com_out(char *str) 544 540 { 545 541 int i; … … 554 550 } 555 551 } 556 print _error("File not opened for OUT Command");552 printf_error("File '%s' not opened for OUT Command", str); 557 553 return 1; 558 554 } 559 555 560 int do_com_moveto(char *str)556 static int do_com_moveto(char *str) 561 557 { 562 558 AD *fo; … … 590 586 } 591 587 592 int do_com_set(char *str)588 static int do_com_set(char *str) 593 589 { 594 590 char *st; … … 611 607 def = read_hash_local(st,&hs); 612 608 if (!def) { 613 sprintf(error_buf, "not defined Ident '%s' in SET (use CREATE first)", st); 614 print_error(error_buf); 609 printf_error("undefined Ident '%s' in SET (use CREATE first)", st); 615 610 return 1; 616 611 } … … 624 619 } 625 620 626 int do_com_create(char *str)621 static int do_com_create(char *str) 627 622 { 628 623 char *st; … … 643 638 def = read_hash( gl->st->hs,st); 644 639 if (def) { 645 sprintf(error_buf, "Ident '%s' in CREATE already defined", st); 646 print_error(error_buf); 640 printf_error("Ident '%s' in CREATE already defined", st); 647 641 return 1; 648 642 } … … 656 650 } 657 651 658 int 659 do_com_if(char *str) 652 static int do_com_if(char *str) 660 653 { 661 654 char *equ; … … 663 656 char *la; 664 657 char *kom2; 665 int op = 0; /* 0= 1~ 2< 3> !+8 */ 658 659 int op = 0; /* 0= 1~ 2< 3> !+8 */ 666 660 for (equ = str;*equ;equ++) { 667 661 if (*equ =='=') { op = 0; break;} … … 670 664 if (*equ =='>') { op = 3; break;}*/ 671 665 } 672 if (equ[-1] == '!') op +=8;673 666 la = equ; 674 if (!*la) return 0; 667 if (!*la) { // no operator found -> assume condition true, even if empty or undefined 668 return 0; 669 } 670 671 aisc_assert(equ>str); 672 if (equ[-1] == '!') op += 8; 673 675 674 READ_RSPACES(la); 676 675 *(++la) = 0; … … 690 689 case 1: if ( find_string(str, equ)) return 0; break; 691 690 case 9: if (!find_string(str, equ)) return 0; break; 692 case 2: if (strcmp(str, equ)< 0) return 0; break; 693 case 10:if (strcmp(str, equ)>=0) return 0; break; 694 case 3: if (strcmp(str, equ)> 0) return 0; break; 695 case 11:if (strcmp(str, equ)<=0) return 0; break; 691 /* case 2: if (strcmp(str, equ)< 0) return 0; break; */ 692 /* case 10:if (strcmp(str, equ)>=0) return 0; break; */ 693 /* case 3: if (strcmp(str, equ)> 0) return 0; break; */ 694 /* case 11:if (strcmp(str, equ) <= 0) return 0; break; */ 695 default : 696 printf_error("Unhandled operator (op=%i)", op); 697 return 1; 696 698 } 697 699 equ = kom2; 698 700 } 699 gl->nextpc = gl->pc->ELSE->next; 700 return 0; 701 } 702 703 int do_com_for_add(CL *co) 701 702 // condition wrong -> goto else 703 gl->nextpc = gl->pc->ELSE->next; 704 return 0; 705 } 706 707 static int do_com_for_add(CL *co) 704 708 { 705 709 struct for_data_struct *fd; … … 710 714 } 711 715 712 int do_com_for_sub(CL *co)716 static int do_com_for_sub(CL *co) 713 717 { 714 718 struct for_data_struct *fd; … … 738 742 } 739 743 740 int do_com_pop(const char *str)744 static int do_com_pop(const char *str) 741 745 { 742 746 struct stack_struct *st; … … 754 758 } 755 759 756 int do_com_gosub(char *str)760 static int do_com_gosub(char *str) 757 761 { 758 762 char *fn; … … 773 777 fn = read_hash(gl->fns,str); 774 778 if (!fn) { 775 print _error("Funktion not found");779 printf_error("Function '%s' not found", str); 776 780 return 1; 777 781 } … … 784 788 for (para = params; *para;para=npara,fpara=nfpara){ 785 789 if (!*fpara) { 786 sprintf(error_buf,"Too many Parameters %s",para); 787 print_error(error_buf); 790 printf_error("Too many Parameters %s",para); 788 791 return 1; 789 792 } … … 795 798 *s = 0; 796 799 s = read_hash( gl->st->hs,para); 797 if (s) { sprintf(error_buf,"duplikated formal parameter %s",para);798 print _error(error_buf);800 if (s) { 801 printf_error("duplicated formal parameter %s", para); 799 802 return 1; 800 803 } … … 802 805 } 803 806 if (*fpara) { 804 sprintf(error_buf,"Too less Parameters %s",fpara); 805 print_error(error_buf); 807 printf_error("Not enough parameters '%s'", fpara); 806 808 return 1; 807 809 } … … 811 813 } 812 814 813 int do_com_goto(char *str)815 static int do_com_goto(char *str) 814 816 { 815 817 char *fn; 816 818 fn = read_hash(gl->fns,str); 817 819 if (!fn) { 818 print _error("Function not found");820 printf_error("Function '%s' not found", str); 819 821 return 1; 820 822 } … … 823 825 } 824 826 825 int do_com_return(char *str)827 static int do_com_return(char *str) 826 828 { 827 829 gl->nextpc = gl->st->pc->next; … … 830 832 return 0; 831 833 } 832 int do_com_exit(char *str)834 static int do_com_exit(char *str) 833 835 { 834 836 str = str; … … 836 838 } 837 839 838 int 839 do_com_for(char *str) 840 static int do_com_for(char *str) 840 841 { 841 842 AD *fo; … … 872 873 p = (char *) read_hash_local(st, &hs); 873 874 if (!p) { 874 sprintf(error_buf, "not defined Ident '%s' in FOR (use CREATE first)", st); 875 print_error(error_buf); 875 printf_error("Undefined Ident '%s' in FOR (use CREATE first)", st); 876 876 return 1; 877 877 } 878 sprintf( error_buf, "%li", gl->pc->fd->forval);879 write_hash(hs, st, error_buf);878 sprintf(string_buf, "%li", gl->pc->fd->forval); 879 write_hash(hs, st, string_buf); 880 880 gl->pc->fd->forstr = strdup(st); 881 881 } else { … … 902 902 } 903 903 904 int do_com_next(const char *str)904 static int do_com_next(const char *str) 905 905 { 906 906 AD *fo; … … 925 925 gl->nextpc = gl->pc->FOR->next; 926 926 p = read_hash_local(gl->pc->FOR->fd->forstr,&hs); 927 sprintf( error_buf, "%li", gl->pc->FOR->fd->forval);928 write_hash(hs, gl->pc->FOR->fd->forstr, error_buf);927 sprintf(string_buf, "%li", gl->pc->FOR->fd->forval); 928 write_hash(hs, gl->pc->FOR->fd->forstr, string_buf); 929 929 } 930 930 … … 934 934 } 935 935 936 #define COMMAND(str,string,len,func) \937 if ( string[0] == str[0] && !strncmp(string,str,len)) { \938 char *s=str+len; \939 READ_SPACES(s); \940 if (func(s)) break; \941 continue; \942 } 943 944 #define COMMAND_NOFAIL(str,string,len,func) \945 if ( string[0] == str[0] && !strncmp(string,str,len)) { \946 char *s=str+len; \947 READ_SPACES(s); \948 if (func(s)) return -1; \949 continue; \950 } 951 952 #define COMMAND2(str,string,len,func) \953 if ( string[0] == str[0] && !strncmp(string,str,len)) { \954 char *s=str+len; \955 if (func(s)) break; \956 continue; \957 } 958 959 #define COMMAND2_NOFAIL(str,string,len,func) \960 if (string[0] == str[0] && !strncmp(string,str,len)) { \961 char *s=str+len; \962 if (func(s)) return -1; \963 continue; \936 #define COMMAND(str,string,len,func) \ 937 if ( string[0] == str[0] && !strncmp(string,str,len)) { \ 938 char *s=str+len; \ 939 READ_SPACES(s); \ 940 if (func(s)) break; \ 941 continue; \ 942 } 943 944 #define COMMAND_NOFAIL(str,string,len,func) \ 945 if ( string[0] == str[0] && !strncmp(string,str,len)) { \ 946 char *s=str+len; \ 947 READ_SPACES(s); \ 948 if (func(s)) return -1; \ 949 continue; \ 950 } 951 952 #define COMMAND2(str,string,len,func) \ 953 if ( string[0] == str[0] && !strncmp(string,str,len)) { \ 954 char *s=str+len; \ 955 if (func(s)) break; \ 956 continue; \ 957 } 958 959 #define COMMAND2_NOFAIL(str,string,len,func) \ 960 if (string[0] == str[0] && !strncmp(string,str,len)) { \ 961 char *s=str+len; \ 962 if (func(s)) return -1; \ 963 continue; \ 964 964 } 965 965 … … 976 976 break; 977 977 } 978 978 979 if (do_com_if(gl->linebuf)) 979 980 return 1; … … 1027 1028 return err; 1028 1029 1029 COMMAND2(gl->linebuf,"PRINT",5,do_com_print) 1030 COMMAND2(gl->linebuf,"P ",2,do_com_print) 1031 COMMAND2(gl->linebuf,"P\t",2,do_com_print) 1032 COMMAND(gl->linebuf,"GOSUB",5,do_com_gosub) 1033 COMMAND(gl->linebuf,"CALL",4,do_com_gosub) 1034 COMMAND(gl->linebuf,"GOTO",4,do_com_goto) 1035 COMMAND(gl->linebuf,"RETURN",6,do_com_return) 1036 COMMAND(gl->linebuf,"PUSH",4,do_com_push) 1037 COMMAND(gl->linebuf,"POP",3,do_com_pop) 1038 COMMAND(gl->linebuf,"CONTINUE",8,do_com_next) 1039 1040 1041 COMMAND(gl->linebuf,"OPEN",4,do_com_open) 1042 COMMAND(gl->linebuf,"CLOSE",5,do_com_close) 1043 COMMAND(gl->linebuf,"OUT",3,do_com_out) 1044 COMMAND2_NOFAIL(gl->linebuf,"ERROR",5,do_com_error) 1045 COMMAND(gl->linebuf,"TABSTOP",7,do_com_tabstop) 1046 COMMAND(gl->linebuf,"TAB",3,do_com_tab) 1047 COMMAND(gl->linebuf,"PP",2,do_com_print2) 1048 COMMAND(gl->linebuf,"EXIT",4,do_com_exit) 1049 COMMAND_NOFAIL(gl->linebuf,"DATA",4,do_com_data) 1050 COMMAND(gl->linebuf,"DBG",3,do_com_dbg) 1051 printf_error("Unknown Command '%s'", gl->pc->str); 1030 COMMAND2(gl->linebuf,"PRINT",5,do_com_print); 1031 COMMAND2(gl->linebuf,"P ",2,do_com_print); 1032 COMMAND2(gl->linebuf,"P\t",2,do_com_print); 1033 COMMAND(gl->linebuf,"GOSUB",5,do_com_gosub); 1034 COMMAND(gl->linebuf,"CALL",4,do_com_gosub); 1035 COMMAND(gl->linebuf,"GOTO",4,do_com_goto); 1036 COMMAND(gl->linebuf,"RETURN",6,do_com_return); 1037 COMMAND(gl->linebuf,"PUSH",4,do_com_push); 1038 COMMAND(gl->linebuf,"POP",3,do_com_pop); 1039 COMMAND(gl->linebuf,"CONTINUE",8,do_com_next); 1040 1041 1042 COMMAND(gl->linebuf,"OPEN",4,do_com_open); 1043 COMMAND(gl->linebuf,"CLOSE",5,do_com_close); 1044 COMMAND(gl->linebuf,"OUT",3,do_com_out); 1045 COMMAND2_NOFAIL(gl->linebuf,"ERROR",5,do_com_error); 1046 COMMAND(gl->linebuf,"TABSTOP",7,do_com_tabstop); 1047 COMMAND(gl->linebuf,"TAB",3,do_com_tab); 1048 COMMAND(gl->linebuf,"PP",2,do_com_print2); 1049 COMMAND(gl->linebuf,"EXIT",4,do_com_exit); 1050 COMMAND_NOFAIL(gl->linebuf,"DATA",4,do_com_data); 1051 COMMAND(gl->linebuf,"DBG",3,do_com_dbg); 1052 1053 printf_error("Unknown Command '%s'", gl->pc->str); 1052 1054 return -1; 1053 1055 } 1054 return 0; 1055 } 1056 1057 aisc_assert(error_count == 0); 1058 return 0; 1059 } -
trunk/AISC/aisc_mix.c
r5439 r5875 221 221 free(co->str); 222 222 co->str = s2; 223 sprintf( error_buf,"%li",(long)co);224 write_hash(gl->fns,buf2, error_buf);223 sprintf(string_buf,"%li",(long)co); 224 write_hash(gl->fns,buf2,string_buf); 225 225 continue; 226 226 } … … 232 232 free(co->str); 233 233 co->str = buf2; 234 sprintf( error_buf,"%li",(long)co);235 write_hash(gl->fns,buf2, error_buf);236 continue; 237 } 238 } 239 return 0; 240 } 241 242 int hash_index(const char *key, int size)234 sprintf(string_buf,"%li",(long)co); 235 write_hash(gl->fns,buf2,string_buf); 236 continue; 237 } 238 } 239 return 0; 240 } 241 242 static int hash_index(const char *key, int size) 243 243 { 244 244 int x; -
trunk/AISC/aisc_proto.h
r5126 r5875 27 27 /* aisc.c */ 28 28 char *read_aisc_file P_((char *path)); 29 void aisc_init P_((void));30 void p_err P_((const char *error));31 void p_err_eof P_((void));32 void p_error_brih P_((void));33 void p_error_nobr P_((void));34 void p_error_nocbr P_((void));35 void p_error_emwbr P_((void));36 void p_error_hewnoid P_((void));37 void p_error_mixhnh P_((void));38 void p_error_misscom P_((void));39 void p_error_missco P_((void));40 void p_error_exp_string P_((void));41 char *read_aisc_string P_((char **in, int *is_m));42 AD *make_AD P_((void));43 HS *make_HS P_((void));44 29 CL *make_CL P_((void)); 45 AD *read_aisc_line P_((char **in, HS **hs));46 30 AD *read_aisc P_((char **in)); 47 CL *read_prog P_((char **in, char *file));48 31 49 32 /* aisc_commands.c */ 50 int print_error P_((const char *err)); 51 int printf_error P_((const char *format, ...)) __ATTR__FORMAT(1); 52 void memcopy P_((char *dest, const char *source, int len)); 53 char *find_string P_((const char *str, const char *key)); 54 char *calc_rest_line P_((char *str, int size, int presize)); 55 int calc_line P_((char *str, char *buf)); 56 int calc_line2 P_((char *str, char *buf)); 57 void write_aisc P_((AD *ad, FILE *out, int deep)); 58 void write_prg P_((CL *cl, FILE *out, int deep)); 59 int do_com_dbg P_((char *str)); 60 int do_com_data P_((char *str)); 61 int do_com_write P_((FILE *out, char *str)); 62 int do_com_print P_((char *str)); 63 int do_com_print2 P_((char *str)); 64 int do_com_tabstop P_((char *str)); 65 int do_com_tab P_((char *str)); 66 int do_com_error P_((char *str)); 67 int do_com_open P_((char *str)); 33 void print_error_internal P_((const char *err, const char *launcher_file, int launcher_line)); 34 void print_warning_internal P_((const char *err, const char *launcher_file, int launcher_line)); 35 const char *formatted P_((const char *format, ...)) __ATTR__FORMAT(1); 68 36 void aisc_remove_files P_((void)); 69 int do_com_close P_((char *str));70 int do_com_out P_((char *str));71 int do_com_moveto P_((char *str));72 int do_com_set P_((char *str));73 int do_com_create P_((char *str));74 int do_com_if P_((char *str));75 int do_com_for_add P_((CL *co));76 int do_com_for_sub P_((CL *co));77 37 int do_com_push P_((const char *str)); 78 int do_com_pop P_((const char *str));79 int do_com_gosub P_((char *str));80 int do_com_goto P_((char *str));81 int do_com_return P_((char *str));82 int do_com_exit P_((char *str));83 int do_com_for P_((char *str));84 int do_com_next P_((const char *str));85 38 int run_prg P_((void)); 86 39 … … 88 41 CL *aisc_calc_blocks P_((CL *co, CL *afor, CL *aif, int up)); 89 42 int aisc_calc_special_commands P_((void)); 90 int hash_index P_((const char *key, int size));91 43 struct hash_struct *create_hash P_((int size)); 92 44 char *read_hash_local P_((char *key, struct hash_struct **hs)); … … 96 48 97 49 /* aisc_var_ref.c */ 98 AD *aisc_match P_((AD *var, char *varid, char *varct));99 50 AD *aisc_find_var_hier P_((AD *cursor, char *str, int next, int extended, int goup)); 100 51 AD *aisc_find_var P_((AD *cursor, char *str, int next, int extended, int goup)); -
trunk/AISC/aisc_var_ref.c
r5390 r5875 6 6 #include "aisc_proto.h" 7 7 8 AD *aisc_match(AD * var, char *varid, char *varct) {8 static AD *aisc_match(AD * var, char *varid, char *varct) { 9 9 if (varid) { 10 10 if (strcmp(var->key, varid)) { … … 168 168 return 0; 169 169 } 170 fprintf(stderr, "%s: ", var);171 print _error("Ident not found");170 /* fprintf(stderr, "%s: ", var); */ 171 printf_error("Ident '%s' not found", var); 172 172 return 0; 173 173 } … … 190 190 } else { 191 191 if (cur->sub) { 192 fprintf(stderr, "%s: ", var); 193 print_error("Ident is a Hierarchical Type"); 192 printf_error("Ident '%s' is a hierarchical type", var); 194 193 return 0; 195 194 } else { … … 210 209 *(nextdp++) = 0; 211 210 if (!doppelpunkt[0]) { 212 print_error("Ident Replacement is missing an '='");211 print_error("Ident replacement is missing an '='"); 213 212 return 0; 214 213 } … … 218 217 *(bar++) = 0; 219 218 } else { 220 print_error("Ident Replacement is missing an '='");219 print_error("Ident replacement is missing an '='"); 221 220 return 0; 222 221 } -
trunk/NAMES_COM/Makefile
r5873 r5875 11 11 AISC_SAVE = YES 12 12 13 # C++ Compiler 13 14 COMPILER = $(CPP) $(cflags) -I$(ARBHOME)/INCLUDE 14 15 CLIENTCOMPILER = $(COMPILER) 15 16 16 AISC_COMPILER=../AISC/aisc 17 # AISC dependencies 18 AISC_COMPILER=../MAKEBIN/aisc 19 AISC_DEPENDS = $(wildcard AISC/*.pa) $(AISC_COMPILER) 17 20 18 21 include AISC/export2sub 19 22 20 server.a: $(MAIN_SOURCE) $(PRIVATE_SERVER_OBJECTS:.o=.c) $(PUBLIC_SOURCES) $(AISC_ COMPILER)23 server.a: $(MAIN_SOURCE) $(PRIVATE_SERVER_OBJECTS:.o=.c) $(PUBLIC_SOURCES) $(AISC_DEPENDS) 21 24 @$(MAKE) -r -f AISC/Makefile 22 25 -
trunk/PROBE_COM/Makefile
r5873 r5875 11 11 AISC_SAVE := NO 12 12 13 # C++ Compiler 13 14 COMPILER := $(CPP) $(cflags) -I$(ARBHOME)/INCLUDE 14 15 CLIENTCOMPILER := $(COMPILER) 15 16 16 AISC_COMPILER=../AISC/aisc 17 # AISC dependencies 18 AISC_COMPILER=../MAKEBIN/aisc 19 AISC_DEPENDS = $(wildcard AISC/*.pa) $(AISC_COMPILER) 17 20 18 21 include AISC/export2sub 19 22 20 server.a: $(MAIN_SOURCE) $(PRIVATE_SERVER_OBJECTS:.o=.c) $(PUBLIC_SOURCES) $(AISC_ COMPILER)23 server.a: $(MAIN_SOURCE) $(PRIVATE_SERVER_OBJECTS:.o=.c) $(PUBLIC_SOURCES) $(AISC_DEPENDS) 21 24 @$(MAKE) -r -f AISC/Makefile 22 25
