]> git.decadent.org.uk Git - ion3.git/blob - libtu/tester2.c
[svn-inject] Installing original source of ion3
[ion3.git] / libtu / tester2.c
1 /*
2  * libtu/tester2.c
3  *
4  * Copyright (c) Tuomo Valkonen 1999-2002. 
5  *
6  * You may distribute and modify this library under the terms of either
7  * the Clarified Artistic License or the GNU LGPL, version 2.1 or later.
8  */
9
10 #include <stdio.h>
11
12 #include "misc.h"
13 #include "tokenizer.h"
14 #include "parser.h"
15 #include "util.h"
16
17
18 static bool test_fn(Tokenizer *tokz, int n, Token *toks)
19 {
20     printf("test_fn() %d %s\n", n, TOK_IDENT_VAL(toks)); 
21     
22     return TRUE;
23 }
24
25
26
27 static bool sect_fn(Tokenizer *tokz, int n, Token *toks)
28 {
29     printf("sect_fn() %d %s\n", n, TOK_IDENT_VAL(toks+1));
30     
31     return TRUE;
32 }
33
34
35 static bool test2_fn(Tokenizer *tokz, int n, Token *toks)
36 {
37     printf("test2_fn() %d %s %f\n", n, TOK_BOOL_VAL(toks+1) ? "TRUE" : "FALSE", TOK_DOUBLE_VAL(toks+2));
38
39     return TRUE;
40 }
41
42 static bool test3_fn(Tokenizer *tokz, int n, Token *toks)
43 {
44     if(n<=2)
45         printf("test3_fn() %d \"%s\"\n", n, TOK_STRING_VAL(toks+1));
46     else
47         printf("test3_fn() %d \"%s\" %ld\n", n, TOK_STRING_VAL(toks+1), TOK_LONG_VAL(toks+2));
48
49     return TRUE;
50 }
51     
52     
53 static ConfOpt opts[]={
54     {"test", NULL, test_fn, NULL},
55     {"t2", "bd", test2_fn, NULL},
56     {"foo", "s?l", test3_fn, NULL},
57     {"sect", "s", sect_fn, opts},
58     {NULL, NULL, NULL, NULL}
59 };
60
61              
62 int main(int argc, char *argv[])
63 {
64     libtu_init(argv[0]);
65     parse_config_file(stdin, opts, TOKZ_ERROR_TOLERANT);
66     
67     return EXIT_SUCCESS;
68 }
69