Welcome to the GCC XML Node Introspector project. This may look confusing, it is just a structured xml file, read on. TODOS : 1. remove all the generated files from cvs 2. create a project file the allows you to easily specify the output directories The introspector project contains many generations of source code. 1. first generation 1.1. Loading of XML via generation of perl scripts. 1.2. Prototype of meta-programming in perl 1.3. Usage of class contract and other tools to create classes 2. second generation 2.2 Generation of sql tables 2.3 Generation of normal -perl classes 3. third generation 3.1 Usage of the database 3.2 Streamlining of the Compiler interface 3.2 Bootstrapping of the compiler 3.3 Usage of CVS to distribut Currently we are closing up cycle 3. 4. fourth generation 4.1 creation of GUI in html 5. Fifth Generation : 5.1 generation of c-code for compiler Here is the layout of the project
contains the binary code The Bin directory will contain all the compiler code needed. It also contains the modified compiler binaries. The perl scripts that are needed should be found there as well. ./Introspector.pl # empty driver forwards to ./intrspctr.pl ./intrspctr.pl # GENERATION 2/3 Driver ./c_files/process.pl # COMPILER INTERFACE ENTRY POINT for modules ./c_files/processfunc.pl # COMPILER INTERFACE ENTRY POINT for functions ./c_files/c-dump.c ./c_files/c-decl.c ./c_files/encode.c ./tests/testblock.c ./tests/teststrings.c ./tests/quotestring.c ./indexnodes.pl # OLD ./introspector/test_generated_code.pl # Test Code for generation- delete? ./runquery.pl # GENERATION 3 query Driver
./B # Generation 2 : should be lib/B contains a modified version of B::Deparse ./Class # Generation 2 : should be lib/Class contains a modified version of Class::Contract ./introspector # generation 2/3 node class definition ./introspector_new2 # generation 2/3 node class definition- the new classes ./gcc # OLD generation 1 node parser code ./gcc/gcc # OLD generation 1 node parser code ./XMLParser # obsolete parser to delete ./introspector_old # TO DELETE ./T # test cases ./c_files # contains the modified c-files from gcc. ./bin/testfile.pl # Test Script ./database # contains the SQL files ./queries # Queries to query the database ./database/grant.sql ./database/introspector_schema.sql ./queries/currentfiles.sql ./queries/drop_indexs.sql ./queries/enums.sql ./queries/tests.sql ./queries/loadrelationships.sql ./queries/exprs.sql ./queries/fields_and_struct.sql ./xsl # OLD generation 1 xls transformations
The following are test ./tests # Test code for the compiler ./tests/testgen.pl ./tests/testload.pl ./tests/xml # output of the test xml
./DebugPrint.pm ./Eval.pm ./Breaker.pm ./FileHandling.pm ./IncludePaths.pm ./warnings.pm ./ParseGCCXML.pm ./Visitor.pm ./c_files/gcc_introspector.pm # Generation 3 COmpiler interface ./database/queries.pm ./db_node_ref.pm ./Introspector.pm ./CodeFormatter.pm ./CreateClasses.pm ./CrossReference.pm ./GeneratedPackage.pm ./HTMLGenerator.pm ./JavaGenerator.pm ./PerlGenerator.pm ./SQLGenerator.pm ./StandardPerlGenerator.pm ./LoadIntrospector.pm ./LoadMetaInfo.pm ./LoadNodes.pm ./MetaAttribute.pm ./MetaConstraint.pm ./MetaFeature.pm ./MetaInheritance.pm ./MetaMethod.pm ./MetaPackage.pm ./MetaPackages.pm ./MetaType.pm ./ModifyClasses.pm # Important ./TranslateClasses.pm # ./NodeProcess.pm ./NodeVisitors.pm ./ConnectionTypes.pm ./components.pm # use? ./introspector/Dumper.pm # XML Dumper? What does it do? ./introspector/XMLParser.pm ./introspector/XMLPrinter.pm ./introspector/XMLRPCServer.pm ./introspector/DebugPrint.pm ./introspector/HTMLPrinter.pm ARE THESE USED? ./introspector/Boolean.pm ## ./introspector/Char.pm ## ./introspector/Integer.pm ## ./introspector/String.pm ## ./introspector/integer_cst.pm ## ./introspector/identifier_text.pm ## ./introspector/long_text.pm ## ./introspector/warnings.pm ## ./B/IntrospectorDeparse.pm # Borrowed Module ./Class/Contract.pm # Borrowed Module ./XMLParser/Root.pm # TO DELETE ./gcc/field.pm ./gcc/fields.pm ./gcc/node.pm ./gcc/noderef.pm ./input/field_overview.pm ./input/type_overview.pm
./introspector/node_ARRAY.pm ./introspector/node_Boolean.pm ./introspector/node_Byte.pm ./introspector/node_Double.pm ./introspector/node_Float.pm ./introspector/node_HASH.pm ./introspector/node_IType.pm ./introspector/node_Ialigned.pm ./introspector/node_Ichained.pm ./introspector/node_Icontainer.pm ./introspector/node_Iqualified.pm ./introspector/node_Isized.pm ./introspector/node_Isubdecl_REF.pm ./introspector/node_Ityped.pm ./introspector/node_Iunqualified.pm ./introspector/node_Long.pm ./introspector/node_METHOD.pm ./introspector/node_POINTER.pm ./introspector/node_SCALAR.pm ./introspector/node_Short.pm ./introspector/node_Type.pm ./introspector/node_addr.pm ./introspector/node_addr_expr.pm ./introspector/node_aligned.pm ./introspector/node_array_ref.pm ./introspector/node_array_type.pm ./introspector/node_asm_stmt.pm ./introspector/node_base.pm ./introspector/node_base_interface.pm ./introspector/node_bin_expr.pm ./introspector/node_bit_and.pm ./introspector/node_bit_and_expr.pm ./introspector/node_bit_ior.pm ./introspector/node_bit_ior_expr.pm ./introspector/node_bit_not.pm ./introspector/node_bit_not_expr.pm ./introspector/node_bit_xor.pm ./introspector/node_bit_xor_expr.pm ./introspector/node_boolean_type.pm ./introspector/node_break_stmt.pm ./introspector/node_call.pm ./introspector/node_call_expr.pm ./introspector/node_case_label.pm ./introspector/node_case_stmt.pm ./introspector/node_chained.pm ./introspector/node_complex_type.pm ./introspector/node_component_ref.pm ./introspector/node_compound.pm ./introspector/node_compound_expr.pm ./introspector/node_compound_stmt.pm ./introspector/node_cond.pm ./introspector/node_cond_expr.pm ./introspector/node_cond_stmt.pm ./introspector/node_const.pm ./introspector/node_const_decl.pm ./introspector/node_constructor.pm ./introspector/node_container.pm ./introspector/node_continue_stmt.pm ./introspector/node_convert.pm ./introspector/node_convert_expr.pm ./introspector/node_decl.pm ./introspector/node_decl_stmt.pm ./introspector/node_do_stmt.pm ./introspector/node_enumeral_type.pm ./introspector/node_eq.pm ./introspector/node_eq_expr.pm ./introspector/node_exact_div.pm ./introspector/node_exact_div_expr.pm ./introspector/node_expr.pm ./introspector/node_expr_stmt.pm ./introspector/node_exprs.pm ./introspector/node_field_decl.pm ./introspector/node_fix_trunc.pm ./introspector/node_fix_trunc_expr.pm ./introspector/node_float.pm ./introspector/node_float_expr.pm ./introspector/node_for_stmt.pm ./introspector/node_function_decl.pm ./introspector/node_function_type.pm ./introspector/node_ge.pm ./introspector/node_ge_expr.pm ./introspector/node_goto_stmt.pm ./introspector/node_gt.pm ./introspector/node_gt_expr.pm ./introspector/node_identifer_text.pm ./introspector/node_identifiable.pm ./introspector/node_identifier_node.pm ./introspector/node_ids.pm ./introspector/node_if_stmt.pm ./introspector/node_indirect_ref.pm ./introspector/node_integer_cst.pm ./introspector/node_integer_type.pm ./introspector/node_ityped.pm ./introspector/node_label_decl.pm ./introspector/node_label_stmt.pm ./introspector/node_le.pm ./introspector/node_le_expr.pm ./introspector/node_long_string.pm ./introspector/node_long_text.pm ./introspector/node_lshift.pm ./introspector/node_lshift_expr.pm ./introspector/node_lt.pm ./introspector/node_lt_expr.pm ./introspector/node_max.pm ./introspector/node_max_expr.pm ./introspector/node_min.pm ./introspector/node_min_expr.pm ./introspector/node_minus.pm ./introspector/node_minus_expr.pm ./introspector/node_modify.pm ./introspector/node_modify_expr.pm ./introspector/node_module.pm ./introspector/node_mult.pm ./introspector/node_mult_expr.pm ./introspector/node_nameable.pm ./introspector/node_named.pm ./introspector/node_ne.pm ./introspector/node_ne_expr.pm ./introspector/node_negate.pm ./introspector/node_negate_expr.pm ./introspector/node_non_lvalue.pm ./introspector/node_non_lvalue_expr.pm ./introspector/node_nop.pm ./introspector/node_nop_expr.pm ./introspector/node_param_decl.pm ./introspector/node_parm_decl.pm ./introspector/node_plus.pm ./introspector/node_plus_expr.pm ./introspector/node_pointer_type.pm ./introspector/node_postdecrement.pm ./introspector/node_postdecrement_expr.pm ./introspector/node_postincrement.pm ./introspector/node_postincrement_expr.pm ./introspector/node_predecrement.pm ./introspector/node_predecrement_expr.pm ./introspector/node_preincrement.pm ./introspector/node_preincrement_expr.pm ./introspector/node_qualified.pm ./introspector/node_rdiv.pm ./introspector/node_rdiv_expr.pm ./introspector/node_real_cst.pm ./introspector/node_real_type.pm ./introspector/node_record_type.pm ./introspector/node_ref_expr.pm ./introspector/node_reference_type.pm ./introspector/node_result_decl.pm ./introspector/node_return_stmt.pm ./introspector/node_rshift.pm ./introspector/node_rshift_expr.pm ./introspector/node_save.pm ./introspector/node_save_expr.pm ./introspector/node_scope_stmt.pm ./introspector/node_sized.pm ./introspector/node_stmt.pm ./introspector/node_stmt_expr.pm ./introspector/node_string_cst.pm ./introspector/node_subdecl.pm ./introspector/node_subdecl_REF.pm ./introspector/node_switch_stmt.pm ./introspector/node_text.pm ./introspector/node_tree_list.pm ./introspector/node_trunc_div.pm ./introspector/node_trunc_div_expr.pm ./introspector/node_trunc_mod.pm ./introspector/node_trunc_mod_expr.pm ./introspector/node_truth_andif.pm ./introspector/node_truth_andif_expr.pm ./introspector/node_truth_orif.pm ./introspector/node_truth_orif_expr.pm ./introspector/node_truth_xor.pm ./introspector/node_truth_xor_expr.pm ./introspector/node_type.pm ./introspector/node_type_decl.pm ./introspector/node_typed.pm ./introspector/node_unary_expr.pm ./introspector/node_union_type.pm ./introspector/node_unqualified.pm ./introspector/node_var_decl.pm ./introspector/node_void_type.pm ./introspector/node_while_stmt.pm
./LICENCE.txt # LICENCE STATEMENT ./gpl.txt # GPL
./input # OLD generation 1 node data cache ./input/test_tree.pl # Generation 1 input file data ./call_overview.pl # Data File ./field_overview.pl # Data File ./handle_indexes.pl # Data File ./output # output files ./bin/relationships.txt ./bin/types.txt ./gcc/fieldreport.txt ./gcc/fieldreport1.txt ./input/weights.txt ./tests/relationships.txt ./tests/attributes.txt
./rebuild.sh # MAKE ./bin/install_compiler.sh # MAKE ./c_files/prepare.sh # MAKE ./copy_new_classes.sh # MAKE ./bin/build.sh # MAKE ./bin/runtest.sh # MAKE/TEST ./bin/install_data.sh # MAKE/TEST ./bin/search.sh # MAKE/TEST ./c_files/test.sh # MAKE/TEST ./runtest_parse.sh # MAKE/TEST ./c_files/makediffs.sh # MAKE/DIST ./database/getschema.sh # MAKE/DIST ./runimport.sh # CVS ./runcommit.sh # CVS ./runlogin.sh # CVS