diff options
Diffstat (limited to 'source3/aparser/main.awk')
-rw-r--r-- | source3/aparser/main.awk | 51 |
1 files changed, 8 insertions, 43 deletions
diff --git a/source3/aparser/main.awk b/source3/aparser/main.awk index 5d67f123c7..46acfe5c59 100644 --- a/source3/aparser/main.awk +++ b/source3/aparser/main.awk @@ -1,57 +1,22 @@ # the main program @include dump.awk -@include parsetree.awk @include header.awk @include util.awk @include template.awk @include parsefn.awk @include harness.awk - -/^module/ { - start_module($2); - next; -} - -/^test/ { - add_test($2); - next; -} - -/^struct.*\{/ { - start_struct($2); - next; -} - -/^[ \t]*union.*\{/ { - start_union($2); - next; -} - -/^[ \t]*case.*;/ { - split($0,a,"[ \t;]*"); - parse_case(a[3],a[4],a[5]); - next; -} - -/^\};/ { - end_struct(); - next; -} - -/^[ \t]*\}/ { - end_union(); - next; -} - -/.*;/ { - split($0,a,"[ \t;]*"); - add_struct_elem(a[2], a[3]); -} +@include parsetree.awk +@include token.awk END { - dump_structs("debug.out"); + dump_structs("dump.out"); + printf("Producing headers...\n"); produce_headers("prs_"module".h"); + printf("Producing parsers...\n"); produce_parsers("prs_"module".c"); + printf("Producing harness...\n"); produce_harness("test.h"); + printf("Done.\n"); + exit 0; } |