trunk/src/lib/util/plaparse.c
| r241916 | r241917 | |
| 69 | 69 | // find first digit |
| 70 | 70 | while (*cursrc < srcend && !iscrlf(**cursrc) && !isdigit(**cursrc)) |
| 71 | 71 | (*cursrc)++; |
| 72 | if (*cursrc >= srcend) |
| 73 | return 0; |
| 72 | 74 | |
| 73 | 75 | // loop over and accumulate digits |
| 74 | 76 | while (isdigit(**cursrc)) |
| r241916 | r241917 | |
| 160 | 162 | break; |
| 161 | 163 | |
| 162 | 164 | case ' ': case '\t': |
| 163 | | if (curinput > 0) |
| 165 | if (curinput > 0 && !outputs) |
| 164 | 166 | { |
| 165 | 167 | outputs = true; |
| 166 | 168 | if (LOG_PARSE) printf(" "); |
| r241916 | r241917 | |
| 202 | 204 | switch (**cursrc) |
| 203 | 205 | { |
| 204 | 206 | // number of inputs |
| 205 | | case 'i': |
| 207 | case 'i': case 'I': |
| 206 | 208 | pinfo->inputs = suck_number(cursrc, srcend); |
| 207 | 209 | if (pinfo->inputs == 0 || pinfo->inputs >= (JED_MAX_FUSES/2)) |
| 208 | 210 | return false; |
| r241916 | r241917 | |
| 211 | 213 | break; |
| 212 | 214 | |
| 213 | 215 | // number of outputs |
| 214 | | case 'o': |
| 216 | case 'o': case 'O': |
| 215 | 217 | pinfo->outputs = suck_number(cursrc, srcend); |
| 216 | 218 | if (pinfo->outputs == 0 || pinfo->outputs >= (JED_MAX_FUSES/2)) |
| 217 | 219 | return false; |
| r241916 | r241917 | |
| 219 | 221 | if (LOG_PARSE) printf("Outputs: %u\n", pinfo->outputs); |
| 220 | 222 | break; |
| 221 | 223 | |
| 222 | | case 'p': |
| 224 | case 'p': case 'P': |
| 223 | 225 | // output polarity (optional) |
| 224 | | if ((*cursrc)[1] == 'h' && (*cursrc)[2] == 'a' && (*cursrc)[3] == 's' && (*cursrc)[4] == 'e') |
| 226 | if (tolower((*cursrc)[1]) == 'h' && tolower((*cursrc)[2]) == 'a' && tolower((*cursrc)[3]) == 's' && tolower((*cursrc)[4]) == 'e') |
| 225 | 227 | { |
| 226 | 228 | if (LOG_PARSE) printf("Phase...\n"); |
| 227 | 229 | while (*cursrc < srcend && !iscrlf(**cursrc) && pinfo->xorptr < (JED_MAX_FUSES/2)) |
| r241916 | r241917 | |
| 250 | 252 | break; |
| 251 | 253 | |
| 252 | 254 | // end of file (optional) |
| 253 | | case 'e': |
| 255 | case 'e': case 'E': |
| 254 | 256 | if (LOG_PARSE) printf("End of file\n"); |
| 255 | 257 | break; |
| 256 | 258 | |