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

📄 awktab.c

📁 早期freebsd实现
💻 C
📖 第 1 页 / 共 5 页
字号:
    break;}case 9:#line 185 "awk.y"{		if (end_block) {			if (end_block->type != Node_rule_list)				end_block = node(end_block, Node_rule_list,					(NODE *)NULL);			(void) append_right (end_block, node(			    node((NODE *)NULL, Node_rule_node, yyvsp[0].nodeval),			    Node_rule_list, (NODE *)NULL));		} else			end_block = node((NODE *)NULL, Node_rule_node, yyvsp[0].nodeval);		yyval.nodeval = NULL;		io_allowed = 1;		yyerrok;	  ;    break;}case 10:#line 200 "awk.y"{		warning("BEGIN blocks must have an action part");		errcount++;		yyerrok;	  ;    break;}case 11:#line 206 "awk.y"{		warning("END blocks must have an action part");		errcount++;		yyerrok;	  ;    break;}case 12:#line 212 "awk.y"{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_rule_node, yyvsp[0].nodeval); yyerrok; ;    break;}case 13:#line 214 "awk.y"{ yyval.nodeval = node ((NODE *)NULL, Node_rule_node, yyvsp[0].nodeval); yyerrok; ;    break;}case 14:#line 216 "awk.y"{		  yyval.nodeval = node (yyvsp[-1].nodeval,			     Node_rule_node,			     node(node(node(make_number(0.0),					    Node_field_spec,					    (NODE *) NULL),					Node_expression_list,					(NODE *) NULL),				  Node_K_print,				  (NODE *) NULL));		  yyerrok;		;    break;}case 15:#line 229 "awk.y"{			func_install(yyvsp[-1].nodeval, yyvsp[0].nodeval);			yyval.nodeval = NULL;			yyerrok;		;    break;}case 16:#line 238 "awk.y"{ yyval.sval = yyvsp[0].sval; ;    break;}case 17:#line 240 "awk.y"{ yyval.sval = yyvsp[0].sval; ;    break;}case 18:#line 242 "awk.y"{		yyerror("%s() is a built-in function, it cannot be redefined",			tokstart);		errcount++;		/* yyerrok; */	  ;    break;}case 21:#line 257 "awk.y"{			param_counter = 0;		;    break;}case 22:#line 261 "awk.y"{			yyval.nodeval = append_right(make_param(yyvsp[-4].sval), yyvsp[-2].nodeval);			can_return = 1;		;    break;}case 23:#line 269 "awk.y"{		yyval.nodeval = yyvsp[-2].nodeval;		can_return = 0;	  ;    break;}case 24:#line 278 "awk.y"{ yyval.nodeval = yyvsp[0].nodeval; ;    break;}case 25:#line 280 "awk.y"{ yyval.nodeval = mkrangenode ( node(yyvsp[-2].nodeval, Node_cond_pair, yyvsp[0].nodeval) ); ;    break;}case 26:#line 289 "awk.y"{ ++want_regexp; ;    break;}case 27:#line 291 "awk.y"{		  NODE *n;		  int len;		  getnode(n);		  n->type = Node_regex;		  len = strlen(yyvsp[-1].sval);		  n->re_exp = make_string(yyvsp[-1].sval, len);		  n->re_reg = make_regexp(yyvsp[-1].sval, len, 0, 1);		  n->re_text = NULL;		  n->re_flags = CONST;		  n->re_cnt = 1;		  yyval.nodeval = n;		;    break;}case 28:#line 309 "awk.y"{ yyval.nodeval = yyvsp[-3].nodeval ; ;    break;}case 29:#line 311 "awk.y"{ yyval.nodeval = NULL; ;    break;}case 30:#line 316 "awk.y"{ yyval.nodeval = yyvsp[0].nodeval; ;    break;}case 31:#line 318 "awk.y"{			if (yyvsp[-1].nodeval == NULL || yyvsp[-1].nodeval->type != Node_statement_list)				yyvsp[-1].nodeval = node(yyvsp[-1].nodeval, Node_statement_list,(NODE *)NULL);	    		yyval.nodeval = append_right(yyvsp[-1].nodeval,				node( yyvsp[0].nodeval, Node_statement_list, (NODE *)NULL));	    		yyerrok;		;    break;}case 32:#line 326 "awk.y"{ yyval.nodeval = NULL; ;    break;}case 33:#line 328 "awk.y"{ yyval.nodeval = NULL; ;    break;}case 36:#line 338 "awk.y"{ yyval.nodeval = NULL; ;    break;}case 37:#line 340 "awk.y"{ yyval.nodeval = NULL; ;    break;}case 38:#line 342 "awk.y"{ yyval.nodeval = yyvsp[-1].nodeval; ;    break;}case 39:#line 344 "awk.y"{ yyval.nodeval = yyvsp[0].nodeval; ;    break;}case 40:#line 346 "awk.y"{ yyval.nodeval = node (yyvsp[-3].nodeval, Node_K_while, yyvsp[0].nodeval); ;    break;}case 41:#line 348 "awk.y"{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_K_do, yyvsp[-5].nodeval); ;    break;}case 42:#line 350 "awk.y"{		yyval.nodeval = node (yyvsp[0].nodeval, Node_K_arrayfor, make_for_loop(variable(yyvsp[-5].sval,1),			(NODE *)NULL, variable(yyvsp[-3].sval,1)));	  ;    break;}case 43:#line 355 "awk.y"{		yyval.nodeval = node(yyvsp[0].nodeval, Node_K_for, (NODE *)make_for_loop(yyvsp[-7].nodeval, yyvsp[-5].nodeval, yyvsp[-3].nodeval));	  ;    break;}case 44:#line 359 "awk.y"{		yyval.nodeval = node (yyvsp[0].nodeval, Node_K_for,			(NODE *)make_for_loop(yyvsp[-6].nodeval, (NODE *)NULL, yyvsp[-3].nodeval));	  ;    break;}case 45:#line 365 "awk.y"{ yyval.nodeval = node ((NODE *)NULL, Node_K_break, (NODE *)NULL); ;    break;}case 46:#line 368 "awk.y"{ yyval.nodeval = node ((NODE *)NULL, Node_K_continue, (NODE *)NULL); ;    break;}case 47:#line 370 "awk.y"{ yyval.nodeval = node (yyvsp[-3].nodeval, yyvsp[-5].nodetypeval, yyvsp[-1].nodeval); ;    break;}case 48:#line 372 "awk.y"{			if (yyvsp[-3].nodetypeval == Node_K_print && yyvsp[-2].nodeval == NULL)				yyvsp[-2].nodeval = node(node(make_number(0.0),					       Node_field_spec,					       (NODE *) NULL),					  Node_expression_list,					  (NODE *) NULL);			yyval.nodeval = node (yyvsp[-2].nodeval, yyvsp[-3].nodetypeval, yyvsp[-1].nodeval);		;    break;}case 49:#line 383 "awk.y"{ NODETYPE type;		  if (yyvsp[-1].nodeval && yyvsp[-1].nodeval == lookup("file")) {			if (do_lint)				warning("`next file' is a gawk extension");			else if (do_unix || do_posix)				yyerror("`next file' is a gawk extension");			 else if (! io_allowed)				yyerror("`next file' used in BEGIN or END action");			type = Node_K_nextfile;		  } else {			if (! io_allowed)				yyerror("next used in BEGIN or END action");			type = Node_K_next;		}		  yyval.nodeval = node ((NODE *)NULL, type, (NODE *)NULL);		;    break;}case 50:#line 401 "awk.y"{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_K_exit, (NODE *)NULL); ;    break;}case 51:#line 403 "awk.y"{ if (! can_return) yyerror("return used outside function context"); ;    break;}case 52:#line 405 "awk.y"{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_K_return, (NODE *)NULL); ;    break;}case 53:#line 407 "awk.y"{ yyval.nodeval = node (variable(yyvsp[-4].sval,1), Node_K_delete, yyvsp[-2].nodeval); ;    break;}case 54:#line 409 "awk.y"{ yyval.nodeval = yyvsp[-1].nodeval; ;    break;}case 55:#line 414 "awk.y"{ yyval.nodetypeval = yyvsp[0].nodetypeval; ;    break;}case 56:#line 416 "awk.y"{ yyval.nodetypeval = yyvsp[0].nodetypeval; ;    break;}case 57:#line 421 "awk.y"{		yyval.nodeval = node(yyvsp[-3].nodeval, Node_K_if, 			node(yyvsp[0].nodeval, Node_if_branches, (NODE *)NULL));	  ;    break;}case 58:#line 427 "awk.y"{ yyval.nodeval = node (yyvsp[-6].nodeval, Node_K_if,				node (yyvsp[-3].nodeval, Node_if_branches, yyvsp[0].nodeval)); ;    break;}case 59:#line 433 "awk.y"{ want_assign = 0; ;    break;}case 63:#line 444 "awk.y"{ yyval.nodeval = NULL; ;    break;}case 64:#line 446 "awk.y"{ yyval.nodeval = node (yyvsp[0].nodeval, Node_redirect_input, (NODE *)NULL); ;    break;}case 65:#line 451 "awk.y"{ yyval.nodeval = NULL; ;    break;}case 66:#line 453 "awk.y"{ yyval.nodeval = node (yyvsp[0].nodeval, Node_redirect_output, (NODE *)NULL); ;    break;}case 67:#line 455 "awk.y"{ yyval.nodeval = node (yyvsp[0].nodeval, Node_redirect_append, (NODE *)NULL); ;    break;}case 68:#line 457 "awk.y"{ yyval.nodeval = node (yyvsp[0].n

⌨️ 快捷键说明

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