diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-21 11:34:29 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-21 11:34:29 +0000 |
commit | 1e1273024835c9a2952eaafd9d796ff6126a7c2a (patch) | |
tree | ae156dc216d9a4a2a65ebcd0ee31c34599b4e278 /gcc/optc-gen.awk | |
parent | eb68828967d9048f2f590d117f2297bf190686b2 (diff) | |
download | gcc-1e1273024835c9a2952eaafd9d796ff6126a7c2a.tar.gz |
* opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
* optc-gen.awk: Move common code to opt-read.awk.
* opth-gen.awk: Likewise.
* Makefile.in (options.c, s-options-h): Update to use
opt-read.awk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173995 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optc-gen.awk')
-rw-r--r-- | gcc/optc-gen.awk | 99 |
1 files changed, 4 insertions, 95 deletions
diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk index 9408ced9c44..2c4df708801 100644 --- a/gcc/optc-gen.awk +++ b/gcc/optc-gen.awk @@ -21,104 +21,13 @@ # opt-gather.awk, combines the flags of duplicate options and generates a # C file. # -# This program uses functions from opt-functions.awk + +# This program uses functions from opt-functions.awk and code from +# opt-read.awk. # -# Usage: awk -f opt-functions.awk -f optc-gen.awk \ +# Usage: awk -f opt-functions.awk -f opt-read.awk -f optc-gen.awk \ # [-v header_name=header.h] < inputfile > options.c -BEGIN { - n_opts = 0 - n_langs = 0 - n_target_save = 0 - n_extra_vars = 0 - n_extra_target_vars = 0 - n_extra_c_includes = 0 - n_extra_h_includes = 0 - n_enums = 0 - quote = "\042" - comma = "," - FS=SUBSEP - # Default the name of header created from opth-gen.awk to options.h - if (header_name == "") header_name="options.h" -} - -# Collect the text and flags of each option into an array - { - if ($1 == "Language") { - langs[n_langs] = $2 - n_langs++; - } - else if ($1 == "TargetSave") { - # Make sure the declarations are put in source order - target_save_decl[n_target_save] = $2 - n_target_save++ - } - else if ($1 == "Variable") { - extra_vars[n_extra_vars] = $2 - n_extra_vars++ - } - else if ($1 == "TargetVariable") { - # Combination of TargetSave and Variable - extra_vars[n_extra_vars] = $2 - n_extra_vars++ - - var = $2 - sub(" *=.*", "", var) - orig_var = var - name = var - type = var - sub("^.*[ *]", "", name) - sub(" *" name "$", "", type) - target_save_decl[n_target_save] = type " x_" name - n_target_save++ - - extra_target_vars[n_extra_target_vars] = name - n_extra_target_vars++; - } - else if ($1 == "HeaderInclude") { - extra_h_includes[n_extra_h_includes++] = $2; - } - else if ($1 == "SourceInclude") { - extra_c_includes[n_extra_c_includes++] = $2; - } - else if ($1 == "Enum") { - props = $2 - name = opt_args("Name", props) - type = opt_args("Type", props) - unknown_error = opt_args("UnknownError", props) - enum_names[n_enums] = name - enum_type[name] = type - enum_index[name] = n_enums - enum_unknown_error[name] = unknown_error - enum_help[name] = $3 - n_enums++ - } - else if ($1 == "EnumValue") { - props = $2 - enum_name = opt_args("Enum", props) - string = opt_args("String", props) - value = opt_args("Value", props) - val_flags = "0" - val_flags = val_flags \ - test_flag("Canonical", props, "| CL_ENUM_CANONICAL") \ - test_flag("DriverOnly", props, "| CL_ENUM_DRIVER_ONLY") - enum_data[enum_name] = enum_data[enum_name] \ - " { " quote string quote ", " value ", " val_flags \ - " },\n" - } - else { - name = opt_args("Mask", $1) - if (name == "") { - opts[n_opts] = $1 - flags[n_opts] = $2 - help[n_opts] = $3 - for (i = 4; i <= NF; i++) - help[n_opts] = help[n_opts] " " $i - n_opts++; - } - } - } - # Dump that array of options into a C file. END { print "/* This file is auto-generated by optc-gen.awk. */" |