ProbEdge.java
上传用户:xiaozhuqw
上传日期:2021-11-10
资源大小:21k
文件大小:2k
源码类别:

词法分析

开发平台:

Java

  1. import java.io.*;
  2. import java.util.*;
  3. public class ProbEdge extends Edge {
  4. //public int ruleId; // 所用规则的序号
  5. //public String parent;// 更大局部分析的序号集
  6. public double insideProb; //outsideProb;// 内部概率,内部概率之和,外部概率
  7. public int pId; //该局部分析在局部分析表中的位置
  8. public Vector child; //孩子结点的位置
  9. public ProbEdge() {
  10. }
  11. public ProbEdge(String wt, int wid, int pId) {
  12. super(wt, wid);
  13. insideProb = 1.0;
  14. //ruleId = -1;
  15. this.pId = pId;
  16. this.child = new Vector();
  17. //outsideProb = 0.0;
  18. //parent = new String();
  19. }
  20. public ProbEdge(List edgeList, Value value, int pId){
  21. //ProbRules r = (ProbRules)rules.get(rId);
  22. ProbEdge e;
  23. //int index;
  24. //this.ruleId = rId;
  25. //this.outsideProb = 0.0;
  26. //this.parent = new String();
  27. this.root = value.ls;
  28. this.first = ((ProbEdge)edgeList.get(0)).first;
  29. this.last = ((ProbEdge)edgeList.get(edgeList.size() - 1)).last;
  30. this.insideProb = value.prob;
  31. this.child = new Vector();
  32. for(int i = 0;i<edgeList.size();i++){
  33. e = (ProbEdge)edgeList.get(i);
  34. this.insideProb *=  e.insideProb;
  35. this.child.add(new Integer(e.pId));
  36. }
  37. //this.inProbAddUp = this.insideProb;
  38. this.pId = pId;
  39. }
  40. public ProbEdge(ProbEdge p, Value value, int pId) {
  41. //ProbRules r = (ProbRules) rules.get(rId);
  42. //this.ruleId = rId;
  43. //this.outsideProb = 0.0;
  44. //this.parent = new String();
  45. this.root = value.ls;
  46. this.first = p.first;
  47. this.last = p.last;
  48. //this.sub1 = pId;
  49. //this.sub2 = -1;
  50. this.insideProb = value.prob * p.insideProb;
  51. this.pId = pId;
  52. this.child = new Vector();
  53. this.child.add(new Integer(p.pId));
  54. }
  55. public static void main(String[] args){
  56. Vector vec = new Vector();
  57. if(vec.isEmpty())
  58. System.out.println("empty");
  59. }
  60. }