P_COMMANDS
**********


NAME
====

   P_COMMANDS "commands"


DEFINIERT IN
============

   <thing/commands.h>


BESCHREIBUNG
============

   Diese Property enthaelt ein Mapping mit den Befehlen, die dem Objekt
   zugeordnet sind.

   Sie sollte nicht von Hand manipuliert werden, sondern nur ueber die
   Funktionen AddCmd() und RemoveCmd().

   Das Mapping hat folgenden Aufbau:

   ([ befehl : ({funktion1,...});
               ({flag1,...});
               ({regel1,...});
               ({id1, ...}),
               ({closure auf fun1, ...}),
      ... ])

   Die Eintraege entsprechen den Parametern des AddCmd()-Aufrufs, sind
   aber in anderer Form. Als Beispiel:

   AddCmd(verb,fun1,1);
   AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c, fun2,
          error1_notify|error2_notify^error2_write);
   -->
   ([verb:
      ({fun1,fun2});                                        // funs
      ({1,({error1_notify, error2_write^error2_say, 1})});  // flags
      ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})});      // rules
      0;                                                    // IDs
      ({closure auf fun1, closure auf fun2}) ])             // Cache

   Funs:  ({<fun1> ,...
            'fun' kann sein: Closure
                             String: Methodenname - wird etwas geprueft
                             Objekt: wenn keine Methode, this_object() fuer
                                     intern, previous_object() fuer extern
                             0 (erloschenes externes Objekt)
   Rules: ({<Regelsatz fuer fun1>, ({<1. Synonymgruppe>,
                                     <2. Synonymgruppe, ...}), ...})
   Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... ,
                                [, Index fuer write anstatt notify_fail]}),
           ... })
   IDs:   0 oder ({<ID fuer fun1>}) oder ({0, <ID fuer fun2>}) ...
   Cache: ({<closure fuer fun1>, ...


BEMERKUNGEN
===========

   Cache-Closures sind bei Export immer genullt


SIEHE AUCH
==========

   /std/thing/commands.c, AddCmd(), RemoveCmd()

16. Dez 2016 Gloinson
