mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1018 B
50 lines
1018 B
// dfa.h
|
|
// Angshuman Guha
|
|
// aguha
|
|
// Jan 17, 2001
|
|
|
|
#ifndef __INC_DFA_H_
|
|
#define __INC_DFA_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct {
|
|
short iState;
|
|
short jState;
|
|
short iAlphabet;
|
|
} Transition;
|
|
|
|
short MakeDFA(PARSETREE *tree, // in
|
|
int cPosition, // in
|
|
IntSet *aFollowpos, // in
|
|
WCHAR *aPos2Wchar, // in
|
|
int cAlphabet, // in
|
|
WCHAR *aAlphabet, // in
|
|
int *pcTransition, // out
|
|
Transition **paTransition, // out
|
|
unsigned char **ppbFinal); // out
|
|
|
|
BOOL MinimizeDFA(short *pcState,
|
|
unsigned char **ppbFinal,
|
|
int *pcTransition,
|
|
Transition **ppTransition);
|
|
|
|
BOOL MakeCanonicalDFA(short cState,
|
|
unsigned char *abFinal,
|
|
int cTransition,
|
|
Transition *aTransition);
|
|
|
|
void *ConvertDFAtoBlob(int cTransition,
|
|
Transition *aTransition,
|
|
int cAlphabet,
|
|
WCHAR *aAlphabet,
|
|
int cState,
|
|
unsigned char *abFinal);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|