⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xpathparser.java

📁 gcc的组建
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
				throws java.io.IOException, yyException {//t    this.yydebug = (jay.yydebug.yyDebug)yydebug;    return yyparse(yyLex);  }  /** initial size and increment of the state/value stack [default 256].      This is not final so that it can be overwritten outside of invocations      of yyparse().    */  protected int yyMax;  /** executed at the beginning of a reduce action.      Used as $$ = yyDefault($1), prior to the user-specified action, if any.      Can be overwritten to provide deep copy, etc.      @param first value for $1, or null.      @return first.    */  protected Object yyDefault (Object first) {    return first;  }  /** the generated parser.      Maintains a state and a value stack, currently with fixed maximum size.      @param yyLex scanner.      @return result of the last reduction, if any.      @throws yyException on irrecoverable parse error.    */  public Object yyparse (yyInput yyLex)				throws java.io.IOException, yyException {    if (yyMax <= 0) yyMax = 256;			// initial size    int yyState = 0, yyStates[] = new int[yyMax];	// state stack    Object yyVal = null, yyVals[] = new Object[yyMax];	// value stack    int yyToken = -1;					// current input    int yyErrorFlag = 0;				// #tks to shift    yyLoop: for (int yyTop = 0;; ++ yyTop) {      if (yyTop >= yyStates.length) {			// dynamically increase        int[] i = new int[yyStates.length+yyMax];        System.arraycopy(yyStates, 0, i, 0, yyStates.length);        yyStates = i;        Object[] o = new Object[yyVals.length+yyMax];        System.arraycopy(yyVals, 0, o, 0, yyVals.length);        yyVals = o;      }      yyStates[yyTop] = yyState;      yyVals[yyTop] = yyVal;//t      if (yydebug != null) yydebug.push(yyState, yyVal);      yyDiscarded: for (;;) {	// discarding a token does not change stack        int yyN;        if ((yyN = YyDefRedClass.yyDefRed[yyState]) == 0) {	// else [default] reduce (yyN)          if (yyToken < 0) {            yyToken = yyLex.advance() ? yyLex.token() : 0;//t            if (yydebug != null)//t              yydebug.lex(yyState, yyToken, yyname(yyToken), yyLex.value());          }          if ((yyN = YySindexClass.yySindex[yyState]) != 0 && (yyN += yyToken) >= 0              && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyToken) {//t            if (yydebug != null)//t              yydebug.shift(yyState, YyTableClass.yyTable[yyN], yyErrorFlag-1);            yyState = YyTableClass.yyTable[yyN];		// shift to yyN            yyVal = yyLex.value();            yyToken = -1;            if (yyErrorFlag > 0) -- yyErrorFlag;            continue yyLoop;          }          if ((yyN = YyRindexClass.yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0              && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyToken)            yyN = YyTableClass.yyTable[yyN];			// reduce (yyN)          else            switch (yyErrorFlag) {              case 0:              yyerror("syntax error", yyExpecting(yyState));//t              if (yydebug != null) yydebug.error("syntax error");              case 1: case 2:              yyErrorFlag = 3;              do {                if ((yyN = YySindexClass.yySindex[yyStates[yyTop]]) != 0                    && (yyN += yyErrorCode) >= 0 && yyN < YyTableClass.yyTable.length                    && YyCheckClass.yyCheck[yyN] == yyErrorCode) {//t                  if (yydebug != null)//t                    yydebug.shift(yyStates[yyTop], YyTableClass.yyTable[yyN], 3);                  yyState = YyTableClass.yyTable[yyN];                  yyVal = yyLex.value();                  continue yyLoop;                }//t                if (yydebug != null) yydebug.pop(yyStates[yyTop]);              } while (-- yyTop >= 0);//t              if (yydebug != null) yydebug.reject();              throw new yyException("irrecoverable syntax error");              case 3:              if (yyToken == 0) {//t                if (yydebug != null) yydebug.reject();                throw new yyException("irrecoverable syntax error at end-of-file");              }//t              if (yydebug != null)//t                yydebug.discard(yyState, yyToken, yyname(yyToken),//t  							yyLex.value());              yyToken = -1;              continue yyDiscarded;		// leave stack alone            }        }        int yyV = yyTop + 1-YyLenClass.yyLen[yyN];//t        if (yydebug != null)//t          yydebug.reduce(yyState, yyStates[yyV-1], yyN, YyRuleClass.yyRule[yyN], YyLenClass.yyLen[yyN]);        yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]);        switch (yyN) {case 4:					// line 277 "XPathParser.y"  {      yyVal = new Root();    }  break;case 5:					// line 281 "XPathParser.y"  {      Steps steps;      if (yyVals[0+yyTop] instanceof Steps)        {          steps = (Steps) yyVals[0+yyTop];        }      else        {          steps = new Steps();          steps.path.addFirst(yyVals[0+yyTop]);        }      steps.path.addFirst(new Root());      yyVal = steps;      /*$$ = new Step(new Root(), (Path) $2);*/    }  break;case 6:					// line 297 "XPathParser.y"  {      Test nt = new NodeTypeTest((short) 0);      Selector s = new Selector(Selector.DESCENDANT_OR_SELF,                                Collections.singletonList (nt));      Steps steps;      if (yyVals[0+yyTop] instanceof Steps)        {          steps = (Steps) yyVals[0+yyTop];        }      else        {          steps = new Steps();          steps.path.addFirst(yyVals[0+yyTop]);        }      steps.path.addFirst(s);      steps.path.addFirst(new Root());      yyVal = steps;      /*Step step = new Step(s, (Path) $2);*/      /*$$ = new Step(new Root(), step);*/    }  break;case 8:					// line 322 "XPathParser.y"  {      Steps steps;      if (yyVals[-2+yyTop] instanceof Steps)        {          steps = (Steps) yyVals[-2+yyTop];        }      else        {          steps = new Steps();          steps.path.addFirst(yyVals[-2+yyTop]);        }      steps.path.addLast(yyVals[0+yyTop]);      yyVal = steps;      /*$$ = new Step((Expr) $1, (Path) $3);*/    }  break;case 9:					// line 338 "XPathParser.y"  {      Test nt = new NodeTypeTest((short) 0);      Selector s = new Selector(Selector.DESCENDANT_OR_SELF,                                Collections.singletonList (nt));      Steps steps;      if (yyVals[-2+yyTop] instanceof Steps)        {          steps = (Steps) yyVals[-2+yyTop];        }      else        {          steps = new Steps();          steps.path.addFirst(yyVals[-2+yyTop]);        }      steps.path.addLast(s);      steps.path.addLast(yyVals[0+yyTop]);      yyVal = steps;      /*Step step = new Step(s, (Path) $3);*/      /*$$ = new Step((Expr) $1, step);*/    }  break;case 10:					// line 362 "XPathParser.y"  {      yyVal = new Selector (Selector.CHILD, (List) yyVals[0+yyTop]);    }  break;case 11:					// line 366 "XPathParser.y"  {      yyVal = new Selector (Selector.ATTRIBUTE, (List) yyVals[0+yyTop]);    }  break;case 12:					// line 370 "XPathParser.y"  {      yyVal = new Selector (((Integer) yyVals[-2+yyTop]).intValue (), (List) yyVals[0+yyTop]);    }  break;case 13:					// line 374 "XPathParser.y"  {      yyVal = new Selector (Selector.SELF, Collections.EMPTY_LIST);    }  break;case 14:					// line 378 "XPathParser.y"  {      yyVal = new Selector (Selector.PARENT, Collections.EMPTY_LIST);    }  break;case 15:					// line 385 "XPathParser.y"  {      List list = new ArrayList();      list.add(yyVals[0+yyTop]);      yyVal = list;    }  break;case 16:					// line 391 "XPathParser.y"  {      List list = (List)yyVals[-1+yyTop];      list.add(yyVals[0+yyTop]);      yyVal = list;    }  break;case 17:					// line 415 "XPathParser.y"  {      yyVal = new Integer(Selector.ANCESTOR);    }  break;case 18:					// line 419 "XPathParser.y"  {      yyVal = new Integer(Selector.ANCESTOR_OR_SELF);    }  break;case 19:					// line 423 "XPathParser.y"  {      yyVal = new Integer(Selector.ATTRIBUTE);    }  break;case 20:					// line 427 "XPathParser.y"  {      yyVal = new Integer(Selector.CHILD);    }  break;case 21:					// line 431 "XPathParser.y"  {      yyVal = new Integer(Selector.DESCENDANT);    }  break;case 22:					// line 435 "XPathParser.y"  {      yyVal = new Integer(Selector.DESCENDANT_OR_SELF);    }  break;case 23:					// line 439 "XPathParser.y"  {      yyVal = new Integer(Selector.FOLLOWING);    }  break;case 24:					// line 443 "XPathParser.y"  {      yyVal = new Integer(Selector.FOLLOWING_SIBLING);    }  break;case 25:					// line 447 "XPathParser.y"  {      yyVal = new Integer(Selector.NAMESPACE);    }  break;case 26:					// line 451 "XPathParser.y"  {      yyVal = new Integer(Selector.PARENT);    }  break;case 27:					// line 455 "XPathParser.y"  {      yyVal = new Integer(Selector.PRECEDING);    }  break;case 28:					// line 459 "XPathParser.y"  {      yyVal = new Integer(Selector.PRECEDING_SIBLING);    }  break;case 29:					// line 463 "XPathParser.y"  {      yyVal = new Integer(Selector.SELF);    }  break;case 31:					// line 472 "XPathParser.y"  {      yyVal = new NodeTypeTest(Node.PROCESSING_INSTRUCTION_NODE, (String) yyVals[-1+yyTop]);    }  break;case 32:					// line 477 "XPathParser.y"  {      yyVal = new NodeTypeTest(((Short) yyVals[-1+yyTop]).shortValue());    }  break;case 33:					// line 484 "XPathParser.y"  {      yyVal = new Predicate((Expr) yyVals[-1+yyTop]);    }  break;case 35:					// line 492 "XPathParser.y"  {      yyVal = new ParenthesizedExpr((Expr) yyVals[-1+yyTop]);    }  break;case 36:					// line 496 "XPathParser.y"  {      yyVal = new Constant(yyVals[0+yyTop]);    }  break;case 37:					// line 500 "XPathParser.y"  {      yyVal = new Constant(yyVals[0+yyTop]);    }  break;case 39:					// line 508 "XPathParser.y"  {      yyVal = lookupFunction((String) yyVals[-2+yyTop], Collections.EMPTY_LIST);    }  break;case 40:					// line 512 "XPathParser.y"  {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -