fpc/compiler/msgidx.inc
paul d1026bb052 compiler: reintegrate branch http://svn.freepascal.org/svn/fpc/branches/paul/extended_records
------------------------------------------------------------------------
r16513 compiler: add support for visibility blocks in records and type, const declarations:
  - add parse_record_members function to parse record blocks based on parse_object_members code
  - disable published section in records
  - rename in_class argument in some functions to in_structure because the same code can work for records now which are not classes
------------------------------------------------------------------------
r16514 compiler: check visibility of record members, allow access to record consts and types:
  - add searchsym_in_record function
  - change is_visible_for_object to accept tabstractrecorddef instead of tobjectdef arguments because records also have visibility sections now
  - change arguments in do_member_read, do_proc_call to tabstractrecorddef from tobjectdef to accept records
  - rename classh arguments to structh and change their type to tabstractrecorddef to show that they can accept records now too
  - move RttiName from tobjectdef to tabstractrecorddef
------------------------------------------------------------------------
r16515 compiler: add current_structdef: tabstractrecorddef and point current_objectdef to it
------------------------------------------------------------------------
r16516 compiler: allow access other record symbols than fields, first extended records tests
------------------------------------------------------------------------
r16519 compiler: 
  - move objname, objrealname fields from tobjectdef to tabstractrecorddef, 
  - load and save them from/to ppu file, 
  - use tabstarctrecorddef in some more places where previously code worked for tobjectdef
  - change push_nested_hierarchy, pop_nested_hierarchy to handle records too
------------------------------------------------------------------------
r16526 compiler: implement record methods and class methods:
  - rename tprocdef._class to tprocdef.struct and change the type from tobjectdef to tabstractrecorddef because methods can belong not to classes only now but to records too
  - replace in many places use of current_objectdef to current_structdef with typcast where is needed
  - add an argument to comp_expr, expr, factor, sub_expr to notify that we are searching type only symbol to solve the problem with records,objects,classes which contains fields with the same name as previosly declared type (like:
  HWND = type Handle;
  rec = record 
    hWnd: HWND;
  end;)
  - disable check in factor_read_id which was made for object that only static fields can be accessed as TObjectType.FieldName outside the object because it makes SizeOf(TObjectType.FieldName) imposible and since the same method was extended to handle records it also breaks a52 package compilation
  - rename tcallcandidates.collect_overloads_in_class to tcallcandidates.collect_overloads_in_struct and addapt the code to handle overloads in records too
  - fix searchsym_type to search also in object ancestors if we found an object symtable
  - add pd_record, pd_notrecord flags to mark procedure modifies which can or can't be used with records. Disallow the next modifiers for records: abstract, dynamic, export, external, far, far16, final, forward, internconst, internproc, interrupt, message, near, override, public, reintroduce, virtual, weakexternal,
Allow the next modifiers for records: static
------------------------------------------------------------------------
r16530 compiler: fix compilation problems caused by tprocdef._class -> tprocdef.struct rename which was found by make fullcycle
------------------------------------------------------------------------
r16531 compiler: redo searchsym_type:
  - remove complex condition which was used previosly to decide whether objectsymtable or recordsymtable requires a search for type or not - they require a search because contains types (although not all object types)
  - don't search only for typesym but for other symbols too - for example UnitSym.TypeSym or ConstSym..ConstSym are also valid types. Skip the next symtypes during the search because they can't be used in type declaration: fieldvarsym, paravarsym, propertysym, procsym, labelsym
------------------------------------------------------------------------
r16541 compiler: move objectoptions to tabstractrecorddef because it will be needed for records too
------------------------------------------------------------------------
r16542 compiler: remove unneeded checks and typecasting caused by move of objectoptions into tabstractrecorddef
------------------------------------------------------------------------
r16543 compiler: move constructor, destructor parsers to interface section to allow future use by records + change current_objectdef to current_structdef for the same reason, make constructor return type = record for records
r16544 compiler: start parsing of record constructors and destructors:
  - disallow record destructor
  - raise internal error for constructor because it is not yet implemented
  - handle class constructors and destructors for records
  - move find_procdef_bytype to tabstractpointerdef
------------------------------------------------------------------------
r16545 compiler: fix static fields creation and access for records
+ extend test to check class constructor/destructor for records and static fields access
------------------------------------------------------------------------
r16546 tests: add a test which checks that records destructors are not allowed
------------------------------------------------------------------------
r16547 compiler: rename aclass->astruct in read_property_dec because records will have properties too
------------------------------------------------------------------------
r16548 compiler: implement properties in records:
  - rename property_dec from pdecobj to struct_property_dec because pdecl also has property_dec and move it to interface to use by records + allow properties for records
  - use struct_property_dec in record parser
  - change structh type from objectdef to abstractrecorddef in read_property_dec to use by records
  - disallow stored and default modifiers for records because records are not used for streaming
  - fix misuse of search_sym_in_class for records in few places
------------------------------------------------------------------------
r16550 compiler: disallow regular class methods in records and allow only static class methods. delphi do so and it is logical because records have no inheritance. + tests
------------------------------------------------------------------------
r16560 compiler: a trial to implement record constructor
  - map self to constructor result
  - don't push vmt for records

At the moment generated assembler has errors although node tree is correct
------------------------------------------------------------------------
r16561 compiler: 
  - add mode switch extendedrecords to allow/disallow extended records syntax, add this mode switch to delphi mode by default
  - disable/enable extended records parsing based on extendedreocrds mode switch
------------------------------------------------------------------------
r16562 compiler: fix record constructor return type when parsing procedure declaration
------------------------------------------------------------------------
r16568 compiler: partly revert r16560 and disable (at least temporary) constructors in records
------------------------------------------------------------------------
r16569 test: add records Self test
------------------------------------------------------------------------
r16570 compiler: generate debug info for record methods:
  - extended write_symtable_procdefs to handle record definitions
  - fix stabs info generator to use prefixed symbol names for record methods, also handle records static symbols the same way as for object types
  - fix dwarf info record generation: add visibility info and write methods, also prefix record members the same way as object members

