Mercurial > hg-old > index.cgi
comparison lwasm/pragma.c @ 165:566943f98f8d
Made pragma actually take multiple pragmas on one line
author | lost |
---|---|
date | Sat, 31 Jan 2009 18:22:02 +0000 |
parents | b061350c17e4 |
children | 6ddc861a07d4 |
comparison
equal
deleted
inserted
replaced
164:586069fb17a1 | 165:566943f98f8d |
---|---|
61 char pragma[128]; | 61 char pragma[128]; |
62 int c = 0; | 62 int c = 0; |
63 | 63 |
64 while (isspace(**optr)) | 64 while (isspace(**optr)) |
65 (*optr)++; | 65 (*optr)++; |
66 | 66 |
67 while (c < 127 && **optr && !isspace(**optr)) | 67 pragmaagain: |
68 c = 0; | |
69 while (c < 127 && **optr && **optr != ',' && !isspace(**optr)) | |
68 { | 70 { |
69 pragma[c++] = **optr; | 71 pragma[c++] = **optr; |
70 (*optr)++; | 72 (*optr)++; |
71 } | 73 } |
72 | 74 |
73 if (c == 0 || (**optr && !isspace(**optr))) | 75 if (c == 0 || (**optr && **optr != ',' && !isspace(**optr))) |
74 { | 76 { |
75 if (error) | 77 if (error) |
76 { | 78 { |
77 register_error(as, cl, 1, "Unrecognized pragma"); | 79 register_error(as, cl, 1, "Unrecognized pragma"); |
78 } | 80 } |
116 { | 118 { |
117 *optr = NULL; | 119 *optr = NULL; |
118 } | 120 } |
119 } | 121 } |
120 } | 122 } |
123 if (**optr == ',') | |
124 { | |
125 (*optr)++; | |
126 goto pragmaagain; | |
127 } | |
121 } | 128 } |
122 | 129 |
123 OPFUNC(pseudo_pragma) | 130 OPFUNC(pseudo_pragma) |
124 { | 131 { |
125 pseudo_pragma_real(as, l, p, 1); | 132 pseudo_pragma_real(as, l, p, 1); |