| java.lang.Object xtc.typical.Analyzer xtc.lang.c.CAnalyzer
CAnalyzer | public class CAnalyzer extends Analyzer (Code) | | Type checker for C.
|
Inner Class :protected class removeLast | |
Field Summary | |
final Function.F1<CTypes.type, Node> | analyze | final Function.F2<CTypes.type, CTypes.type, Node> | analyze_abs_declarator | final Function.F1<CTypes.type, Node> | analyze_decl_specifier | final Function.F1<CTypes.type, Node> | analyze_decl_specifiers | final Function.F2<CTypes.type, CTypes.type, Node> | analyze_declarator | final Function.F2<Pair<CTypes.type>, CTypes.type, Pair<Node>> | analyze_declarator_list | final Function.F2<CTypes.type, CTypes.type, Node> | analyze_direct_abs_decl | final Function.F2<BigInteger, Node, BigInteger> | analyze_enumerator | final Function.F1<CTypes.type, Node> | analyze_expression | final Function.F1<CTypes.type, Node> | analyze_extern_decl | final Function.F1<CTypes.type, Node> | analyze_generic | final Function.F1<CTypes.type, Node> | analyze_init_clause | final Function.F2<CTypes.type, CTypes.type, Node> | analyze_init_decl | final Function.F2<CTypes.type, CTypes.type, Node> | analyze_init_decl_list | final Function.F2<CTypes.type, Node, CTypes.type> | analyze_initializer | final Function.F1<CTypes.type, Node> | analyze_label | final Function.F2<Pair<CTypes.type>, CTypes.type, Pair<Node>> | analyze_list_init_decl | final Function.F1<CTypes.type, Node> | analyze_para_type_list | final Function.F1<CTypes.type, Node> | analyze_parameter_declaration | final Function.F2<CTypes.type, CTypes.type, Node> | analyze_pointer | final Function.F1<CTypes.type, Node> | analyze_spec_qual_list | final Function.F4<CTypes.type, Boolean, Pair<CTypes.label_record>, Boolean, Node> | analyze_statement | final Function.F1<CTypes.type, Node> | analyze_struct_decl_list | final Function.F1<CTypes.type, Node> | analyze_struct_declaration | final Function.F2<CTypes.type, CTypes.type, Node> | analyze_struct_declarator_list | final Function.F1<CTypes.type, Node> | analyze_type_name | final Function.F2<CTypes.type, CTypes.type, CTypes.type> | arith_convert | final Function.F3<CTypes.type, Node, String, CTypes.type> | c_define | final Function.F2<Object, Node, Pair<CTypes.label_record>> | check_declared_labels | final Function.F2<Object, Pair<CTypes.label_record>, Node> | check_defined_labels | final Function.F2<Pair<CTypes.qualifier>, Pair<CTypes.qualifier>, Pair<CTypes.qualifier>> | combine_qualifiers | final Function.F2<CTypes.type, CTypes.type, CTypes.type> | compose | final Function.F2<CTypes.type, CTypes.type, CTypes.type> | convert_int | final Function.F1<Pair<CTypes.type>, Pair<String>> | define_id_list | final Function.F2<Object, Pair<CTypes.label_record>, Boolean> | define_labels | final Function.F2<CTypes.type, CTypes.type, String> | ensure_arithmetic | final Function.F1<CTypes.type, CTypes.type> | ensure_complete | final Function.F1<Boolean, CTypes.type> | ensure_function | final Function.F1<CTypes.type, Node> | ensure_in_loop | final Function.F1<CTypes.type, Node> | ensure_in_loop_or_switch | final Function.F1<CTypes.type, Node> | ensure_in_switch | final Function.F2<CTypes.type, CTypes.type, String> | ensure_integer | final Function.F1<CTypes.type, CTypes.type> | ensure_modifiable_lvalue | final Function.F2<CTypes.type, CTypes.type, String> | ensure_scalar | final Function.F2<Boolean, CTypes.type, CTypes.type> | equal_ignore_signedness | final Function.F1<CTypes.functionSpecifier, Pair<Node>> | extractFunctionSpecifier | final Function.F1<Pair<CTypes.qualifier>, Pair<Node>> | extractQualifier | final Function.F1<CTypes.storageClass, Pair<Node>> | extractStorage | final Function.F1<CTypes.type, Pair<Node>> | extractType | final Function.F2<Pair<CTypes.label_record>, Node, Pair<CTypes.label_record>> | find_labels | final Function.F2<Pair<CTypes.label_record>, Node, Pair<CTypes.label_record>> | find_labels_expr | final Function.F1<Pair<CTypes.label_record>, Pair<Node>> | find_labels_in_list | final Function.F2<Pair<CTypes.label_record>, Pair<Node>, Pair<CTypes.label_record>> | find_local_labels | final Function.F1<Pair<CTypes.type>, Pair<CTypes.type>> | flattenListTypes | final Function.F1<Tuple.T3<Name, String, String>, Node> | getNameSpace | final Function.F1<Pair<CTypes.type>, CTypes.type> | getParameterTypes | final Function.F1<Scope, Node> | getScope | final Function.F1<CTypes.type, CTypes.type> | get_base | final Function.F1<Double, CTypes.type> | get_float | final Function.F1<String, Node> | get_id_declarator | final Function.F2<CTypes.type, CTypes.type, BigInteger> | get_index_type | final Function.F1<BigInteger, CTypes.type> | get_int | final Function.F2<CTypes.type, CTypes.type, String> | get_member_type | final Function.F2<CTypes.type, Pair<CTypes.type>, String> | get_member_type_helper | final Function.F1<CTypes.type, CTypes.type> | get_return_type | final Function.F1<BigInteger, CTypes.type> | get_size | final Function.F1<Boolean, CTypes.type> | has_auto | final Function.F1<Boolean, Node> | in_inner | final Function.F1<Boolean, CTypes.type> | is_aggregate | final Function.F1<Boolean, CTypes.type> | is_anonymous | final Function.F1<Boolean, CTypes.type> | is_arithmetic | final Function.F1<Boolean, CTypes.type> | is_array | final Function.F1<Boolean, CTypes.type> | is_auto | final Function.F1<Boolean, CTypes.type> | is_bitfield | final Function.F1<Boolean, CTypes.type> | is_char | final Function.F1<Boolean, CTypes.type> | is_complete | final Function.F1<Boolean, CTypes.type> | is_complex | final Function.F1<Boolean, CTypes.type> | is_const | final Function.F1<Boolean, CTypes.type> | is_enum | final Function.F1<Boolean, CTypes.type> | is_extern | final Function.F1<Boolean, Node> | is_extern_declaration | final Function.F1<Boolean, CTypes.type> | is_fixed | final Function.F1<Boolean, Pair<Node>> | is_flat_init_list | final Function.F1<Boolean, CTypes.type> | is_float | final Function.F1<Boolean, CTypes.type> | is_function | final Function.F1<Boolean, CTypes.type> | is_incomplete | final Function.F1<Boolean, Node> | is_init_decl | final Function.F1<Boolean, Node> | is_init_decl_list | final Function.F1<Boolean, Node> | is_init_entry | final Function.F1<Boolean, CTypes.type> | is_integer | final Function.F1<Boolean, CTypes.type> | is_lvalue | final Function.F1<Boolean, CTypes.type> | is_modifiable_lvalue | final Function.F1<Boolean, CTypes.type> | is_old_stype | final Function.F1<Boolean, CTypes.type> | is_pointer | final Function.F1<Boolean, CTypes.type> | is_qualified | final Function.F1<Boolean, CTypes.type> | is_register | final Function.F1<Boolean, CTypes.type> | is_scalar | final Function.F1<Boolean, Node> | is_statement | final Function.F1<Boolean, CTypes.type> | is_static | final Function.F1<Boolean, CTypes.type> | is_struct_union | final Function.F1<Boolean, Object> | is_top | final Function.F1<Boolean, CTypes.type> | is_typedef | final Function.F2<Boolean, String, Node> | is_used | final Function.F2<Boolean, String, Node> | is_used_decl | final Function.F2<Boolean, String, Node> | is_used_expr | final Function.F2<Boolean, String, Node> | is_used_generic | final Function.F2<Boolean, String, Pair<Node>> | is_used_in_list | final Function.F1<Boolean, CTypes.type> | is_var_args | final Function.F1<Boolean, CTypes.type> | is_void | final Function.F2<Boolean, CTypes.label_record, Pair<CTypes.label_record>> | label_exists | final Function.F3<Pair<CTypes.label_record>, Pair<CTypes.label_record>, Pair<CTypes.label_record>, Pair<CTypes.label_record>> | labels_subtraction | final Function.F2<Pair<CTypes.label_record>, Pair<CTypes.label_record>, Pair<CTypes.label_record>> | labels_union | final Function.F1<BigInteger, String> | parse_int | final Function.F2<Boolean, CTypes.type, CTypes.type> | pointer_equals | final Function.F1<CTypes.type, CTypes.type> | pointerize | final Function.F3<Object, Pair<CTypes.type>, Pair<CTypes.type>, Boolean> | processArguments | final Function.F3<Object, Pair<CTypes.type>, Pair<CTypes.type>, BigInteger> | processArgumentsHelper | final Function.F2<CTypes.type, CTypes.type, Node> | processArray | final Function.F4<CTypes.type, Boolean, CTypes.type, String, CTypes.type> | processAssignment | final Function.F2<CTypes.type, CTypes.type, CTypes.type> | processCast | final Function.F2<Boolean, Node, Node> | process_array_des | final Function.F3<CTypes.type, CTypes.type, BigInteger, Pair<Node>> | process_des_list | final Function.F4<CTypes.type, CTypes.type, BigInteger, Node, Pair<Node>> | process_designation | final Function.F2<Pair<CTypes.type>, Pair<Node>, BigInteger> | process_enums | final Function.F2<CTypes.type, CTypes.type, String> | process_field_des | final Function.F1<CTypes.type, CTypes.type> | process_indirection | final Function.F3<CTypes.type, CTypes.type, BigInteger, Pair<Node>> | process_init_entry | final Function.F3<CTypes.type, CTypes.type, BigInteger, Pair<Node>> | process_init_list | final Function.F2<CTypes.type, Node, CTypes.type> | process_initializer | final Function.F3<Pair<CTypes.label_record>, Pair<String>, Node, Pair<CTypes.label_record>> | process_local_labels | final Function.F1<CTypes.type, Pair<Node>> | process_specifiers | final Function.F1<CTypes.type, CTypes.type> | process_subscript | final Function.F1<CTypes.type, CTypes.type> | promote | final removeLast | removeLast | final Function.F1<CTypes.type, CTypes.type> | resolve | final Function.F2<CTypes.type, CTypes.type, BigInteger> | resolve_element | final Function.F1<Object, Pair<Node>> | show_excess_error | final Function.F1<BigInteger, CTypes.type> | sizeof | final Function.F1<CTypes.type, CTypes.type> | to_pointer | final Function.F2<Boolean, CTypes.type, CTypes.type> | type_match | final CTypes.type | voidt | final Function.F1<Boolean, CTypes.type> | zero |
removeLast | final removeLast removeLast(Code) | | |
getScopeNodes | public void getScopeNodes()(Code) | | |
Fields inherited from xtc.typical.Analyzer | final protected String ENTERSCOPE(Code)(Java Doc) final protected String EXITSCOPE(Code)(Java Doc) final protected String MAGICNUMBER(Code)(Java Doc) protected Function.F1<?, Node> analyzer(Code)(Java Doc) final protected Function.F1<Node, NodeMatch> ancestor(Code)(Java Doc) final protected Function.F3<Void, Node, Object, Function.F1<?, Node>> define3(Code)(Java Doc) final protected Function.F5<Void, Node, Object, String, String, Function.F1<?, Node>> define5(Code)(Java Doc) final protected Function.F1<String, String> freshName(Code)(Java Doc) final protected SymbolTable gamma(Code)(Java Doc) protected Hashtable<Object, Object> hashTable(Code)(Java Doc) final protected Function.F2<Boolean, Node, Function.F1<?, Node>> isDefined(Code)(Java Doc) final protected Function.F2<Boolean, Node, Function.F1<?, Node>> isDefinedLocally(Code)(Java Doc) final protected Function.F3<Void, String, String, Object> load(Code)(Java Doc) final protected Function.F2<Object, Node, Function.F1<?, Node>> lookup2(Code)(Java Doc) final protected Function.F4<Object, Node, String, String, Function.F1<?, Node>> lookup4(Code)(Java Doc) final protected Function.F2<Object, Node, Function.F1<?, Node>> lookupLocally2(Code)(Java Doc) final protected Function.F4<Object, Node, String, String, Function.F1<?, Node>> lookupLocally4(Code)(Java Doc) final protected ArrayList<Node> matching_nodes(Code)(Java Doc) final protected Function.F1<Boolean, Object> notBottom(Code)(Java Doc) final protected Function.F1<Node, NodeMatch> parent(Code)(Java Doc) final protected ArrayList<String> processScopeNodes(Code)(Java Doc) final protected Function.F3<Void, Node, Object, Function.F1<?, Node>> redefine(Code)(Java Doc) protected Node root(Code)(Java Doc) final protected Runtime runtime(Code)(Java Doc) final protected Function.F1<Boolean, String> show_symbols(Code)(Java Doc)
|
|
|