(no commit message)
[geda-pcb/pcjc2.git] / src / resource.h
blob9385e6a0bd00a3bbd086f9ef8fcf3df95acadc42
1 #ifndef PCB_RESOURCE_H
2 #define PCB_RESOURCE_H
4 #include <stdio.h>
6 #ifdef __cplusplus
7 extern "C"
9 #endif
11 struct Resource;
13 typedef struct ResourceVal
15 char *name;
16 char *value;
17 struct Resource *subres;
18 } ResourceVal;
20 #define FLAG_V 1
21 #define FLAG_NV 2
22 #define FLAG_S 4
23 #define FLAG_NS 8
25 typedef struct Resource
27 struct Resource *parent;
28 void *user_ptr;
29 int flags;
30 int c; /* number of v[i] */
31 ResourceVal *v;
32 } Resource;
34 #define resource_type(resval) (((resval).name?100:0)+((resval).value?10:0)+((resval).subres?1:0))
36 /* res_parse.y */
38 /* Pass either filename OR stringtab. */
39 Resource *resource_parse (const char *filename, const char **stringtab);
40 char *resource_value (const Resource * res, char *name);
41 Resource *resource_subres (const Resource * res, const char *name);
43 Resource *resource_create (Resource * parent);
44 void resource_add_val (Resource * n, char *name, char *value,
45 Resource * subres);
47 void resource_dump (Resource * res);
49 #ifdef __cplusplus
51 #endif
53 #endif