|
@@ -1176,24 +1176,84 @@ unit scandir;
|
|
|
{ delphi compatible warn directive:
|
|
|
$warn <identifier> on
|
|
|
$warn <identifier> off
|
|
|
+ $warn <identifier> error
|
|
|
not implemented yet
|
|
|
}
|
|
|
procedure dir_warn;
|
|
|
var
|
|
|
+ ident : string;
|
|
|
state : string;
|
|
|
+ msgstate : tmsgstate;
|
|
|
begin
|
|
|
current_scanner.skipspace;
|
|
|
- current_scanner.readid;
|
|
|
+ ident:=current_scanner.readid;
|
|
|
current_scanner.skipspace;
|
|
|
state:=current_scanner.readid;
|
|
|
- if (upper(state)='ON') then
|
|
|
+
|
|
|
+ { support both delphi and fpc switches }
|
|
|
+ if (state='ON') or (state='+') then
|
|
|
+ msgstate:=ms_on
|
|
|
+ else
|
|
|
+ if (state='OFF') or (state='-') then
|
|
|
+ msgstate:=ms_off
|
|
|
+ else
|
|
|
+ if (state='ERROR') then
|
|
|
+ msgstate:=ms_error
|
|
|
+ else
|
|
|
+ begin
|
|
|
+ Message1(scanner_e_illegal_warn_state,state);
|
|
|
+ exit;
|
|
|
+ end;
|
|
|
+
|
|
|
+ if ident='CONSTRUCTING_ABSTRACT' then
|
|
|
+ recordpendingmessagestate(type_w_instance_with_abstract, msgstate)
|
|
|
+ else
|
|
|
+ if ident='IMPLICIT_VARIANTS' then
|
|
|
+ recordpendingmessagestate(parser_w_implicit_uses_of_variants_unit, msgstate)
|
|
|
+ else
|
|
|
+ if ident='NO_RETVAL' then
|
|
|
+ recordpendingmessagestate(sym_w_function_result_not_set, msgstate)
|
|
|
+ else
|
|
|
+ if ident='SYMBOL_DEPRECATED' then
|
|
|
begin
|
|
|
+ recordpendingmessagestate(sym_w_deprecated_symbol, msgstate);
|
|
|
+ recordpendingmessagestate(sym_w_deprecated_symbol_with_msg, msgstate);
|
|
|
end
|
|
|
- else if (upper(state)='OFF') then
|
|
|
+ else
|
|
|
+ if ident='SYMBOL_EXPERIMENTAL' then
|
|
|
+ recordpendingmessagestate(sym_w_experimental_symbol, msgstate)
|
|
|
+ else
|
|
|
+ if ident='SYMBOL_LIBRARY' then
|
|
|
+ recordpendingmessagestate(sym_w_library_symbol, msgstate)
|
|
|
+ else
|
|
|
+ if ident='SYMBOL_PLATFORM' then
|
|
|
+ recordpendingmessagestate(sym_w_non_portable_symbol, msgstate)
|
|
|
+ else
|
|
|
+ if ident='SYMBOL_UNIMPLEMENTED' then
|
|
|
+ recordpendingmessagestate(sym_w_non_implemented_symbol, msgstate)
|
|
|
+ else
|
|
|
+ if ident='UNIT_DEPRECATED' then
|
|
|
begin
|
|
|
+ recordpendingmessagestate(sym_w_deprecated_unit, msgstate);
|
|
|
+ recordpendingmessagestate(sym_w_deprecated_unit_with_msg, msgstate);
|
|
|
end
|
|
|
else
|
|
|
- Message1(scanner_e_illegal_warn_state,state);
|
|
|
+ if ident='UNIT_EXPERIMENTAL' then
|
|
|
+ recordpendingmessagestate(sym_w_experimental_unit, msgstate)
|
|
|
+ else
|
|
|
+ if ident='UNIT_LIBRARY' then
|
|
|
+ recordpendingmessagestate(sym_w_library_unit, msgstate)
|
|
|
+ else
|
|
|
+ if ident='UNIT_PLATFORM' then
|
|
|
+ recordpendingmessagestate(sym_w_non_portable_unit, msgstate)
|
|
|
+ else
|
|
|
+ if ident='UNIT_UNIMPLEMENTED' then
|
|
|
+ recordpendingmessagestate(sym_w_non_implemented_unit, msgstate)
|
|
|
+ else
|
|
|
+ if ident='ZERO_NIL_COMPAT' then
|
|
|
+ recordpendingmessagestate(type_w_zero_to_nil, msgstate)
|
|
|
+ else
|
|
|
+ Message1(scanner_w_illegal_warn_identifier,ident);
|
|
|
end;
|
|
|
|
|
|
procedure dir_warning;
|