git-svn-id: trunk@16574 -
2010-12-17 02:19:09 +00:00

885 lines
34 KiB
PHP

const
general_t_compilername=01000;
general_d_sourceos=01001;
general_i_targetos=01002;
general_t_exepath=01003;
general_t_unitpath=01004;
general_t_includepath=01005;
general_t_librarypath=01006;
general_t_objectpath=01007;
general_i_abslines_compiled=01008;
general_f_no_memory_left=01009;
general_i_writingresourcefile=01010;
general_e_errorwritingresourcefile=01011;
general_i_fatal=01012;
general_i_error=01013;
general_i_warning=01014;
general_i_note=01015;
general_i_hint=01016;
general_e_path_does_not_exist=01017;
general_f_compilation_aborted=01018;
general_text_bytes_code=01019;
general_text_bytes_data=01020;
general_i_number_of_warnings=01021;
general_i_number_of_hints=01022;
general_i_number_of_notes=01023;
scan_f_end_of_file=02000;
scan_f_string_exceeds_line=02001;
scan_f_illegal_char=02002;
scan_f_syn_expected=02003;
scan_t_start_include_file=02004;
scan_w_comment_level=02005;
scan_n_ignored_switch=02008;
scan_w_illegal_switch=02009;
scan_w_switch_is_global=02010;
scan_e_illegal_char_const=02011;
scan_f_cannot_open_input=02012;
scan_f_cannot_open_includefile=02013;
scan_e_illegal_pack_records=02015;
scan_e_illegal_pack_enum=02016;
scan_e_endif_expected=02017;
scan_e_preproc_syntax_error=02018;
scan_e_error_in_preproc_expr=02019;
scan_w_macro_cut_after_255_chars=02020;
scan_e_endif_without_if=02021;
scan_f_user_defined=02022;
scan_e_user_defined=02023;
scan_w_user_defined=02024;
scan_n_user_defined=02025;
scan_h_user_defined=02026;
scan_i_user_defined=02027;
scan_e_keyword_cant_be_a_macro=02028;
scan_f_macro_buffer_overflow=02029;
scan_w_macro_too_deep=02030;
scan_w_wrong_styled_switch=02031;
scan_d_handling_switch=02032;
scan_c_endif_found=02033;
scan_c_ifdef_found=02034;
scan_c_ifopt_found=02035;
scan_c_if_found=02036;
scan_c_ifndef_found=02037;
scan_c_else_found=02038;
scan_c_skipping_until=02039;
scan_i_press_enter=02040;
scan_w_unsupported_switch=02041;
scan_w_illegal_directive=02042;
scan_t_back_in=02043;
scan_w_unsupported_app_type=02044;
scan_w_app_type_not_support=02045;
scan_w_description_not_support=02046;
scan_n_version_not_support=02047;
scan_n_only_exe_version=02048;
scan_w_wrong_version_ignored=02049;
scan_e_illegal_asmmode_specifier=02050;
scan_w_no_asm_reader_switch_inside_asm=02051;
scan_e_wrong_switch_toggle=02052;
scan_e_resourcefiles_not_supported=02053;
scan_w_include_env_not_found=02054;
scan_e_invalid_maxfpureg_value=02055;
scan_w_only_one_resourcefile_supported=02056;
scan_w_macro_support_turned_off=02057;
scan_e_invalid_interface_type=02058;
scan_w_appid_not_support=02059;
scan_w_appname_not_support=02060;
scan_e_string_exceeds_255_chars=02061;
scan_f_include_deep_ten=02062;
scan_e_too_many_push=02063;
scan_e_too_many_pop=02064;
scan_e_error_macro_lacks_value=02065;
scan_e_wrong_switch_toggle_default=02066;
scan_e_mode_switch_not_allowed=02067;
scan_e_error_macro_undefined=02068;
scan_e_utf8_bigger_than_65535=02069;
scan_e_utf8_malformed=02070;
scan_c_switching_to_utf8=02071;
scan_e_compile_time_typeerror=02072;
scan_n_app_type_not_support=02073;
scan_e_illegal_optimization_specifier=02074;
scan_w_setpeflags_not_support=02075;
scan_w_imagebase_not_support=02076;
scan_w_minstacksize_not_support=02077;
scan_w_maxstacksize_not_support=02078;
scanner_e_illegal_warn_state=02079;
scan_e_only_packset=02080;
scan_w_pic_ignored=02081;
scan_w_unsupported_switch_by_target=02082;
scan_w_frameworks_darwin_only=02084;
scan_e_illegal_minfpconstprec=02085;
scan_w_multiple_main_name_overrides=02086;
scanner_w_illegal_warn_identifier=02087;
parser_e_syntax_error=03000;
parser_e_dont_nest_interrupt=03004;
parser_w_proc_directive_ignored=03005;
parser_e_no_overload_for_all_procs=03006;
parser_e_export_name_double=03008;
parser_e_export_ordinal_double=03009;
parser_e_export_invalid_index=03010;
parser_w_parser_reloc_no_debug=03011;
parser_w_parser_win32_debug_needs_WN=03012;
parser_e_constructorname_must_be_init=03013;
parser_e_destructorname_must_be_done=03014;
parser_e_proc_inline_not_supported=03016;
parser_w_constructor_should_be_public=03018;
parser_w_destructor_should_be_public=03019;
parser_n_only_one_destructor=03020;
parser_e_no_local_objects=03021;
parser_f_no_anonym_objects=03022;
parser_n_object_has_no_vmt=03023;
parser_e_illegal_parameter_list=03024;
parser_e_wrong_parameter_size=03026;
parser_e_overloaded_no_procedure=03027;
parser_e_overloaded_have_same_parameters=03028;
parser_e_header_dont_match_forward=03029;
parser_e_header_different_var_names=03030;
parser_n_duplicate_enum=03031;
parser_e_no_with_for_variable_in_other_segments=03033;
parser_e_too_much_lexlevel=03034;
parser_e_range_check_error=03035;
parser_w_range_check_error=03036;
parser_e_double_caselabel=03037;
parser_e_case_lower_less_than_upper_bound=03038;
parser_e_type_const_not_possible=03039;
parser_e_no_overloaded_procvars=03040;
parser_e_invalid_string_size=03041;
parser_w_use_extended_syntax_for_objects=03042;
parser_w_no_new_dispose_on_void_pointers=03043;
parser_e_no_new_dispose_on_void_pointers=03044;
parser_e_class_id_expected=03045;
parser_e_no_type_not_allowed_here=03046;
parser_e_methode_id_expected=03047;
parser_e_header_dont_match_any_member=03048;
parser_d_procedure_start=03049;
parser_e_error_in_real=03050;
parser_e_fail_only_in_constructor=03051;
parser_e_no_paras_for_destructor=03052;
parser_e_only_class_members_via_class_ref=03053;
parser_e_only_class_members=03054;
parser_e_case_mismatch=03055;
parser_e_illegal_symbol_exported=03056;
parser_w_should_use_override=03057;
parser_e_nothing_to_be_overridden=03058;
parser_e_no_procedure_to_access_property=03059;
parser_w_stored_not_implemented=03060;
parser_e_ill_property_access_sym=03061;
parser_e_cant_access_protected_member=03062;
parser_e_cant_access_private_member=03063;
parser_e_overridden_methods_not_same_ret=03066;
parser_e_dont_nest_export=03067;
parser_e_methods_dont_be_export=03068;
parser_e_call_by_ref_without_typeconv=03069;
parser_e_no_super_class=03070;
parser_e_self_not_in_method=03071;
parser_e_generic_methods_only_in_methods=03072;
parser_e_illegal_colon_qualifier=03073;
parser_e_illegal_set_expr=03074;
parser_e_pointer_to_class_expected=03075;
parser_e_expr_have_to_be_constructor_call=03076;
parser_e_expr_have_to_be_destructor_call=03077;
parser_e_invalid_record_const=03078;
parser_e_false_with_expr=03079;
parser_e_void_function=03080;
parser_e_constructors_always_objects=03081;
parser_e_operator_not_overloaded=03082;
parser_e_no_such_assignment=03083;
parser_e_overload_impossible=03084;
parser_e_no_reraise_possible=03085;
parser_e_no_new_or_dispose_for_classes=03086;
parser_e_procedure_overloading_is_off=03088;
parser_e_overload_operator_failed=03089;
parser_e_comparative_operator_return_boolean=03090;
parser_e_only_virtual_methods_abstract=03091;
parser_f_unsupported_feature=03092;
parser_e_mix_of_classes_and_objects=03093;
parser_w_unknown_proc_directive_ignored=03094;
parser_e_absolute_only_one_var=03095;
parser_e_absolute_only_to_var_or_const=03096;
parser_e_initialized_only_one_var=03097;
parser_e_abstract_no_definition=03098;
parser_e_overloaded_must_be_all_global=03099;
parser_w_virtual_without_constructor=03100;
parser_c_macro_defined=03101;
parser_c_macro_undefined=03102;
parser_c_macro_set_to=03103;
parser_i_compiling=03104;
parser_u_parsing_interface=03105;
parser_u_parsing_implementation=03106;
parser_d_compiling_second_time=03107;
parser_e_no_property_found_to_override=03109;
parser_e_only_one_default_property=03110;
parser_e_property_need_paras=03111;
parser_e_constructor_cannot_be_not_virtual=03112;
parser_e_no_default_property_available=03113;
parser_e_cant_have_published=03114;
parser_e_forward_declaration_must_be_resolved=03115;
parser_e_no_local_operator=03116;
parser_e_proc_dir_not_allowed_in_interface=03117;
parser_e_proc_dir_not_allowed_in_implementation=03118;
parser_e_proc_dir_not_allowed_in_procvar=03119;
parser_e_function_already_declared_public_forward=03120;
parser_e_not_external_and_export=03121;
parser_w_not_supported_for_inline=03123;
parser_w_inlining_disabled=03124;
parser_i_writing_browser_log=03125;
parser_h_maybe_deref_caret_missing=03126;
parser_f_assembler_reader_not_supported=03127;
parser_e_proc_dir_conflict=03128;
parser_e_call_convention_dont_match_forward=03129;
parser_e_property_cant_have_a_default_value=03131;
parser_e_property_default_value_must_const=03132;
parser_e_cant_publish_that=03133;
parser_e_cant_publish_that_property=03134;
parser_e_empty_import_name=03136;
parser_e_division_by_zero=03138;
parser_e_invalid_float_operation=03139;
parser_e_array_lower_less_than_upper_bound=03140;
parser_w_string_too_long=03141;
parser_e_string_larger_array=03142;
parser_e_ill_msg_expr=03143;
parser_e_ill_msg_param=03144;
parser_e_duplicate_message_label=03145;
parser_e_self_in_non_message_handler=03146;
parser_e_threadvars_only_sg=03147;
parser_f_direct_assembler_not_allowed=03148;
parser_w_no_objpas_use_mode=03149;
parser_e_no_object_override=03150;
parser_e_cant_use_inittable_here=03151;
parser_e_resourcestring_only_sg=03152;
parser_e_exit_with_argument_not__possible=03153;
parser_e_stored_property_must_be_boolean=03154;
parser_e_ill_property_storage_sym=03155;
parser_e_only_publishable_classes_can_be_published=03156;
parser_e_proc_directive_expected=03157;
parser_e_invalid_property_index_value=03158;
parser_e_procname_to_short_for_export=03159;
parser_e_dlltool_unit_var_problem=03160;
parser_e_dlltool_unit_var_problem2=03161;
parser_f_need_objfpc_or_delphi_mode=03162;
parser_e_no_export_with_index_for_target=03163;
parser_e_no_export_of_variables_for_target=03164;
parser_e_improper_guid_syntax=03165;
parser_w_interface_mapping_notfound=03168;
parser_e_interface_id_expected=03169;
parser_e_type_cant_be_used_in_array_index=03170;
parser_e_no_con_des_in_interfaces=03171;
parser_e_no_access_specifier_in_interfaces=03172;
parser_e_no_vars_in_interfaces=03173;
parser_e_no_local_proc_external=03174;
parser_w_skipped_fields_before=03175;
parser_e_skipped_fields_before=03176;
parser_w_skipped_fields_after=03177;
parser_e_varargs_need_cdecl_and_external=03178;
parser_e_self_call_by_value=03179;
parser_e_interface_has_no_guid=03180;
parser_e_illegal_field_or_method=03181;
parser_w_proc_overriding_calling=03182;
parser_e_no_procvarobj_const=03183;
parser_e_default_value_only_one_para=03184;
parser_e_default_value_expected_for_para=03185;
parser_w_unsupported_feature=03186;
parser_h_c_arrays_are_references=03187;
parser_e_C_array_of_const_must_be_last=03188;
parser_h_type_redef=03189;
parser_w_cdecl_has_no_high=03190;
parser_w_cdecl_no_openstring=03191;
parser_e_initialized_not_for_threadvar=03192;
parser_e_msg_only_for_classes=03193;
parser_e_procedure_or_function_expected=03194;
parser_e_illegal_calling_convention=03195;
parser_e_no_object_reintroduce=03196;
parser_e_paraloc_only_one_para=03197;
parser_e_paraloc_all_paras=03198;
parser_e_illegal_explicit_paraloc=03199;
parser_e_32bitint_or_pointer_variable_expected=03200;
parser_e_goto_outside_proc=03201;
parser_f_too_complex_proc=03202;
parser_e_illegal_expression=03203;
parser_e_invalid_integer=03204;
parser_e_invalid_qualifier=03205;
parser_e_upper_lower_than_lower=03206;
parser_e_macpas_exit_wrong_param=03207;
parser_e_illegal_assignment_to_count_var=03208;
parser_e_no_local_var_external=03209;
parser_e_proc_already_external=03210;
parser_w_implicit_uses_of_variants_unit=03211;
parser_e_no_static_method_in_interfaces=03212;
parser_e_arithmetic_operation_overflow=03213;
parser_e_protected_or_private_expected=03214;
parser_e_illegal_slice=03215;
parser_e_dispinterface_cant_have_parent=03216;
parser_e_dispinterface_needs_a_guid=03217;
parser_w_overridden_methods_not_same_ret=03218;
parser_e_dispid_must_be_ord_const=03219;
parser_e_array_range_out_of_bounds=03220;
parser_e_packed_element_no_var_addr=03221;
parser_e_packed_dynamic_open_array=03222;
parser_e_packed_element_no_loop=03223;
parser_e_type_var_const_only_in_generics_and_classes=03224;
parser_e_cant_create_generics_of_this_type=03225;
parser_w_no_lineinfo_use_switch=03226;
parser_e_no_funcret_specified=03227;
parser_e_special_onlygenerics=03228;
parser_e_no_generics_as_params=03229;
parser_e_type_object_constants=03230;
parser_e_label_outside_proc=03231;
parser_e_initialized_not_for_external=03233;
parser_e_illegal_function_result=03234;
parser_e_no_common_type=03235;
parser_e_no_generics_as_types=03236;
parser_w_register_list_ignored=03237;
parser_e_implements_must_be_class_or_interface=03238;
parser_e_implements_must_have_correct_type=03239;
parser_e_implements_must_read_specifier=03240;
parser_e_implements_must_not_have_write_specifier=03241;
parser_e_implements_must_not_have_stored_specifier=03242;
parser_e_implements_uses_non_implemented_interface=03243;
parser_e_unsupported_real=03244;
parser_e_class_doesnt_implement_interface=03245;
parser_e_class_implements_must_be_interface=03246;
parser_e_cant_export_var_different_name=03247;
parser_e_weak_external_not_supported=03248;
parser_e_forward_mismatch=03249;
parser_n_ignore_lower_visibility=03250;
parser_e_field_not_allowed_here=03251;
parser_e_no_local_para_def=03252;
parser_e_abstract_and_sealed_conflict=03253;
parser_e_sealed_descendant=03254;
parser_e_sealed_class_cannot_have_abstract_methods=03255;
parser_e_only_virtual_methods_final=03256;
parser_e_final_can_no_be_overridden=03257;
parser_e_multiple_messages=03258;
parser_e_invalid_enumerator_identifier=03259;
parser_e_enumerator_identifier_required=03260;
parser_e_enumerator_movenext_is_not_valid=03261;
parser_e_enumerator_current_is_not_valid=03262;
parser_e_only_one_enumerator_movenext=03263;
parser_e_only_one_enumerator_current=03264;
parser_e_for_in_loop_cannot_be_used_for_the_type=03265;
parser_e_objc_requires_msgstr=03266;
parser_e_objc_no_constructor_destructor=03267;
parser_e_message_string_too_long=03268;
parser_e_objc_message_name_too_long=03269;
parser_h_no_objc_parent=03270;
parser_e_no_objc_published=03271;
parser_f_need_objc=03272;
parser_e_must_use_override_objc=03273;
parser_h_should_use_override_objc=03274;
parser_e_objc_message_name_changed=03275;
parser_e_no_objc_unique=03276;
parser_e_no_category_as_types=03277;
parser_e_no_category_override=03278;
parser_e_must_use_reintroduce_objc=03279;
parser_h_should_use_reintroduce_objc=03280;
parser_e_implements_getter_not_default_cc=03281;
parser_e_no_refcounted_typed_file=03282;
parser_e_operator_not_overloaded_2=03283;
parser_e_operator_not_overloaded_3=03284;
parser_e_more_array_elements_expected=03285;
parser_e_string_const_too_long=03286;
parser_e_invalid_univ_para=03287;
parser_e_only_one_class_constructor_allowed=03288;
parser_e_only_one_class_destructor_allowed=03289;
parser_e_no_paras_for_class_constructor=03290;
parser_e_no_paras_for_class_destructor=03291;
parser_f_modeswitch_objc_required=03292;
parser_e_widestring_to_ansi_compile_time=03293;
parser_e_objc_enumerator_2_0=03294;
parser_e_objc_missing_enumeration_defs=03295;
parser_e_no_procvarnested_const=03296;
parser_f_no_generic_inside_generic=03297;
parser_e_forward_protocol_declaration_must_be_resolved=03298;
parser_e_no_record_published=03299;
parser_e_no_destructor_in_records=03300;
parser_e_class_methods_only_static_in_records=03301;
parser_e_no_constructor_in_records=03302;
type_e_mismatch=04000;
type_e_incompatible_types=04001;
type_e_not_equal_types=04002;
type_e_type_id_expected=04003;
type_e_variable_id_expected=04004;
type_e_integer_expr_expected=04005;
type_e_boolean_expr_expected=04006;
type_e_ordinal_expr_expected=04007;
type_e_pointer_type_expected=04008;
type_e_class_type_expected=04009;
type_e_cant_eval_constant_expr=04011;
type_e_set_element_are_not_comp=04012;
type_e_set_operation_unknown=04013;
type_w_convert_real_2_comp=04014;
type_h_use_div_for_int=04015;
type_e_strict_var_string_violation=04016;
type_e_succ_and_pred_enums_with_assign_not_possible=04017;
type_e_cant_read_write_type=04018;
type_e_no_readln_writeln_for_typed_file=04019;
type_e_no_read_write_for_untyped_file=04020;
type_e_typeconflict_in_set=04021;
type_w_maybe_wrong_hi_lo=04022;
type_e_integer_or_real_expr_expected=04023;
type_e_wrong_type_in_array_constructor=04024;
type_e_wrong_parameter_type=04025;
type_e_no_method_and_procedure_not_compatible=04026;
type_e_wrong_math_argument=04027;
type_e_no_addr_of_constant=04028;
type_e_argument_cant_be_assigned=04029;
type_e_cannot_local_proc_to_procvar=04030;
type_e_no_assign_to_addr=04031;
type_e_no_assign_to_const=04032;
type_e_array_required=04033;
type_e_interface_type_expected=04034;
type_h_mixed_signed_unsigned=04035;
type_w_mixed_signed_unsigned2=04036;
type_e_typecast_wrong_size_for_assignment=04037;
type_e_array_index_enums_with_assign_not_possible=04038;
type_e_classes_not_related=04039;
type_w_classes_not_related=04040;
type_e_class_or_interface_type_expected=04041;
type_e_type_is_not_completly_defined=04042;
type_w_string_too_long=04043;
type_w_signed_unsigned_always_false=04044;
type_w_signed_unsigned_always_true=04045;
type_w_instance_with_abstract=04046;
type_h_in_range_check=04047;
type_w_smaller_possible_range_check=04048;
type_h_smaller_possible_range_check=04049;
type_e_cant_take_address_of_abstract_method=04050;
type_e_assignment_not_allowed=04051;
type_e_constant_expr_expected=04052;
type_e_operator_not_supported_for_types=04053;
type_e_illegal_type_conversion=04054;
type_h_pointer_to_longint_conv_not_portable=04055;
type_w_pointer_to_longint_conv_not_portable=04056;
type_e_cant_choose_overload_function=04057;
type_e_illegal_count_var=04058;
type_w_double_c_varargs=04059;
type_e_class_or_cominterface_type_expected=04060;
type_e_no_const_packed_array=04061;
type_e_got_expected_packed_array=04062;
type_e_got_expected_unpacked_array=04063;
type_e_no_packed_inittable=04064;
type_e_no_const_packed_record=04065;
type_w_untyped_arithmetic_unportable=04066;
type_e_cant_take_address_of_local_subroutine=04076;
type_e_cant_export_local=04077;
type_e_not_automatable=04078;
type_h_convert_add_operands_to_prevent_overflow=04079;
type_h_convert_sub_operands_to_prevent_overflow=04080;
type_h_convert_mul_operands_to_prevent_overflow=04081;
type_w_pointer_to_signed=04082;
type_interface_has_no_guid=04083;
type_e_invalid_objc_selector_name=04084;
type_e_expected_objc_method_but_got=04085;
type_e_expected_objc_method=04086;
type_e_no_type_info=04087;
type_e_ordinal_or_string_expr_expected=04088;
type_e_string_expr_expected=04089;
type_w_zero_to_nil=04090;
type_e_protocol_type_expected=04091;
type_e_objc_type_unsupported=04092;
type_e_class_or_objcclass_type_expected=04093;
type_e_objcclass_type_expected=04094;
type_w_procvar_univ_conflicting_para=04095;
type_e_generics_cannot_reference_itself=04096;
sym_e_id_not_found=05000;
sym_f_internal_error_in_symtablestack=05001;
sym_e_duplicate_id=05002;
sym_h_duplicate_id_where=05003;
sym_e_unknown_id=05004;
sym_e_forward_not_resolved=05005;
sym_e_error_in_type_def=05007;
sym_e_forward_type_not_resolved=05009;
sym_e_only_static_in_static=05010;
sym_f_type_must_be_rec_or_class=05012;
sym_e_no_instance_of_abstract_object=05013;
sym_w_label_not_defined=05014;
sym_e_label_used_and_not_defined=05015;
sym_e_ill_label_decl=05016;
sym_e_goto_and_label_not_supported=05017;
sym_e_label_not_found=05018;
sym_e_id_is_no_label_id=05019;
sym_e_label_already_defined=05020;
sym_e_ill_type_decl_set=05021;
sym_e_class_forward_not_resolved=05022;
sym_n_unit_not_used=05023;
sym_h_para_identifier_not_used=05024;
sym_n_local_identifier_not_used=05025;
sym_h_para_identifier_only_set=05026;
sym_n_local_identifier_only_set=05027;
sym_h_local_symbol_not_used=05028;
sym_n_private_identifier_not_used=05029;
sym_n_private_identifier_only_set=05030;
sym_n_private_method_not_used=05031;
sym_e_set_expected=05032;
sym_w_function_result_not_set=05033;
sym_w_wrong_C_pack=05034;
sym_e_illegal_field=05035;
sym_w_uninitialized_local_variable=05036;
sym_w_uninitialized_variable=05037;
sym_e_id_no_member=05038;
sym_h_param_list=05039;
sym_e_segment_too_large=05040;
sym_e_no_matching_implementation_found=05042;
sym_w_deprecated_symbol=05043;
sym_w_non_portable_symbol=05044;
sym_w_non_implemented_symbol=05055;
sym_e_cant_create_unique_type=05056;
sym_h_uninitialized_local_variable=05057;
sym_h_uninitialized_variable=05058;
sym_w_function_result_uninitialized=05059;
sym_h_function_result_uninitialized=05060;
sym_w_identifier_only_read=05061;
sym_h_abstract_method_list=05062;
sym_w_experimental_symbol=05063;
sym_w_forward_not_resolved=05064;
sym_w_library_symbol=05065;
sym_w_deprecated_symbol_with_msg=05066;
sym_e_no_enumerator=05067;
sym_e_no_enumerator_move=05068;
sym_e_no_enumerator_current=05069;
sym_e_objc_para_mismatch=05070;
sym_n_private_type_not_used=05071;
sym_n_private_const_not_used=05072;
sym_n_private_property_not_used=05073;
sym_w_deprecated_unit=05074;
sym_w_deprecated_unit_with_msg=05075;
sym_w_non_portable_unit=05076;
sym_w_library_unit=05077;
sym_w_non_implemented_unit=05078;
sym_w_experimental_unit=05079;
sym_e_objc_formal_class_not_resolved=05080;
sym_e_interprocgoto_into_init_final_code_not_allowed=05081;
cg_e_parasize_too_big=06009;
cg_e_file_must_call_by_reference=06012;
cg_e_cant_use_far_pointer_there=06013;
cg_e_dont_call_exported_direct=06015;
cg_w_member_cd_call_from_method=06016;
cg_n_inefficient_code=06017;
cg_w_unreachable_code=06018;
cg_e_cant_call_abstract_method=06020;
cg_d_register_weight=06027;
cg_d_stackframe_omited=06029;
cg_e_unable_inline_object_methods=06031;
cg_e_unable_inline_procvar=06032;
cg_e_no_code_for_inline_stored=06033;
cg_e_can_access_element_zero=06035;
cg_e_cannot_call_cons_dest_inside_with=06037;
cg_e_cannot_call_message_direct=06038;
cg_e_goto_inout_of_exception_block=06039;
cg_e_control_flow_outside_finally=06040;
cg_w_parasize_too_big=06041;
cg_w_localsize_too_big=06042;
cg_e_localsize_too_big=06043;
cg_e_break_not_allowed=06044;
cg_e_continue_not_allowed=06045;
cg_f_unknown_compilerproc=06046;
cg_f_unknown_system_type=06047;
cg_h_inherited_ignored=06048;
cg_e_goto_label_not_found=06049;
cg_f_unknown_type_in_unit=06050;
cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051;
cg_e_labels_cannot_defined_outside_declaration_scope=06052;
cg_e_goto_across_procedures_with_exceptions_not_allowed=06053;
asmr_d_start_reading=07000;
asmr_d_finish_reading=07001;
asmr_e_none_label_contain_at=07002;
asmr_e_building_record_offset=07004;
asmr_e_offset_without_identifier=07005;
asmr_e_type_without_identifier=07006;
asmr_e_no_local_or_para_allowed=07007;
asmr_e_need_offset=07008;
asmr_e_need_dollar=07009;
asmr_e_cant_have_multiple_relocatable_symbols=07010;
asmr_e_only_add_relocatable_symbol=07011;
asmr_e_invalid_constant_expression=07012;
asmr_e_relocatable_symbol_not_allowed=07013;
asmr_e_invalid_reference_syntax=07014;
asmr_e_local_para_unreachable=07015;
asmr_e_local_label_not_allowed_as_ref=07016;
asmr_e_wrong_base_index=07017;
asmr_w_possible_object_field_bug=07018;
asmr_e_wrong_scale_factor=07019;
asmr_e_multiple_index=07020;
asmr_e_invalid_operand_type=07021;
asmr_e_invalid_string_as_opcode_operand=07022;
asmr_w_CODE_and_DATA_not_supported=07023;
asmr_e_null_label_ref_not_allowed=07024;
asmr_e_expr_zero_divide=07025;
asmr_e_expr_illegal=07026;
asmr_e_escape_seq_ignored=07027;
asmr_e_invalid_symbol_ref=07028;
asmr_w_fwait_emu_prob=07029;
asmr_w_fadd_to_faddp=07030;
asmr_w_enter_not_supported_by_linux=07031;
asmr_w_calling_overload_func=07032;
asmr_e_unsupported_symbol_type=07033;
asmr_e_constant_out_of_bounds=07034;
asmr_e_error_converting_decimal=07035;
asmr_e_error_converting_octal=07036;
asmr_e_error_converting_binary=07037;
asmr_e_error_converting_hexadecimal=07038;
asmr_h_direct_global_to_mangled=07039;
asmr_w_direct_global_is_overloaded_func=07040;
asmr_e_cannot_use_SELF_outside_a_method=07041;
asmr_e_cannot_use_OLDEBP_outside_nested_procedure=07042;
asmr_e_void_function=07043;
asmr_e_SEG_not_supported=07044;
asmr_e_size_suffix_and_dest_dont_match=07045;
asmr_w_size_suffix_and_dest_dont_match=07046;
asmr_e_syntax_error=07047;
asmr_e_invalid_opcode_and_operand=07048;
asmr_e_syn_operand=07049;
asmr_e_syn_constant=07050;
asmr_e_invalid_string_expression=07051;
asmr_w_const32bit_for_address=07052;
asmr_e_unknown_opcode=07053;
asmr_e_invalid_or_missing_opcode=07054;
asmr_e_invalid_prefix_and_opcode=07055;
asmr_e_invalid_override_and_opcode=07056;
asmr_e_too_many_operands=07057;
asmr_w_near_ignored=07058;
asmr_w_far_ignored=07059;
asmr_e_dup_local_sym=07060;
asmr_e_unknown_local_sym=07061;
asmr_e_unknown_label_identifier=07062;
asmr_e_invalid_register=07063;
asmr_e_invalid_fpu_register=07064;
asmr_w_modulo_not_supported=07066;
asmr_e_invalid_float_const=07067;
asmr_e_invalid_float_expr=07068;
asmr_e_wrong_sym_type=07069;
asmr_e_cannot_index_relative_var=07070;
asmr_e_invalid_seg_override=07071;
asmr_w_id_supposed_external=07072;
asmr_e_string_not_allowed_as_const=07073;
asmr_e_no_var_type_specified=07074;
asmr_w_assembler_code_not_returned_to_text=07075;
asmr_e_not_directive_or_local_symbol=07076;
asmr_w_using_defined_as_local=07077;
asmr_e_dollar_without_identifier=07078;
asmr_w_32bit_const_for_address=07079;
asmr_n_align_is_target_specific=07080;
asmr_e_cannot_access_field_directly_for_parameters=07081;
asmr_e_cannot_access_object_field_directly=07082;
asmr_e_unable_to_determine_reference_size=07083;
asmr_e_cannot_use_RESULT_here=07084;
asmr_w_adding_explicit_args_fXX=07086;
asmr_w_adding_explicit_first_arg_fXX=07087;
asmr_w_adding_explicit_second_arg_fXX=07088;
asmr_e_invalid_char_smaller=07089;
asmr_e_invalid_char_greater=07090;
asmr_w_align_not_supported=07093;
asmr_e_no_inc_and_dec_together=07094;
asmr_e_invalid_reg_list_in_movem=07095;
asmr_e_invalid_reg_list_for_opcode=07096;
asmr_e_higher_cpu_mode_required=07097;
asmr_w_unable_to_determine_reference_size_using_dword=07098;
asmr_e_illegal_shifterop_syntax=07099;
asmr_e_packed_element=07100;
asmr_w_unable_to_determine_reference_size_using_byte=07101;
asmr_w_no_direct_ebp_for_parameter=07102;
asmr_w_direct_ebp_for_parameter_regcall=07103;
asmr_w_direct_ebp_neg_offset=07104;
asmr_w_direct_esp_neg_offset=07105;
asmr_e_no_vmtoffset_possible=07106;
asmr_e_need_pic_ref=07107;
asmr_e_mixing_regtypes=07108;
asmr_e_empty_regset=07109;
asmr_w_useless_got_for_local=07110;
asmw_f_too_many_asm_files=08000;
asmw_f_assembler_output_not_supported=08001;
asmw_f_comp_not_supported=08002;
asmw_f_direct_not_supported=08003;
asmw_e_alloc_data_only_in_bss=08004;
asmw_f_no_binary_writer_selected=08005;
asmw_e_opcode_not_in_table=08006;
asmw_e_invalid_opcode_and_operands=08007;
asmw_e_16bit_not_supported=08008;
asmw_e_invalid_effective_address=08009;
asmw_e_immediate_or_reference_expected=08010;
asmw_e_value_exceeds_bounds=08011;
asmw_e_short_jmp_out_of_range=08012;
asmw_e_undefined_label=08013;
asmw_e_comp_not_supported=08014;
asmw_e_extended_not_supported=08015;
asmw_e_duplicate_label=08016;
asmw_e_redefined_label=08017;
asmw_e_first_defined_label=08018;
asmw_e_invalid_register=08019;
asmw_e_16bit_32bit_not_supported=08020;
asmw_e_64bit_not_supported=08021;
exec_w_source_os_redefined=09000;
exec_i_assembling_pipe=09001;
exec_d_cant_create_asmfile=09002;
exec_e_cant_create_objectfile=09003;
exec_e_cant_create_archivefile=09004;
exec_e_assembler_not_found=09005;
exec_t_using_assembler=09006;
exec_e_error_while_assembling=09007;
exec_e_cant_call_assembler=09008;
exec_i_assembling=09009;
exec_i_assembling_smart=09010;
exec_w_objfile_not_found=09011;
exec_w_libfile_not_found=09012;
exec_e_error_while_linking=09013;
exec_e_cant_call_linker=09014;
exec_i_linking=09015;
exec_e_util_not_found=09016;
exec_t_using_util=09017;
exec_e_exe_not_supported=09018;
exec_e_dll_not_supported=09019;
exec_i_closing_script=09020;
exec_e_res_not_found=09021;
exec_i_compilingresource=09022;
exec_t_unit_not_static_linkable_switch_to_smart=09023;
exec_t_unit_not_smart_linkable_switch_to_static=09024;
exec_t_unit_not_shared_linkable_switch_to_static=09025;
exec_e_unit_not_smart_or_static_linkable=09026;
exec_e_unit_not_shared_or_static_linkable=09027;
exec_d_resbin_params=09028;
exec_e_error_while_compiling_resources=09029;
exec_e_cant_call_resource_compiler=09030;
exec_e_cant_open_resource_file=09031;
exec_e_cant_write_resource_file=09032;
execinfo_f_cant_process_executable=09128;
execinfo_f_cant_open_executable=09129;
execinfo_x_codesize=09130;
execinfo_x_initdatasize=09131;
execinfo_x_uninitdatasize=09132;
execinfo_x_stackreserve=09133;
execinfo_x_stackcommit=09134;
link_f_executable_too_big=09200;
link_w_32bit_absolute_reloc=09201;
unit_t_unitsearch=10000;
unit_t_ppu_loading=10001;
unit_u_ppu_name=10002;
unit_u_ppu_flags=10003;
unit_u_ppu_crc=10004;
unit_u_ppu_time=10005;
unit_u_ppu_file_too_short=10006;
unit_u_ppu_invalid_header=10007;
unit_u_ppu_invalid_version=10008;
unit_u_ppu_invalid_processor=10009;
unit_u_ppu_invalid_target=10010;
unit_u_ppu_source=10011;
unit_u_ppu_write=10012;
unit_f_ppu_cannot_write=10013;
unit_f_ppu_read_error=10014;
unit_f_ppu_read_unexpected_end=10015;
unit_f_ppu_invalid_entry=10016;
unit_f_ppu_dbx_count_problem=10017;
unit_e_illegal_unit_name=10018;
unit_f_too_much_units=10019;
unit_f_circular_unit_reference=10020;
unit_f_cant_compile_unit=10021;
unit_f_cant_find_ppu=10022;
unit_w_unit_name_error=10023;
unit_f_unit_name_error=10024;
unit_w_switch_us_missed=10025;
unit_f_errors_in_unit=10026;
unit_u_load_unit=10027;
unit_u_recompile_crc_change=10028;
unit_u_recompile_source_found_alone=10029;
unit_u_recompile_staticlib_is_older=10030;
unit_u_recompile_sharedlib_is_older=10031;
unit_u_recompile_obj_and_asm_older=10032;
unit_u_recompile_obj_older_than_asm=10033;
unit_u_parsing_interface=10034;
unit_u_parsing_implementation=10035;
unit_u_second_load_unit=10036;
unit_u_check_time=10037;
unit_w_cant_compile_unit_with_changed_incfile=10040;
unit_u_source_modified=10041;
unit_u_ppu_invalid_fpumode=10042;
unit_u_loading_interface_units=10043;
unit_u_loading_implementation_units=10044;
unit_u_interface_crc_changed=10045;
unit_u_implementation_crc_changed=10046;
unit_u_finished_compiling=10047;
unit_u_add_depend_to=10048;
unit_u_no_reload_is_caller=10049;
unit_u_no_reload_in_second_compile=10050;
unit_u_flag_for_reload=10051;
unit_u_forced_reload=10052;
unit_u_previous_state=10053;
unit_u_second_compile_unit=10054;
unit_u_loading_unit=10055;
unit_u_finished_loading_unit=10056;
unit_u_registering_new_unit=10057;
unit_u_reresolving_unit=10058;
unit_u_skipping_reresolving_unit=10059;
unit_u_unload_resunit=10060;
unit_e_different_wpo_file=10061;
unit_u_indirect_crc_changed=10062;
option_usage=11000;
option_only_one_source_support=11001;
option_def_only_for_os2=11002;
option_no_nested_response_file=11003;
option_no_source_found=11004;
option_no_option_found=11005;
option_illegal_para=11006;
option_help_pages_para=11007;
option_too_many_cfg_files=11008;
option_unable_open_file=11009;
option_reading_further_from=11010;
option_target_is_already_set=11011;
option_no_shared_lib_under_dos=11012;
option_too_many_ifdef=11013;
option_too_many_endif=11014;
option_too_less_endif=11015;
option_no_debug_support=11016;
option_no_debug_support_recompile_fpc=11017;
option_obsolete_switch=11018;
option_obsolete_switch_use_new=11019;
option_switch_bin_to_src_assembler=11020;
option_incompatible_asm=11021;
option_asm_forced=11022;
option_using_file=11026;
option_using_env=11027;
option_handling_option=11028;
option_help_press_enter=11029;
option_start_reading_configfile=11030;
option_end_reading_configfile=11031;
option_interpreting_option=11032;
option_interpreting_firstpass_option=11036;
option_interpreting_file_option=11033;
option_read_config_file=11034;
option_found_file=11035;
option_code_page_not_available=11039;
option_config_is_dir=11040;
option_confict_asm_debug=11041;
option_ppc386_deprecated=11042;
option_else_without_if=11043;
option_unsupported_target=11044;
option_unsupported_target_for_feature=11045;
option_dwarf_smart_linking=11046;
option_ignored_target=11047;
option_debug_external_unsupported=11048;
wpo_cant_find_file=12000;
wpo_begin_processing=12001;
wpo_end_processing=12002;
wpo_expected_section=12003;
wpo_no_section_handler=12004;
wpo_found_section=12005;
wpo_no_input_specified=12006;
wpo_not_enough_info=12007;
wpo_no_output_specified=12008;
wpo_output_without_info_gen=12009;
wpo_input_without_info_use=12010;
wpo_skipping_unnecessary_section=12011;
wpo_duplicate_wpotype=12012;
wpo_cannot_extract_live_symbol_info_strip=12013;
wpo_cannot_extract_live_symbol_info_no_link=12014;
wpo_cannot_find_symbol_progs=12015;
wpo_error_reading_symbol_file=12016;
wpo_error_executing_symbol_prog=12017;
wpo_symbol_live_info_needs_smart_linking=12018;
wpo_cant_create_feedback_file=12019;
option_logo=11023;
option_info=11024;
option_help_pages=11025;
MsgTxtSize = 58202;
MsgIdxMax : array[1..20] of longint=(
24,88,303,97,82,54,111,22,202,63,
49,20,1,1,1,1,1,1,1,1
);