Alexander Klenin wrote:
2) parse_object_options consumes exactly one exemplar of either
"abstract" or "sealed".
  actually, Delphi allows arbitrary number of these keywords (e.g.
"class abstract abstract").
  This is pointless, but I think should be allowed for compatibility,
perhaps with a warning.
Done with no warning/hints. I decided not to show warning since fpc allows to declare methods with many 'abstract'.
  Also, this code would be hard to extend in case some more options are needed.
  I would suggest to trite it as a loop adding all options,
  and then after the loop check for conflicts:
     if [oo_is_abstract, oo_is_sealed] *
current_objectdef.objectoptions =  [oo_is_abstract, oo_is_sealed] then
error;
Ok.
  Finally, I think the function should be named parse_class_options.
no, later it could be used for another types of objects.
3) This patch introduces new keyword -- what about backwards
compatibility? The code like:
  type T = class sealed: Boolean; end;
will stop compiling after the patch. Maybe it is better to use another syntax?
Same with any other keywords. If we want to compile delphi projects then we need to support delphi syntax.
Besides, I have some comments on the feature itself.
Feature was made to support delphi syntax and it do this in almost 100% compatible way. If there are some problems with this then I can modify the patch to allow this only in delphi mode.

Best regards,
Paul Ishenin.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to