GRMRGRPH.H
上传用户:tenhai
上传日期:2021-02-19
资源大小:492k
文件大小:2k
源码类别:

组合框控件

开发平台:

Visual C++

  1. #ifndef GRMRGRPH_H
  2. #define GRMRGRPH_H
  3. #include "symbtbl.h"
  4. extern symbol_node_ref_tbl_t t_tbl, nt_tbl;
  5. #define MAXRULES 1000
  6. #define MAXROLES 500
  7. #define MAXRLEN 50
  8. #define tcount t_tbl.tblsize
  9. #define ntcount nt_tbl.tblsize
  10. extern unsigned int tntcount;
  11. #define code2tnode(code) tblinfo(t_tbl, code) 
  12. #define code2ntnode(code) tblinfo(nt_tbl, code-tcount)
  13. #define code2node(code) ((code>=tcount)?code2ntnode(code):code2tnode(code))
  14. #define code2token(code) code2node(code)->literal
  15. extern unsigned int token2tcode(char *token);
  16. typedef struct ruleindex_t{
  17. unsigned int length;
  18. unsigned int leftcate;
  19. unsigned int fstidx;
  20. double probability;
  21. }ruleindex_t;
  22. extern ruleindex_t *ruleindex;
  23. extern symbol_node_t **symserial;
  24. extern int arccount;
  25. extern unsigned int rulcount, rulupbound;
  26. #define rightlenof(i) ruleindex[i].length
  27. #define serialof(i,j) ruleindex[i].fstidx+j
  28. #define probof(i) ruleindex[i].probability
  29. #define leftof(i) ruleindex[i].leftcate
  30. #define rightof(i, j) symserial[serialof(i, j)]->sid
  31. extern symbol_node_t *ssym, *fsym;
  32. extern int grmrindxinit(void);
  33. extern int grmrindxfini(void);
  34. extern int serialize(symbol_node_t *psym);
  35. extern int releasenode(symbol_node_t *psym);
  36. extern symbol_node_t *instnode(char *token, int tokensize, char mode);
  37. extern symbol_node_t *instfinode(void);
  38. extern int numnodes(void);
  39. extern symbol_arc_t *reltnodes(symbol_node_t *from, 
  40.                      symbol_node_t *to, 
  41.                      unsigned int rule, unsigned int role, 
  42.                      char mode);
  43. extern int releasenodes(void);
  44. extern int releasegrmr(void);
  45. #endif