This documenta- tion describes the current state of development.
Note that interfaces and functionality may still change.

Prokee Modules:
  A
  B
  C
  D
  E
  F
  G
  I
  L
  M
  N
  O
  P
  R
  S
  T
  U
  W

     open all    |    close all

GUI Elements:
  B
  C
  I
  M
  P
  R
  S
  T

     open all    |    close all

GUI Interactions:
  B
  F
  H
  S

     open all    |    close all

GUI Layouts:
  L

     open all    |    close all

Games/Demos:
  M

     open all    |    close all

Third Party Libraries:
  P
  F
  Z

     open all    |    close all

Information about this Website / Informationen zu dieser Webseite:
In case of any questions, or comments, please feel free to contact me via email at apoll500@gmail.com.

Module dfa [Version: v01] (Interface Dfa)

   [AbstractDfa]

Contents

Inheritance:
AbstractDfa
Implementations: Dfa

Constructors:
Dfa (version 1)
AbstractDfa *createDfa()
Dfa (version 2)
AbstractDfa *createDfa(const void *(*owner_callback)(const void *s,const void *c))
Dfa (version 3)
AbstractDfa *createDfa(void *context,const void *(*owner_callback)(const void *s,const void *c))
Dfa (version 4)
AbstractDfa *createDfa(void *context)
Dfa (version 5)
AbstractDfa *createDfa(void *context,const char *startNodeName)
Dfa (version 6)
AbstractDfa *createDfa(void *context,const char *startNodeName,const void *(*node_callback)(const void *s,const void *c))
Dfa (version 7)
AbstractDfa *createDfa(void *context,const char *startNodeName,const void *(*node_callback)(const void *s,const void *c),const void *(*error)(const void *s,const void *c))

Methods:
Feeding Tokens:
feed (version 1)
int feed(int token)
feed (version 2)
int feed(const char *str)
feed (version 3)
int feed(const char32_t *str)
Eigenshaften des aktuellen Knotens abfragen/ändern:
getCurrentNodeName
const char *getCurrentNodeName()
renameCurrentNode
void renameCurrentNode(const char *str)
getCurrentNodeEdgeCount
int getCurrentNodeEdgeCount()
getCurrentNodeEdgeTokenCount
int getCurrentNodeEdgeTokenCount(int i)
getCurrentNodeEdgeToken
int getCurrentNodeEdgeToken(int i,int j)
Knoten hinzufügen:
addNode (version 1)
void addNode(const char *name)
addNode (version 2)
void addNode(const char *name,const void *(*node_callback)(const void *s,const void *c))
Den Automaten ausgeben/speichern:
print
int print()
write
int write(FILE *f,int style)
saveDfa (version 1)
int saveDfa(const char *filename,int style)
saveDfa (version 2) [WIN_ONLY]
int saveDfa(const wchar_t *filename,int style)
Einen Automaten laden:
loadDfa (version 1)
int loadDfa(const char *filename)
loadDfa (version 2) [WIN_ONLY]
int loadDfa(const wchar_t *filename)
loadDfa (version 3)
int loadDfa(const char *buffer,int buffer_length)
loadDfa (version 4)
int loadDfa(AbsBasicCompactScanner *s)
loadDfa (version 5)
int loadDfa(AbsBasicCompactBufferScanner *s)
loadDfa (version 6)
int loadDfa(AbsBasicCompactFileScanner *s)
loadDfa_compact (version 1)
int loadDfa_compact(AbsBasicCompactBufferScanner *s)
loadDfa_compact (version 2)
int loadDfa_compact(AbsBasicCompactFileScanner *s)
loadDfa_compact (version 3)
int loadDfa_compact(AbsBasicCompactScanner *s)
setContext
void setContext(void *context)
setErrorCallback
void setErrorCallback(const void *(*error)(const void *s,const void *c))
setOwnerCallback
void setOwnerCallback(const void *(*owner_callback)(const void *s,const void *c))
reset
void reset()
setPos
bool setPos(const char *name)
setStartNode
void setStartNode(const char *startNodeName)
setEndStatus
bool setEndStatus(const char *name,bool status)
Kanten hinzufügen:
addLink (version 1)
bool addLink(const char *name_from,const char *name_to,std::vector< int > tokens,const void *(*callback)(const void *s,const void *c))
addLink (version 2)
bool addLink(const char *name_from,const char *name_to,int *tokens,const void *(*callback)(const void *s,const void *c))
addLink (version 3)
bool addLink(const char *name_from,const char *name_to,int token,const void *(*callback)(const void *s,const void *c))
addLink (version 4)
bool addLink(const char *name_from,const char *name_to,int token)
addLink (version 5)
bool addLink(const char *name_from,const char *name_to,std::vector< int > tokens)
addLink (version 6)
bool addLink(const char *name_from,const char *name_to,int *tokens)
addLink (version 7)
bool addLink(const char *name_from,const char *name_to,const void *(*callback)(const void *s,const void *c))
addLink (version 8)
bool addLink(const char *name_from,const char *name_to)

