I've had some fun with this, getting the 'protected' and 'task' items in sync 
with each other and, for completeness, handling code like

   task type Discriminated_Extending_Task_Type
     (B : Boolean)
   with
     Convention => Ada,
     Export
   is
      new Sync
   with
      entry Foo;
   end Discriminated_Extending_Task_Type;

with the exception that for any protected type

   protected type Simple_PO_Type
   with --xx
     Convention => Ada,
     Export
   is
      entry Foo;
   private
      I : Integer;
   end Simple_PO_Type;

putting the cursor on the commented 'with' line and TAB results in 

Error: (error "cl-ecase failed: protected_type_declaration, (aggregate 
component_declaration entry_body formal_package_declaration 
task_type_declaration subtype_declaration single_task_declaration 
single_protected_declaration full_type_declaration generic_instantiation 
generic_renaming_declaration object_declaration private_extension_declaration 
private_type_declaration qualified_expression statement 
null_procedure_declaration subprogram_specification subprogram_declaration 
subprogram_body expression_function_declaration 
abstract_subprogram_declaration)")
if: Wrong type argument: number-or-marker-p, nil

which is *very*surprising* since (to me!) 'protected_type_declaration' and 
'task_type_declaration' have exactly the same structure in the modified 
ada-grammar.wy.

It seems to be something to do with 'aspect_specification_opt'.

Attachment: ada-grammar.wy.diff
Description: Binary data


Attachment: multiline_tasks_pos.ads
Description: Binary data


_______________________________________________
Emacs-ada-mode mailing list
[email protected]
http://host114.hostmonster.com/mailman/listinfo/emacs-ada-mode_stephe-leake.org

Reply via email to