
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