Motivation

A deterministic finite automaton.


Constructors

   Dfa (version 1)


...

Constructor:
Dfa()

Factory Method:
AbstractDfa *AbstractDfaInterface::createDfa()

Wrapper Class:
DfaWrapper()

The static method AbstractDfaInterface::createDfa creates a new instance of class Dfa.

Return value:
Returns an instance of Dfa.

Remarks:
...

   Dfa (version 2)


...

Constructor:
Dfa(const void *(*owner_callback)(const void *s,const void *c))

Factory Method:
AbstractDfa *AbstractDfaInterface::createDfa(const void *(*owner_callback)(const void *s,const void *c))

Wrapper Class:
DfaWrapper(const void *(*owner_callback)(const void *s,const void *c))

The static method AbstractDfaInterface::createDfa creates a new instance of class Dfa.

Parameters:
Type Name Direction Description
const void *(*owner_callback)
(
   const void *s
,
   const void *c
)
[IN] Pointer auf die Callback-Funktion die Informationen zu Callback-Funktionen zurückgibt.

Beispiel:
const void *info_func(const void *s,const void *c)
{
    if(strcmp((const char *)s,"getFunctionName")==0)
    {
        if(c==err_func)return "err_func";
        if(c==node_func)return "node_func";
        if(c==link_func)return "link_func";
        if(c==info_func)return "info_func";
        return "(unknown function)";
    }
    else if(strcmp((const char *)s,"getFunctionPointer")==0)
    {
        if(strcmp((const char *)c,"err_func")==0)return (const void *)err_func;
        if(strcmp((const char *)c,"node_func")==0)return (const void *)node_func;
        if(strcmp((const char *)c,"link_func")==0)return (const void *)link_func;
        if(strcmp((const char *)c,"info_func")==0)return (const void *)info_func;
    }
    return 0;
}

Parameter
s: Ein Pointer auf einen null-terminierten String.
  • Falls "getFunctionName" angegeben wurde:
    In diesem Fall soll die Funktion den Funktionsnamen einer Callback-Funktion zurückgeben. Die Callback-Funktion wird durch Parameter c festgelegt, welcher die Adresse der Callback-Funktion enthält.
  • Falls "getFunctionPointer" angegeben wurde:
    In diesem Fall soll die Funktion den Funktionspointer auf eine Callback-Funktion zurückgeben. Die gesuchte Callback-Funktion, wird durch Parameter c angegeben, welcher auf den Namen der Callback-Funktion als null-terminierten String zeigt.

c: Ein Pointer auf einen null-terminierten String oder ein Pointer auf eine Callback-Funktion.
Return value
Entweder der Funktionsname (als null-terminierter String) oder ein Pointer auf die Callback-Funktion, welche durch Parameter c angegeben wird. Existiert die nachgefragte Funktion nicht, so soll die Funktion anstelle des Funktionspointers NULL und anstelle des Funktionsnamens eine Fehlermeldung als null-terminierten String in runden Klammern (s. Beispiel oben) oder einen Leerstring, jedoch nicht NULL zurückgeben.

