diff options
Diffstat (limited to 'source3/aparser/token.awk')
-rw-r--r-- | source3/aparser/token.awk | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/source3/aparser/token.awk b/source3/aparser/token.awk deleted file mode 100644 index fb2982f077..0000000000 --- a/source3/aparser/token.awk +++ /dev/null @@ -1,180 +0,0 @@ -# tokenise the input file - -function parse_error(msg) { - printf("PARSE ERROR: %s\nLine "NR" : "$0"\n", msg); - exit 1; -} - -# ignore multi-line C comments. -{ - if (t = index($0, "/*")) { - if (t > 1) - tmp = substr($0, 1, t - 1) - else - tmp = "" - u = index(substr($0, t + 2), "*/") - while (u == 0) { - getline - t = -1 - u = index($0, "*/") - } - if (u <= length($0) - 2) - $0 = tmp substr($0, t + u + 3) - else - $0 = tmp - } -} - -# ignore blank lines -/^[ \t]*$/ { - next; -} - -/^\#define.*/ { - split($0,a,"[ \t;]*"); - parse_define(a[2], a[3]); - next; -} - -# ignore comments -/^[ \t]*\#/ { - next; -} - -/^[ \t]*module/ { - {if (module!="") parse_error("you can only specify one module name");} - start_module($2); - next; -} - -{if (module=="") parse_error("you must specify the module name first");} - -/^[ \t]*option/ { - set_option($2, $3); - next; -} - -/^[ \t]*typedef struct.*\{/ { - {if (current_struct!="") parse_error("you cannot have nested structures");} - start_struct($3); - next; -} - -/^[ \t]*struct.*\{/ { - {if (current_struct!="") parse_error("you cannot have nested structures");} - start_struct($2); - next; -} - -/^[ \t]*typedef union.*\{/ { - {if (current_struct!="") parse_error("this cannot appear inside a structure");} - split($0,a,"[ \t;()]*"); - start_union_encap(a[4], a[6], a[7], a[8]); - next; -} - -/^[ \t]*void.*\(/ { - {if (current_struct!="") parse_error("you cannot have nested structures");} - split($0,a,"[ \t;()]*"); - start_function(a[2], a[3]); - return_result="void"; - next; -} - -/^[ \t]*STATUS.*\(|^[ \t]*void.*\(/ { - {if (current_struct!="") parse_error("you cannot have nested structures");} - split($0,a,"[ \t;()]*"); - start_function(a[2], a[3]); - return_result="STATUS"; - next; -} - -{if (current_struct=="") parse_error("this must appear inside a structure");} - -/^[ \t]*union.*\{/ { - {if (current_union!="") parse_error("you cannot have nested unions");} - start_union($2); - next; -} - -/^[ \t]*\[switch_is.*union.*\{/ { - {if (current_union!="") parse_error("you cannot have nested unions");} - split($0,a,"[ \t;()]*"); - start_union_notencap(a[3]); - next; -} - -/^[ \t]*case.*;/ { - {if (current_union=="") parse_error("this must appear inide a union");} - split($0,a,"[ \t;]*"); - parse_case(a[3],a[4],a[5]); - next; -} - -/^[ \t]*\[case(.*)\].*;/ { - {if (current_union=="") parse_error("this must appear inide a union");} - split($0,a,"[ \t;()[\]]*"); - parse_case(a[6],a[8],a[9]); - next; -} - -/^[ \t]*\}$/ { - {if (current_union=="") parse_error("this must appear inside a union");} - end_union(""); - next; -} - -/^[ \t]*\} .*;/ { - if (current_union!="") { - split($2,a,"[ \t;]*"); - end_union(a[1]); - next; - } -} - -{if (current_union!="") parse_error("this cannot appear inside a union");} - -/^[ \t]*\};/ { - end_struct(""); - next; -} - -/^[ \t]*\} .*;/ { - split($2,a,"[ \t;]*"); - end_struct(a[1]); - next; -} - -/^[ \t]*\);/ { - end_function(); - return_result=""; - next; -} - -/^.*size_is.*\*.*;/ { - split($0,a,"[ \t;()]*"); - add_sizeis_array(a[3], a[5], a[6]); - next; -} - -/^.*;/ { - split($0,a,"[ \t;]*"); - add_struct_elem(a[2], a[3]); - next; -} - -/^[\t ]*void/ { - next; -} - -/^[ \t]*\[.*\].*/ { - split($0,a,"[ \t;]*"); - split(a[4], b, "[,]"); - add_function_param(a[2], a[3], b[1]); - next; -} - -{ - parse_error("Unknown construct."); -} - |