/* * $Id: ctest.c,v 1.7 2003/10/29 12:48:07 jonas Exp $ */ #include #include #include #include void print_ituple(const char *str, int *ituple); void print_dtuple(const char *str, double *dtuple); void print_stuple(const char *str, char **stuple); int main(int argc, char *argv[]) { char str[80]; int i, integer, ituple[100], ier; double real, dtuple[100]; char *stuple[10]; switch (argc) { case(1): ier=init_parse("test.inp"); break; case(2): ier=init_parse(argv[1]); break; default: printf("usage: ctest [file]\n"); exit(1); break; } if (ier == FILE_ERROR) { printf("Invalid file.\n"); exit(1); } else if (ier == PARSE_ERROR) { printf("Parse error.\n"); exit(1); } set_active_section("FOOBAR"); get_str_kw("string", str); get_ival_kw("integer", &integer); get_dval_kw("double", &real); get_iarray_kw("tuple_i", ituple); get_darray_kw("tuple_d", dtuple); printf("string=%s\n", str); printf("integer=%d\n", integer); printf("double=%f\n", real); print_ituple("tuple_i", ituple); print_dtuple("tuple_d", dtuple); get_ival_kw("BUZZ", &integer); printf("BUZZ: %d\n", integer); get_ival_kw("BUZZ.buzz", &integer); printf("BUZZ.buzz: %d\n", integer); get_iarray_kw("isect", ituple); print_ituple("isect", ituple); get_darray_kw("dsect", dtuple); print_dtuple("dsect", dtuple); for (i=0; i < 10; i++) { stuple[i]=(char *) calloc(100, sizeof(char *)); } reset_active_section(); get_sarray_kw("RABOOF", stuple); print_stuple("RABOOF", stuple); /* OK, you get the idea... Take a look at ftest.f90 for a complete * example. I'm to lazy to write the whole example... */ end_parse(); for (i=0; i < 10; i++) { free(stuple[i]); } return 0; } void print_ituple(const char *str, int *ituple) { int i, n; get_kw_size(str, &n); printf(" %s size %d\n", str, n); printf("%s=(", str); for (i=0; i < n-1; i++) { printf("%d,", ituple[i]); } printf("%d)\n", ituple[i]); } void print_dtuple(const char *str, double *dtuple) { int i, n; get_kw_size(str, &n); printf(" %s size %d\n", str, n); printf("%s=(", str); for (i=0; i < n-1; i++) { printf("%f,", dtuple[i]); } printf("%f)\n", dtuple[i]); } void print_stuple(const char *str, char **stuple) { int i, n; get_kw_size(str, &n); printf(" %s size %d\n", str, n); printf("%s=(", str); for (i=0; i < n-1; i++) { printf("%s,", stuple[i]); } printf("%s)\n", stuple[i]); }