comparison baum.c @ 7:6a6152cf63f7

new implementation of the read input function
author meillo@marmaro.de
date Sat, 09 Feb 2008 11:57:16 +0100
parents ab87b154a96b
children 495a56e706dc
comparison
equal deleted inserted replaced
6:ab87b154a96b 7:6a6152cf63f7
180 } 180 }
181 181
182 182
183 /* read input */ 183 /* read input */
184 void read_input(char* filename) { 184 void read_input(char* filename) {
185 FILE* fp; 185 FILE* file;
186 char c; 186 int c;
187 char* line; 187 char* cp;
188 int indent; 188 int indent = 0;
189 char* name; 189 char name[256];
190 int value; 190 int value;
191 191
192 fp = fopen(filename, "r"); 192 file = fopen(filename, "r");
193 indent = 0; 193
194 194
195 while ((c = getc(fp)) != EOF) { 195 while ((c = getc(file)) != EOF) {
196 if (c == '#') {
197 printf("c\n");
198 while ((c = getc(file)) != '\n') {
199 }
200 }
201
196 if (c == ' ' || c == '\t') { 202 if (c == ' ' || c == '\t') {
197 indent++; 203 indent++;
198 } else if (c == '(') { 204 }
199 fscanf(fp, "%d", &value); 205
200 } else if (c == '\n') { 206 if (c == '\n') {
201 207 if (strlen(name) > 0) {
202 if (strcmp(name, "") != 0) { 208 printf(" %d - %s - %d\n", indent, name, value);
203 printf("\nindent: %d\nname: %s\nvalue: %d\n", indent, name, value); 209 /*
210 */
211 } else {
212 printf("comment\n");
204 } 213 }
205 indent = 0; 214 indent = 0;
206 strcpy(name, ""); 215 strcpy(name, "");
207 value = 0; 216 value = 0;
208 } else { 217 }
209 fscanf(fp, "%[a-z]", name); 218
210 } 219 if (c >= 'a' && c <= 'z') {
211 } 220 int i = 1;
221 name[0] = (char) c;
222 while ((c = getc(file)) != '(') {
223 /*putc(c, stdout);*/
224 name[i] = (char) c;
225 i++;
226 }
227 name[i] = '\0';
228 }
229
230 if (c == '(') {
231 fscanf(file, "%d)", &value);
232 }
233
234 }
235
236 fclose(file);
212 } 237 }
213 238
214 /* main */ 239 /* main */
215 int main(int argc, char* argv[]) { 240 int main(int argc, char* argv[]) {
216 unsigned char shell_return; 241 unsigned char shell_return = 0;
217 /* 242 /*
218 init(); 243 init();
219 244
220 printTree(root); 245 printTree(root);
221 fprintf(stderr, "\n\n"); 246 fprintf(stderr, "\n\n");