Mercurial > hg > Members > kono > os9 > sbc09
comparison a09.c @ 46:ec9f494497e1
vdisk fix
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 20 Jul 2018 11:48:19 +0900 |
parents | b8fa36c04ff7 |
children | 51b437557f42 |
comparison
equal
deleted
inserted
replaced
45:07c84761da6f | 46:ec9f494497e1 |
---|---|
69 int gline; | 69 int gline; |
70 int change; | 70 int change; |
71 struct longer *next; | 71 struct longer *next; |
72 } *lglist = 0; | 72 } *lglist = 0; |
73 | 73 |
74 void makelonger(int gl) { | |
75 for(struct longer *p=lglist;p;p=p->next) { | |
76 if (p->gline==gl) { // already fixed | |
77 p->change = 1; | |
78 return; | |
79 } | |
80 } | |
81 struct longer *p = (struct longer *)calloc(sizeof(struct longer *),1); | |
82 p->gline=gl; | |
83 p->next = lglist; | |
84 lglist = p; | |
85 } | |
86 | |
87 int longer() { | |
88 for(struct longer *p=lglist;p;p=p->next) { | |
89 if (p->change == 0) return 1; | |
90 } | |
91 return 0; | |
92 } | |
93 | 74 |
94 struct oprecord{char * name; | 75 struct oprecord{char * name; |
95 unsigned char cat; | 76 unsigned char cat; |
96 unsigned short code;}; | 77 unsigned short code;}; |
97 | 78 |
349 int errors; /* number of errors */ | 330 int errors; /* number of errors */ |
350 char exprcat; /* category of expression being parsed, eg. | 331 char exprcat; /* category of expression being parsed, eg. |
351 label or constant, this is important when | 332 label or constant, this is important when |
352 generating relocatable object code. */ | 333 generating relocatable object code. */ |
353 | 334 |
335 void makelonger(int gl) { | |
336 if (pass==1) return; | |
337 for(struct longer *p=lglist;p;p=p->next) { | |
338 if (p->gline==gl) { // already fixed | |
339 p->change = 1; | |
340 return; | |
341 } | |
342 } | |
343 struct longer *p = (struct longer *)calloc(sizeof(struct longer *),1); | |
344 p->gline=gl; | |
345 p->next = lglist; | |
346 lglist = p; | |
347 } | |
348 | |
349 int longer() { | |
350 for(struct longer *p=lglist;p;p=p->next) { | |
351 if (p->change == 0) return 1; | |
352 } | |
353 return 0; | |
354 } | |
354 void generate() | 355 void generate() |
355 { | 356 { |
356 generating = 1; | 357 generating = 1; |
357 if (rmbmode) { | 358 if (rmbmode) { |
358 rmbcounter = loccounter; | 359 rmbcounter = loccounter; |