Return value:
Returns an instance of Dfa.

Remarks:
...

   Dfa (version 3)


...

Constructor:
Dfa(void *context,const void *(*owner_callback)(const void *s,const void *c))

Factory Method:
AbstractDfa *AbstractDfaInterface::createDfa(void *context,const void *(*owner_callback)(const void *s,const void *c))

Wrapper Class:
DfaWrapper(void *context,const void *(*owner_callback)(const void *s,const void *c))

The static method AbstractDfaInterface::createDfa creates a new instance of class Dfa.

Parameters:
Type Name Direction Description
void *context[IN/OUT]context
const void *(*owner_callback)
(
   const void *s
,
   const void *c
)
[IN] Pointer auf die Callback-Funktion die Informationen zu Callback-Funktionen zurückgibt.

Beispiel:
const void *info_func(const void *s,const void *c)
{
    if(strcmp((const char *)s,"getFunctionName")==0)
    {
        if(c==err_func)return "err_func";
        if(c==node_func)return "node_func";
        if(c==link_func)return "link_func";
        if(c==info_func)return "info_func";
        return "(unknown function)";
    }
    else if(strcmp((const char *)s,"getFunctionPointer")==0)
    {
        if(strcmp((const char *)c,"err_func")==0)return (const void *)err_func;
        if(strcmp((const char *)c,"node_func")==0)return (const void *)node_func;
        if(strcmp((const char *)c,"link_func")==0)return (const void *)link_func;
        if(strcmp((const char *)c,"info_func")==0)return (const void *)info_func;
    }
    return 0;
}

Parameter
s: Ein Pointer auf einen null-terminierten String.
  • Falls "getFunctionName" angegeben wurde:
    In diesem Fall soll die Funktion den Funktionsnamen einer Callback-Funktion zurückgeben. Die Callback-Funktion wird durch Parameter c festgelegt, welcher die Adresse der Callback-Funktion enthält.
  • Falls "getFunctionPointer" angegeben wurde:
    In diesem Fall soll die Funktion den Funktionspointer auf eine Callback-Funktion zurückgeben. Die gesuchte Callback-Funktion, wird durch Parameter c angegeben, welcher auf den Namen der Callback-Funktion als null-terminierten String zeigt.

c: Ein Pointer auf einen null-terminierten String oder ein Pointer auf eine Callback-Funktion.
Return value
Entweder der Funktionsname (als null-terminierter String) oder ein Pointer auf die Callback-Funktion, welche durch Parameter c angegeben wird. Existiert die nachgefragte Funktion nicht, so soll die Funktion anstelle des Funktionspointers NULL und anstelle des Funktionsnamens eine Fehlermeldung als null-terminierten String in runden Klammern (s. Beispiel oben) oder einen Leerstring, jedoch nicht NULL zurückgeben.

Return value:
Returns an instance of Dfa.

Remarks:
...

   Dfa (version 4)


...

Constructor:
Dfa(void *context)

Factory Method:
AbstractDfa *AbstractDfaInterface::createDfa(void *context)

Wrapper Class:
DfaWrapper(void *context)

The static method AbstractDfaInterface::createDfa creates a new instance of class Dfa.

Parameters:
Type Name Direction Description
void *context[IN/OUT]context

Return value:
Returns an instance of Dfa.

Remarks:
...

   Dfa (version 5)


...

Constructor:
Dfa(void *context,const char *startNodeName)

Factory Method:
AbstractDfa *AbstractDfaInterface::createDfa(void *context,const char *startNodeName)

Wrapper Class:
DfaWrapper(void *context,const char *startNodeName)

The static method AbstractDfaInterface::createDfa creates a new instance of class Dfa.

Parameters:
Type Name Direction Description
void *context[IN/OUT]context
const char *startNodeName[IN]Der Name des Startknotens

Return value:
Returns an instance of Dfa.

Remarks:
...

   Dfa (version 6)


...

Constructor:
Dfa(void *context,const char *startNodeName,const void *(*node_callback)(const void *s,const void *c))

