class CODE_OPTIONS < $GET_OPTIONS
****
This is an options handler for things with back-ends. Don't put things that are specific to the ICSI `cs' compiler (e.g. CGEN) here; this is meant to be usable for other back-ends. Modify CS_OPTIONS for such things instead.


Ancestors
$GET_OPTIONS GET_OPTIONS CS_COMPONENT

Descendants
CS_OPTIONS



Public


Readable Attributes
attr
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};
attr
attr
attr
bounds_all, void_all, when_all, return_all:BOOL;
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
attr
attr
attr
attr module_inclusion:FMAP{STR,STR};
attr
attr
attr
attr
attr
attr
attr prog:PROG;
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
bounds_all, void_all, when_all, return_all:BOOL;
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
bounds_all, void_all, when_all, return_all:BOOL;
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};
bounds_all, void_all, when_all, return_all:BOOL;
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};

Writable Attributes
attr
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};
attr
attr
attr
bounds_all, void_all, when_all, return_all:BOOL;
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
attr
attr
attr
attr module_inclusion:FMAP{STR,STR};
attr
attr
attr
attr
attr
attr
attr prog:PROG;
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
bounds_all, void_all, when_all, return_all:BOOL;
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};
attr destroy_chk, psather_chk, stats, psather_stats, psather_trace:BOOL;
bounds_all, void_all, when_all, return_all:BOOL;
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};
bounds_all, void_all, when_all, return_all:BOOL;
arith_in, bounds_in, void_in, when_in, return_in:FSET{STR};
arith_out, bounds_out, void_out, when_out, return_out:FSET{STR};

Features
arith_chk(n:STR):BOOL
assert_chk(n:STR):BOOL
barf_at(msg:STR,at:$PROG_ERR)
**** Something wrong, and we know where.
bounds_chk(n:STR):BOOL
create(p:PROG):SAME
err(s:STR)
**** Report an error.
err_loc(t:$PROG_ERR)
**** Set where a future error should be reported at.
expand_env_var(fname:STR, arg_str:$STR, inout pos:INT):STR
**** convert env var starting in position pos in arg_str, coming from file fname.
expand_str(fname:STR, arg_str:$STR):STR
**** expand all env vars in arg_str
interpret(a:ARRAY{STR})
**** interpret command lines.
invariant_chk(n:STR):BOOL
post_chk(n:STR):BOOL
pre_chk(n:STR):BOOL
read_env
return_chk(n:STR):BOOL
rewind
str:STR
void_chk(n:STR):BOOL
warning(s:STR)
**** report a warning (doesn't stop compile);
when_chk(n:STR):BOOL


Private

attr all:BOOL;
attr all:BOOL;
attr arg_locations:ARRAY{STR};
attr arg_locations:ARRAY{STR};
attr args:ARRAY{STR};
attr args:ARRAY{STR};
args_from_file(name:STR):FLIST{STR}
**** #OUT+"reading module "+name+"\n";
barf(msg:STR)
attr classes:FSET{STR};
attr classes:FSET{STR};
directory(nm:STR):STR
**** The directory in which nm resides
files:FSET{STR}
**** get a list of files from the command line
get_classes
**** get a list of classes from the argument list
get_files
**** get list of files from the command line and put in appropriate set
attr got_libs:BOOL;
attr got_libs:BOOL;
handle_files(s:STR)
handle_other_file_suffix(arg,suf:STR)
**** Meant to be overridden
handle_other_options(s:STR)
home_expand(s:STR):STR
**** Expand any occurances of '%' with the Sather home directory.
insert_here(cl:FLIST{STR},filename: STR)
**** insert a list of args so it will be read next
is_class_name(nm:STR):BOOL
**** is this string a viable class name?
is_filename(fn:STR):BOOL
mention(name,s1,s2:STR):STR
more_args:BOOL
attr next:INT;
attr next:INT;
next_arg:STR
create(p:PROG):SAME
str:STR
**** diagnostic for printing the state of a command line parse
attr paths:FSET{STR};
**** Resolved Sather source paths (to allow redundancy in on command line)
attr paths:FSET{STR};
**** Resolved Sather source paths (to allow redundancy in on command line)
suffix(a:STR):STR
usage