diff options
Diffstat (limited to 'source3/aparser/header.awk')
-rw-r--r-- | source3/aparser/header.awk | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/source3/aparser/header.awk b/source3/aparser/header.awk deleted file mode 100644 index ba7117436b..0000000000 --- a/source3/aparser/header.awk +++ /dev/null @@ -1,80 +0,0 @@ -# produce a header file for a parsed struct file - -function header_elstring(elnum, - LOCAL, elem) -{ - array_len = elements[elnum, "array_len"]; - elem=elements[elnum, "elem"]; - if (elements[elnum, "ptr"]=="1") elem="*"elem; - if (array_len!="") { - if (is_constant(array_len) == 1) { - elem=elem"["array_len"]"; - } else { - elem="*"elem; - } - } - return elem; -} - -function header_element(f, elnum, - LOCAL, type) -{ - type=elements[elnum, "type"]; - if (substr(type,1,1) == ".") return; - xprintf(f,"\t%s %s;\n", type, header_elstring(elnum)); -} - -function header_union(f, elnum, - LOCAL, i) -{ - xprintf(f,"\tunion {\n"); - for (i=0;i<unions[elnum, "num_elems"];i++) { - header_element(f, unions[elnum, i]); - } - xprintf(f,"\t} %s;\n", header_elstring(elnum)); -} - -function header_elem(f, elnum) -{ - - if (elements[elnum, "type"] == "union") { - header_union(f, elnum); - } else { - header_element(f, elnum); - } -} - -function header_struct(f, struct_num, - LOCAL, i) -{ - xprintf(f,"/* structure %s */\n", - structs[struct_num, "name"]); - xprintf(f,"typedef struct {\n"); - for (i=0;i < structs[struct_num, "num_elems"];i++) { - header_elem(f, structs[struct_num, i]); - } - xprintf(f,"} %s;\n\n\n", structs[struct_num, "name"]); -} - - -function produce_headers(f, NIL, - LOCAL, i) -{ - xprintf(f,"/* auto-generated headers for %s */\n\n\n", module); - xprintf(f,"#ifndef _%s_\n", module); - xprintf(f,"#define _%s_\n", module); - - xprintf(f,"\n\n"); - for (i=0;i < num_options;i++) { - xprintf(f,"#define OPTION_%s %s\n", - options[i, "name"], options[i, "value"]); - } - xprintf(f,"\n\n"); - - for (i=0;i < num_structs;i++) { - header_struct(f, i); - } - xprintf(f,"/* end auto-generated headers */\n\n"); - xprintf(f,"#endif /* _%s_ */\n", module); -} - |