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

组合框控件

开发平台:

Visual C++

  1. #ifndef sntncparser_h
  2. #define sntncparser_h
  3. #include "sntncelex.h"
  4. //#define MAXCNODE 200
  5. #define MAXENODE 1000000
  6. #define MAXTNODE 100000
  7. #define MAXSQUE 500000
  8. #define MAXAMB 5
  9. typedef struct subpf_t{
  10. struct pf_t **sublst; //list of the subcat frame's nodes
  11. unsigned int rulno; //rule of the subcat frame
  12. // unsigned __int64 subamb; //total nbr of all derivational ambiguities within the subcat frame
  13. }subpf_t; //subcat frame of pf 
  14. typedef union strint_t{
  15. char *literal;
  16. unsigned int totalamb;
  17. } strint_t;
  18. typedef struct pf_t{
  19. strint_t litoramb;
  20. //char *literal; //literal name of the category
  21.     //unsigned int totalamb; //total nbr of direct ambiguities under the node
  22. // unsigned __int64 Tamb; //total nbr of all derivational ambiguities under the node
  23. struct subpf_t *subpfs; //array of ambiguous subcat frames
  24. // unsigned int vp; //index to the most probable subcat frame, part of the viterbi parse
  25. double prb; //the value of maximum probability
  26.   //  struct pf_t *nxt; //link to other nodes
  27. unsigned int cate; //category of the node
  28. // unsigned int refs;
  29. }pf_t; //node of packed forest
  30. typedef struct edge_t{
  31. unsigned int rule;
  32. unsigned int role; //rule.role indicates the progressing state of the edge
  33. struct edge_t *prevedge; //the edge from which this one succeeded
  34. pf_t *ppf; //pointer to the associated pf node
  35. unsigned int origin; //starting point of the edge
  36. }edge_t; //edge of chart
  37. typedef struct edge_lst_t{
  38. edge_t **head; //index table of edges
  39.     int numb; //total nbr of entries whithin the table
  40. int size; //size of the table
  41. }edge_lst_t; //list of edges
  42. typedef struct chartnode_t{
  43. // edge_lst_t byedges; //list of progressing edges that end at one node
  44. // edge_lst_t stedges; //list of edges that have just started from one node
  45. int plst;
  46. int pled;
  47. int numb;
  48. int chd;
  49. int ctl;
  50. char *expeclist;
  51. }chartnode_t; //node of chart
  52. typedef struct rrset_struct{
  53.   rulrol_struct *prr;
  54.   int next;
  55. }rrset_struct; //set of rrs
  56. extern rrset_struct *rrset;
  57. extern pf_t **catetbl; //
  58. extern edge_t *edgepool;
  59. extern pf_t *trnodepool;
  60. //extern edge_t *compedgepool;
  61. //extern char *mark;
  62. extern char *mymark;
  63. extern chartnode_t chart[MAXCNODE]; //the chart
  64. extern int interactive;
  65. extern int npfs;
  66. extern unsigned int *lstack;
  67. extern int lsptr;
  68. extern int addchartnode();
  69. extern int parses();
  70. extern int releasewholepf();
  71. extern int releasechart();
  72. #endif