Factory Method:
AbstractDfa *AbstractDfaInterface::createDfa(void *context,const char *startNodeName,const void *(*node_callback)(const void *s,const void *c))

Wrapper Class:
DfaWrapper(void *context,const char *startNodeName,const void *(*node_callback)(const void *s,const void *c))

The static method AbstractDfaInterface::createDfa creates a new instance of class Dfa.

Parameters:
Type Name Direction Description
void *context[IN/OUT]context
const char *startNodeName[IN]Der Name des Startknotens
const void *(*node_callback)
(
   const void *s
,
   const void *c
)
[IN] Funktion, die beim betreten des Knotens aufgerufen werden soll oder NULL falls keine Callback-Funktion aufgerufen werden soll.
Parameter
s: Pointer auf eine Datenstruktur, die Inforationen zum aktuellen Status des DFA enthält.
c: Pointer auf den Kontext des DFA.
Return value
Rückgabewert der Callback-Funktion

Return value:
Returns an instance of Dfa.

Remarks:
...

   Dfa (version 7)


...

Constructor:
Dfa(void *context,const char *startNodeName,const void *(*node_callback)(const void *s,const void *c),const void *(*error)(const void *s,const void *c))

Factory Method:
AbstractDfa *AbstractDfaInterface::createDfa(void *context,const char *startNodeName,const void *(*node_callback)(const void *s,const void *c),const void *(*error)(const void *s,const void *c))

Wrapper Class:
DfaWrapper(void *context,const char *startNodeName,const void *(*node_callback)(const void *s,const void *c),const void *(*error)(const void *s,const void *c))

The static method AbstractDfaInterface::createDfa creates a new instance of class Dfa.

Parameters:
Type Name Direction Description
void *context[IN/OUT]context
const char *startNodeName[IN]Der Name des Startknotens
const void *(*node_callback)
(
   const void *s
,
   const void *c
)
[IN] Funktion, die beim betreten des Knotens aufgerufen werden soll oder NULL falls keine Callback-Funktion aufgerufen werden soll.
Parameter
s: Pointer auf eine Datenstruktur, die Inforationen zum aktuellen Status des DFA enthält.
c: Pointer auf den Kontext des DFA.
Return value
Rückgabewert der Callback-Funktion
const void *(*error)
(
   const void *s
,
   const void *c
)
[IN] ...
Parameter
s: 1...
c: 2...
Return value
error function return value

Return value:
Returns an instance of Dfa.

Remarks:
...


Methods

   feed (version 1)


Füttert den Automaten mit dem nächsten Token.

Signature:
int feed(int token)

Parameters:
Type Name Direction Description
int tokenEine Tokennummer. (Ein Unicode Codepoint)


Return value:
Die Status-ID des neuen Status des Automaten nach der Verarbeitung des Tokens. Falls sich der Automat in keinem gültige Zustand befindet, wird -1 zurückgegeben.

   feed (version 2)


Füttert den Automaten mit einem ANSI String.

Signature:
int feed(const char *str)

Parameters:
Type Name Direction Description
const char *str[IN]Ein null-terminierter String (bestehend aus 8-bit großen Tokens).


Return value:
Die Status-ID des neuen Status des Automaten nach Abarbeitung des Strings.

   feed (version 3)


Füttert den Automaten mit einem UTF-32 String.

Signature:
int feed(const char32_t *str)

Parameters:
Type Name Direction Description
const char32_t *str[IN]Ein null-terminierter String (bestehend aus Unicode-Tokens).


Return value:
Die Status-ID des neuen Status des Automaten nach Abarbeitung des Strings.

   getCurrentNodeName


Gibt den Namen des aktuellen Knoten zurück.

Signature:
const char *getCurrentNodeName()

Return value:
Name of the current state/node.

   renameCurrentNode


Ändert den Namen des aktuellen Knotens.

Signature:
void renameCurrentNode(const char *str)

Parameters:
Type Name Direction Description
const char *str[IN]Ein null-terminierter String.


   getCurrentNodeEdgeCount


