From 32a7cf9188672b0c4766056eb762972f8488aa8e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 15 May 2000 13:41:05 +0000 Subject: started update to handle arbitrary arrays note: this code is currently broken. (This used to be commit 15646ebd84ee4e63a251c87800677f3dd2ae6971) --- source3/aparser/dump.awk | 61 +++++++++++++++++------------- source3/aparser/header.awk | 49 ++++++++++++------------ source3/aparser/main.awk | 10 +---- source3/aparser/parsefn.awk | 54 ++++++++++++++++---------- source3/aparser/parser.c | 8 ++-- source3/aparser/parsetree.awk | 63 ++++++++++++++++++++----------- source3/aparser/spool.struct | 44 ++------------------- source3/aparser/templates/prs_pointer.tpl | 3 +- 8 files changed, 147 insertions(+), 145 deletions(-) (limited to 'source3/aparser') diff --git a/source3/aparser/dump.awk b/source3/aparser/dump.awk index 0a72bb8414..65e5675513 100644 --- a/source3/aparser/dump.awk +++ b/source3/aparser/dump.awk @@ -1,39 +1,50 @@ # dump the current parse tree -function dump_union(f, struct_num, union, - LOCAL, i) + +function element_string(elnum, + LOCAL, elem) +{ + elem = elements[elnum, "elem"]; + if (elements[elnum, "ptr"]=="1") elem="*"elem; + if (elements[elnum, "array_len"]!="") + elem=elem"["elements[elnum, "array_len"]"]"; + if (elements[elnum, "switch"]!="") + elem=elem"["elements[elnum, "switch"]"]"; + return elem; +} + +function dump_element(f, elnum, + LOCAL, elem, type) { - xprintf(f,"\tunion %s %s {\n", - structs[struct_num, "unions", union, "switch"], - union); - for (i=0;i@ELEM@)) goto fail; + if (!prs_pointer("@ELEM@_ptr", ps, depth+1, + (void **)&il->@ELEM@, True)) goto fail; -- cgit