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

📄 grammar.cpp

📁 khtml在gtk上的移植版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  /* Discard the token being shifted unless it is eof.  */  if (yychar != YYEOF)    yychar = YYEMPTY;  *++yyvsp = yylval;#ifdef YYLSP_NEEDED  *++yylsp = yylloc;#endif  /* count tokens shifted since error; after three, turn off error status.  */  if (yyerrstatus) yyerrstatus--;  yystate = yyn;  goto yynewstate;/* Do the default action for the current state.  */yydefault:  yyn = yydefact[yystate];  if (yyn == 0)    goto yyerrlab;/* Do a reduction.  yyn is the number of a rule to reduce with.  */yyreduce:  yylen = yyr2[yyn];  if (yylen > 0)    yyval = yyvsp[1-yylen]; /* implement default value of the action */#if YYDEBUG != 0  if (yydebug)    {      int i;      fprintf (stderr, "Reducing via rule %d (line %d), ",	       yyn, yyrline[yyn]);      /* Print the symbols being reduced, and their result.  */      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)	fprintf (stderr, "%s ", yytname[yyrhs[i]]);      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);    }#endif  switch (yyn) {case 1:#line 170 "grammar.y"{ yyval.node = new NullNode(); ;    break;}case 2:#line 171 "grammar.y"{ yyval.node = new BooleanNode(true); ;    break;}case 3:#line 172 "grammar.y"{ yyval.node = new BooleanNode(false); ;    break;}case 4:#line 173 "grammar.y"{ yyval.node = new NumberNode(yyvsp[0].dval); ;    break;}case 5:#line 174 "grammar.y"{ yyval.node = new StringNode(yyvsp[0].ustr); ;    break;}case 6:#line 175 "grammar.y"{ Lexer *l = Lexer::curr();                                     if (!l->scanRegExp()) YYABORT;                                     yyval.node = new RegExpNode(l->pattern,l->flags);;    break;}case 7:#line 179 "grammar.y"{ Lexer *l = Lexer::curr();                                     if (!l->scanRegExp()) YYABORT;                                     yyval.node = new RegExpNode(UString('=')+l->pattern,l->flags);;    break;}case 8:#line 185 "grammar.y"{ yyval.node = new ThisNode(); ;    break;}case 9:#line 186 "grammar.y"{ yyval.node = new ResolveNode(*yyvsp[0].ident); ;    break;}case 12:#line 189 "grammar.y"{ yyval.node = new GroupNode(yyvsp[-1].node); ;    break;}case 13:#line 190 "grammar.y"{ yyval.node = new ObjectLiteralNode(); ;    break;}case 14:#line 191 "grammar.y"{ yyval.node = new ObjectLiteralNode(yyvsp[-1].plist); ;    break;}case 15:#line 195 "grammar.y"{ yyval.node = new ArrayNode(yyvsp[-1].ival); ;    break;}case 16:#line 196 "grammar.y"{ yyval.node = new ArrayNode(yyvsp[-1].elm); ;    break;}case 17:#line 197 "grammar.y"{ yyval.node = new ArrayNode(yyvsp[-1].ival, yyvsp[-3].elm); ;    break;}case 18:#line 201 "grammar.y"{ yyval.elm = new ElementNode(yyvsp[-1].ival, yyvsp[0].node); ;    break;}case 19:#line 203 "grammar.y"{ yyval.elm = new ElementNode(yyvsp[-3].elm, yyvsp[-1].ival, yyvsp[0].node); ;    break;}case 20:#line 207 "grammar.y"{ yyval.ival = 0; ;    break;}case 22:#line 212 "grammar.y"{ yyval.ival = 1; ;    break;}case 23:#line 213 "grammar.y"{ yyval.ival = yyvsp[-1].ival + 1; ;    break;}case 24:#line 217 "grammar.y"{ yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node); ;    break;}case 25:#line 219 "grammar.y"{ yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node, yyvsp[-4].plist); ;    break;}case 26:#line 223 "grammar.y"{ yyval.pnode = new PropertyNode(*yyvsp[0].ident); ;    break;}case 27:#line 224 "grammar.y"{ yyval.pnode = new PropertyNode(Identifier(*yyvsp[0].ustr)); ;    break;}case 28:#line 225 "grammar.y"{ yyval.pnode = new PropertyNode(yyvsp[0].dval); ;    break;}case 31:#line 231 "grammar.y"{ yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;    break;}case 32:#line 232 "grammar.y"{ yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); ;    break;}case 33:#line 233 "grammar.y"{ yyval.node = new NewExprNode(yyvsp[-1].node, yyvsp[0].args); ;    break;}case 35:#line 238 "grammar.y"{ yyval.node = new NewExprNode(yyvsp[0].node); ;    break;}case 36:#line 242 "grammar.y"{ yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;    break;}case 37:#line 243 "grammar.y"{ yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;    break;}case 38:#line 244 "grammar.y"{ yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;    break;}case 39:#line 245 "grammar.y"{ yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); ;    break;}case 40:#line 249 "grammar.y"{ yyval.args = new ArgumentsNode(); ;    break;}case 41:#line 250 "grammar.y"{ yyval.args = new ArgumentsNode(yyvsp[-1].alist); ;    break;}case 42:#line 254 "grammar.y"{ yyval.alist = new ArgumentListNode(yyvsp[0].node); ;    break;}case 43:#line 255 "grammar.y"{ yyval.alist = new ArgumentListNode(yyvsp[-2].alist, yyvsp[0].node); ;    break;}case 47:#line 265 "grammar.y"{ yyval.node = new PostfixNode(yyvsp[-1].node, OpPlusPlus); ;    break;}case 48:#line 266 "grammar.y"{ yyval.node = new PostfixNode(yyvsp[-1].node, OpMinusMinus); ;    break;}case 50:#line 271 "grammar.y"{ yyval.node = new DeleteNode(yyvsp[0].node); ;    break;}case 51:#line 272 "grammar.y"{ yyval.node = new VoidNode(yyvsp[0].node); ;    break;}case 52:#line 273 "grammar.y"{ yyval.node = new TypeOfNode(yyvsp[0].node); ;    break;}case 53:#line 274 "grammar.y"{ yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;    break;}case 54:#line 275 "grammar.y"{ yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;    break;}case 55:#line 276 "grammar.y"{ yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;    break;}case 56:#line 277 "grammar.y"{ yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;    break;}case 57:#line 278 "grammar.y"{ yyval.node = new UnaryPlusNode(yyvsp[0].node); ;    break;}case 58:#line 279 "grammar.y"{ yyval.node = new NegateNode(yyvsp[0].node); ;    break;}case 59:#line 280 "grammar.y"{ yyval.node = new BitwiseNotNode(yyvsp[0].node); ;    break;}case 60:#line 281 "grammar.y"{ yyval.node = new LogicalNotNode(yyvsp[0].node); ;    break;}case 62:#line 286 "grammar.y"{ yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '*'); ;    break;}case 63:#line 287 "grammar.y"{ yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '/'); ;    break;}case 64:#line 288 "grammar.y"{ yyval.node = new MultNode(yyvsp[-2].node,yyvsp[0].node,'%'); ;    break;}case 66:#line 293 "grammar.y"{ yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '+'); ;    break;}case 67:#line 294 "grammar.y"{ yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '-'); ;    break;}case 69:#line 299 "grammar.y"{ yyval.node = new ShiftNode(yyvsp[-2].node, OpLShift, yyvsp[0].node); ;    break;}case 70:#line 300 "grammar.y"{ yyval.node = new ShiftNode(yyvsp[-2].node, OpRShift, yyvsp[0].node); ;    break;}case 71:#line 301 "grammar.y"{ yyval.node = new ShiftNode(yyvsp[-2].node, OpURShift, yyvsp[0].node); ;    break;}case 73:#line 307 "grammar.y"{ yyval.node = new RelationalNode(yyvsp[-2].node, OpLess, yyvsp[0].node); ;    break;}case 74:#line 309 "grammar.y"{ yyval.node = new RelationalNode(yyvsp[-2].node, OpGreater, yyvsp[0].node); ;    break;}case 75:#line 311 "grammar.y"{ yyval.node = new RelationalNode(yyvsp[-2].node, OpLessEq, yyvsp[0].node); ;    break;}case 76:#line 313 "grammar.y"{ yyval.node = new RelationalNode(yyvsp[-2].node, OpGreaterEq, yyvsp[0].node); ;    break;}case 77:#line 315 "grammar.y"{ yyval.node = new RelationalNode(yyvsp[-2].node, OpInstanceOf, yyvsp[0].node); ;    break;}case 78:#line 317 "grammar.y"{ yyval.node = new RelationalNode(yyvsp[-2].node, OpIn, yyvsp[0].node); ;    break;}case 80:#line 322 "grammar.y"{ yyval.node = new EqualNode(yyvsp[-2].node, OpEqEq, yyvsp[0].node); ;    break;}case 81:#line 323 "grammar.y"{ yyval.node = new EqualNode(yyvsp[-2].node, OpNotEq, yyvsp[0].node); ;    break;}case 82:#line 324 "grammar.y"{ yyval.node = new EqualNode(yyvsp[-2].node, OpStrEq, yyvsp[0].node); ;    break;}case 83:#line 325 "grammar.y"{ yyval.node = new EqualNode(yyvsp[-2].node

⌨️ 快捷键说明

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