Gibt die Anzahl Kanten zurück die vom aktuellen Knoten ausgehen.

Signature:
int getCurrentNodeEdgeCount()

Return value:
Anzahl ausgehender Kanten.

   getCurrentNodeEdgeTokenCount


Gibt Anzahl Tokens der i-ten ausgehenden Kante des aktuellen Knoten zurück.

Signature:
int getCurrentNodeEdgeTokenCount(int i)

Parameters:
Type Name Direction Description
int iIndex der vom aktuellen Knoten ausgehenden Kante.


Return value:
Die Anzahl Tokens der betreffenden Kante.

   getCurrentNodeEdgeToken


Gibt das j-te Token der i-ten ausgehenden Kante des aktuellen Knoten zurück.

Signature:
int getCurrentNodeEdgeToken(int i,int j)

Parameters:
Type Name Direction Description
int iIndex der vom aktuellen Knoten ausgehenden Kante.
int jIndex des Tokens einer Kante.


Return value:
Das betreffende Token.

   addNode (version 1)


Legt einen neuen Knoten mit dem Namen name an. Falls bereits ein Knoten mit diesem Namen existiert, erfolgt keine Änderung.

Signature:
void addNode(const char *name)

Parameters:
Type Name Direction Description
const char *name[IN]Eindeutiger Name des Knotens


   addNode (version 2)


Legt einen neuen Knoten mit dem Namen name und der Callback-Funktion node_callback an.

Falls bereits ein Knoten mit diesem Namen existiert, wird kein weiterer Knoten angelegt. Es wird jedoch die Callback-Funktion für den bestehenden Knoten aktualisiert.

Signature:
void addNode(const char *name,const void *(*node_callback)(const void *s,const void *c))

Parameters:
Type Name Direction Description
const char *name[IN]Eindeutiger Name des Knotens
const void *(*node_callback)
(
   const void *s
,
   const void *c
)
[IN] Funktion, die beim betreten des Knotens aufgerufen werden soll oder NULL falls keine Callback-Funktion aufgerufen werden soll.
Parameter
s: Pointer auf eine Datenstruktur, die Inforationen zum aktuellen Status des DFA enthält.
c: Pointer auf den Kontext des DFA.
Return value
Rückgabewert der Callback-Funktion


   print


Gibt den DFA an stdout aus.

Signature:
int print()

Return value:
Gibt immer 0 zurück.

   write


Schreibt den DFA in eine Datei.

Signature:
int write(FILE *f,int style)

Parameters:
Type Name Direction Description
FILE *f[IN]Ein Filehandle einer geöffneten Datei.
int styleGibt an, in welchem Format die Ausgabe erfolgen soll:
  • DFA_FORMAT_BLOCKSTYLE
  • Ausgabe in einem dbl-kompatiblen Block-Format (inkl Headerzeile: '#PROKEE:DFA:BLOCKSTYLE#\n').
  • DFA_FORMAT_COMPACT
  • Kompaktere Ausgabe (inkl Headerzeile: '#PROKEE:DFA:COMPACT#\n').
  • DFA_FORMAT_BLOCKSTYLE_NOHEADER
  • Ausgabe in einem dbl-kompatiblen Block-Format ohne Headerzeile.
  • DFA_FORMAT_COMPACT_NOHEADER
  • Kompaktere Ausgabe ohne Headerzeile.


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   saveDfa (version 1)


Schreibt den DFA in eine Datei.

Signature:
int saveDfa(const char *filename,int style)

Parameters:
Type Name Direction Description
const char *filename[IN]Dateiname (inkl. Pfad) als null-terminierter String.
int styleGibt an, in welchem Format die Ausgabe erfolgen soll:
  • DFA_FORMAT_BLOCKSTYLE
  • Ausgabe in einem dbl-kompatiblen Block-Format (inkl Headerzeile: '#PROKEE:DFA:BLOCKSTYLE#\n').
  • DFA_FORMAT_COMPACT
  • Kompaktere Ausgabe (inkl Headerzeile: '#PROKEE:DFA:COMPACT#\n').
  • DFA_FORMAT_BLOCKSTYLE_NOHEADER
  • Ausgabe in einem dbl-kompatiblen Block-Format ohne Headerzeile.
  • DFA_FORMAT_COMPACT_NOHEADER
  • Kompaktere Ausgabe ohne Headerzeile.


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   saveDfa (version 2) [WIN_ONLY]


Schreibt den DFA in eine Datei.

Signature:
int saveDfa(const wchar_t *filename,int style)

Parameters:
Type Name Direction Description
const wchar_t *filename[IN]Dateiname (inkl. Pfad) als null-terminierter String.
int styleGibt an, in welchem Format die Ausgabe erfolgen soll:
  • DFA_FORMAT_BLOCKSTYLE
  • Ausgabe in einem dbl-kompatiblen Block-Format (inkl Headerzeile: '#PROKEE:DFA:BLOCKSTYLE#\n').
  • DFA_FORMAT_COMPACT
  • Kompaktere Ausgabe (inkl Headerzeile: '#PROKEE:DFA:COMPACT#\n').
  • DFA_FORMAT_BLOCKSTYLE_NOHEADER
  • Ausgabe in einem dbl-kompatiblen Block-Format ohne Headerzeile.
  • DFA_FORMAT_COMPACT_NOHEADER
  • Kompaktere Ausgabe ohne Headerzeile.


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

Remarks:
Diese Methode steht nur unter Windows Betriebssystemen zur Verfügung. Es kann sein, dass die Methode unter anderen Betriebssystemen ebenfalls deklariert ist, die konkrete Implementierung fehlt aber in jedem Fall. Verwenden Sie diese Methode daher mit Vorsicht. Aufrufe sollten immer innerhalb eines entsprechenden Präprozessor-Blocks stehen: Z.B.: #ifdef _WIN32 ... #endif.

   loadDfa (version 1)


Lädt einen DFA aus einer Datei.

Signature:
int loadDfa(const char *filename)

Parameters:
Type Name Direction Description
const char *filename[IN]Dateiname (inkl. Pfad) als null-terminierter String.


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   loadDfa (version 2) [WIN_ONLY]


Lädt einen DFA aus einer Datei.

Signature:
int loadDfa(const wchar_t *filename)

Parameters:
Type Name Direction Description
const wchar_t *filename[IN]Dateiname (inkl. Pfad) als null-terminierter String.


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

Remarks:
Diese Methode steht nur unter Windows Betriebssystemen zur Verfügung. Es kann sein, dass die Methode unter anderen Betriebssystemen ebenfalls deklariert ist, die konkrete Implementierung fehlt aber in jedem Fall. Verwenden Sie diese Methode daher mit Vorsicht. Aufrufe sollten immer innerhalb eines entsprechenden Präprozessor-Blocks stehen: Z.B.: #ifdef _WIN32 ... #endif.

   loadDfa (version 3)


Lädt einen DFA aus einem Speicherbereich.

Signature:
int loadDfa(const char *buffer,int buffer_length)

Parameters:
Type Name Direction Description
const char *buffer[IN]Speicherbereich, der den DFA enthält.
int buffer_lengthLänge des Speicherbereichs.


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   loadDfa (version 4)


Lädt einen DFA.

Signature:
int loadDfa(AbsBasicCompactScanner *s)

Parameters:
Type Name Direction Description
AbsBasicCompactScanner *s


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   loadDfa (version 5)


Lädt einen DFA.

Signature:
int loadDfa(AbsBasicCompactBufferScanner *s)

Parameters:
Type Name Direction Description
AbsBasicCompactBufferScanner *s


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   loadDfa (version 6)


Lädt einen DFA.

Signature:
int loadDfa(AbsBasicCompactFileScanner *s)

Parameters:
Type Name Direction Description
AbsBasicCompactFileScanner *s


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   loadDfa_compact (version 1)


Lädt einen DFA.

Signature:
int loadDfa_compact(AbsBasicCompactBufferScanner *s)

Parameters:
Type Name Direction Description
AbsBasicCompactBufferScanner *s


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   loadDfa_compact (version 2)


Lädt einen DFA.

Signature:
int loadDfa_compact(AbsBasicCompactFileScanner *s)

Parameters:
Type Name Direction Description
AbsBasicCompactFileScanner *s


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   loadDfa_compact (version 3)


Lädt einen DFA.

Signature:
int loadDfa_compact(AbsBasicCompactScanner *s)

Parameters:
Type Name Direction Description
AbsBasicCompactScanner *s


Return value:
Gibt 0 zurück falls kein Fehler aufgetreten ist, sonst einen Wert ungleich 0.

   setContext


...

Signature:
void setContext(void *context)

Parameters:
Type Name Direction Description
void *context[IN/OUT]context


Return value:
...

   setErrorCallback


...

Signature:
void setErrorCallback(const void *(*error)(const void *s,const void *c))

Parameters:
Type Name Direction Description
const void *(*error)
(
   const void *s
,
   const void *c
)
[IN] ...
Parameter
s: 1...
c: 2...
Return value
error function return value


Return value:
...

   setOwnerCallback


Legt die Callback-Funktion fest, die Informationen über Callback-Funktionen zurückgibt.

Signature:
void setOwnerCallback(const void *(*owner_callback)(const void *s,const void *c))

Parameters:
Type Name Direction Description
const void *(*owner_callback)
(
   const void *s
,
   const void *c
)
[IN] Pointer auf die Callback-Funktion die Informationen zu Callback-Funktionen zurückgibt.

Beispiel:
const void *info_func(const void *s,const void *c)
{
    if(strcmp((const char *)s,"getFunctionName")==0)
    {
        if(c==err_func)return "err_func";
        if(c==node_func)return "node_func";
        if(c==link_func)return "link_func";
        if(c==info_func)return "info_func";
        return "(unknown function)";
    }
    else if(strcmp((const char *)s,"getFunctionPointer")==0)
    {
        if(strcmp((const char *)c,"err_func")==0)return (const void *)err_func;
        if(strcmp((const char *)c,"node_func")==0)return (const void *)node_func;
        if(strcmp((const char *)c,"link_func")==0)return (const void *)link_func;
        if(strcmp((const char *)c,"info_func")==0)return (const void *)info_func;
    }
    return 0;
}

Parameter
s: Ein Pointer auf einen null-terminierten String.
  • Falls "getFunctionName" angegeben wurde:
    In diesem Fall soll die Funktion den Funktionsnamen einer Callback-Funktion zurückgeben. Die Callback-Funktion wird durch Parameter c festgelegt, welcher die Adresse der Callback-Funktion enthält.
  • Falls "getFunctionPointer" angegeben wurde:
    In diesem Fall soll die Funktion den Funktionspointer auf eine Callback-Funktion zurückgeben. Die gesuchte Callback-Funktion, wird durch Parameter c angegeben, welcher auf den Namen der Callback-Funktion als null-terminierten String zeigt.

c: Ein Pointer auf einen null-terminierten String oder ein Pointer auf eine Callback-Funktion.
Return value
Entweder der Funktionsname (als null-terminierter String) oder ein Pointer auf die Callback-Funktion, welche durch Parameter c angegeben wird. Existiert die nachgefragte Funktion nicht, so soll die Funktion anstelle des Funktionspointers NULL und anstelle des Funktionsnamens eine Fehlermeldung als null-terminierten String in runden Klammern (s. Beispiel oben) oder einen Leerstring, jedoch nicht NULL zurückgeben.


Return value:
...

   reset


Setzt den DFA zurück. Als aktuelle Position (aktueller Zustand) wird der Startknoten (Startzustand) ausgewählt.

Signature:
void reset()

   setPos


Wählt einen Knoten (Zustand) als aktuelle Position (aktuellen Zustand) aus.

Signature:
bool setPos(const char *name)

Parameters:
Type Name Direction Description
const char *name[IN]Eindeutiger Name des Knotens


Return value:
Falls der durch name angegebene Knoten nicht existiert, wird false zurückgegeben, sonst true.

   setStartNode


Legt den Startknoten fest. Falls kein Knoten mit dem angegebenen Namen existiert, wird dieser neu angelegt.

Signature:
void setStartNode(const char *startNodeName)

Parameters:
Type Name Direction Description
const char *startNodeName[IN]Der Name des Startknotens


   setEndStatus


Legt fest, ob der Knoten mit dem Namen name ein gültiger End-Knoten (Endzustand) ist.

Signature:
bool setEndStatus(const char *name,bool status)

Parameters:
Type Name Direction Description
const char *name[IN]Eindeutiger Name des Knotens
bool statusGibt an, ob ein Knoten ein gültiger End-Knoten (Endzustand) ist. (true für ja, false für nein)


Return value:
Falls der Status erfolgreich gesetzt werden konnte, wird true zurückgegeben, sonst false. Falls kein Knoten mit Namen name existiert, erfolgt keine Änderung.

   addLink (version 1)


...

Signature:
bool addLink(const char *name_from,const char *name_to,std::vector< int > tokens,const void *(*callback)(const void *s,const void *c))

Parameters:
Type Name Direction Description
const char *name_from[IN]name_from
const char *name_to[IN]name_to
std::vector< int > tokens...
const void *(*callback)
(
   const void *s
,
   const void *c
)
[IN] ...
Parameter
s: 1...
c: 2...
Return value
callback return value


Return value:
...

   addLink (version 2)


...

Signature:
bool addLink(const char *name_from,const char *name_to,int *tokens,const void *(*callback)(const void *s,const void *c))

Parameters:
Type Name Direction Description
const char *name_from[IN]name_from
const char *name_to[IN]name_to
int *tokenstokens
const void *(*callback)
(
   const void *s
,
   const void *c
)
[IN] ...
Parameter
s: 1...
c: 2...
Return value
callback return value


Return value:
...

   addLink (version 3)


...

Signature:
bool addLink(const char *name_from,const char *name_to,int token,const void *(*callback)(const void *s,const void *c))

Parameters:
Type Name Direction Description
const char *name_from[IN]name_from
const char *name_to[IN]name_to
int tokenEine Tokennummer. (Ein Unicode Codepoint)
const void *(*callback)
(
   const void *s
,
   const void *c
)
[IN] ...
Parameter
s: 1...
c: 2...
Return value
callback return value


Return value:
...

   addLink (version 4)


...

Signature:
bool addLink(const char *name_from,const char *name_to,int token)

Parameters:
Type Name Direction Description
const char *name_from[IN]name_from
const char *name_to[IN]name_to
int tokenEine Tokennummer. (Ein Unicode Codepoint)


Return value:
...

   addLink (version 5)


...

Signature:
bool addLink(const char *name_from,const char *name_to,std::vector< int > tokens)

Parameters:
Type Name Direction Description
const char *name_from[IN]name_from
const char *name_to[IN]name_to
std::vector< int > tokens...


Return value:
...

   addLink (version 6)


...

Signature:
bool addLink(const char *name_from,const char *name_to,int *tokens)

Parameters:
Type Name Direction Description
const char *name_from[IN]name_from
const char *name_to[IN]name_to
int *tokenstokens


Return value:
...

   addLink (version 7)


...

Signature:
bool addLink(const char *name_from,const char *name_to,const void *(*callback)(const void *s,const void *c))

Parameters:
Type Name Direction Description
const char *name_from[IN]name_from
const char *name_to[IN]name_to
const void *(*callback)
(
   const void *s
,
   const void *c
)
[IN] ...
Parameter
s: 1...
c: 2...
Return value
callback return value


Return value:
...

   addLink (version 8)


...

Signature:
bool addLink(const char *name_from,const char *name_to)

Parameters:
Type Name Direction Description
const char *name_from[IN]name_from
const char *name_to[IN]name_to


Return value:
...


Copyright © 2017 - 2019 by Andreas Pollhammer