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

📄 sdbms_sql.cpp

📁 使用yacc的一个例子
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#line 861 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(OP_SUB, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);	
#line 1756 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 93:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 862 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = yyattribute(1 - 1).exprval;						
#line 1769 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 94:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 865 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(OP_MUL, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);	
#line 1782 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 95:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 866 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(OP_DIV, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);	
#line 1795 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 96:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 867 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = yyattribute(1 - 1).exprval;						
#line 1808 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 97:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 870 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = yyattribute(2 - 3).exprval;	
#line 1821 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 98:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 871 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = yyattribute(2 - 3).exprval; yyerror("missing ')'"); yyerrok();		
#line 1834 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 99:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 872 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(OP_UMINUS, NULL, yyattribute(2 - 2).exprval);			
#line 1847 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 100:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 873 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(yyattribute(1 - 1).nval);							
#line 1860 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 101:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 874 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(yyattribute(1 - 1).sval);							
#line 1873 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 102:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 875 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(yyattribute(1 - 1).bval);							
#line 1886 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 103:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 876 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(yyattribute(1 - 1).slval);							
#line 1899 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 104:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 877 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = yyattribute(1 - 1).exprval;										
#line 1912 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 105:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 880 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.bval = TRUE;	
#line 1925 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 106:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 881 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.bval = FALSE;	
#line 1938 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 107:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 884 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
														yyval.exprval = new CSdbms_Express("", yyattribute(1 - 1).sval, FALSE);	
														delete yyattribute(1 - 1).sval;
													
#line 1954 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 108:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 888 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
														yyval.exprval = new CSdbms_Express("", yyattribute(3 - 4).sval, TRUE);	
														delete yyattribute(3 - 4).sval;
													
#line 1970 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 109:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 892 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
														yyval.exprval = new CSdbms_Express(yyattribute(1 - 3).sval, yyattribute(3 - 3).sval, FALSE);	
														delete yyattribute(1 - 3).sval;
														delete yyattribute(3 - 3).sval;
													
#line 1987 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 110:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[7];
			yyinitdebug(yya, 7);
#endif
			{
#line 898 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
														yyval.exprval = new CSdbms_Express(yyattribute(3 - 6).sval, yyattribute(5 - 6).sval, TRUE);	
														delete yyattribute(3 - 6).sval;
														delete yyattribute(5 - 6).sval;
													
#line 2004 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 111:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 907 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

						if	(g_strFieldNames[strlen(g_strFieldNames)-1] == ',')
							g_strFieldNames[strlen(g_strFieldNames)-1] = '\0';
						g_sdbms.PreUpdate(yyattribute(2 - 4).sval, g_strFieldNames, g_nValuesCount, g_values);
						delete yyattribute(2 - 4).sval;
						g_nValuesCount = 0;
						g_strFieldNames[0] = '\0';
					
#line 2024 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 112:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[7];
			yyinitdebug(yya, 7);
#endif
			{
#line 916 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

						if	(g_strFieldNames[strlen(g_strFieldNames)-1] == ',')
							g_strFieldNames[strlen(g_strFieldNames)-1] = '\0';
						g_sdbms.PreUpdate(yyattribute(2 - 6).sval, g_strFieldNames, g_nValuesCount, g_values, yyattribute(6 - 6).condval);
						delete yyattribute(2 - 6).sval;
						delete yyattribute(6 - 6).condval;
						g_nValuesCount = 0;
						g_strFieldNames[0] = '\0';
					
#line 2045 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 113:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 932 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											strcat(g_strFieldNames, yyattribute(1 - 3).sval);
											strcat(g_strFieldNames, ",");
											delete yyattribute(1 - 3).sval;
										
#line 2062 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 114:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 940 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_OR, yyattribute(1 - 3).condval, yyattribute(3 - 3).condval);	
#line 2075 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 115:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 941 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = yyattribute(1 - 1).condval;							
#line 2088 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 116:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 944 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_AND, yyattribute(1 - 3).condval, yyattribute(3 - 3).condval);	
#line 2101 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 117:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 945 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = yyattribute(1 - 1).condval;								
#line 2114 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 118:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 948 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = yyattribute(2 - 3).condval;								
#line 2127 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 119:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 949 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_NOT, NULL, yyattribute(2 - 2).condval);	
#line 2140 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 120:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 950 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = yyattribute(1 - 1).condval;								
#line 2153 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 121:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 953 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_EQU, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);	
#line 2166 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 122:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 954 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_UNEQU, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);	
#line 2179 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 123:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 955 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_LESS, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);	
#line 2192 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 124:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 956 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_LESSEQU, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);
#line 2205 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 125:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 957 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_MORE, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);	
#line 2218 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 126:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 958 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.condval = new CSdbms_Condition(OP_MOREEQU, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);
#line 2231 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 127:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 963 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.DoDelete(yyattribute(3 - 3).sval);
					delete yyattribute(3 - 3).sval;
				
#line 2247 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 128:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[6];
			yyinitdebug(yya, 6);
#endif
			{
#line 968 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.DoDelete(yyattribute(3 - 5).sval, yyattribute(5 - 5).condval);
					delete yyattribute(3 - 5).sval;
					delete yyattribute(5 - 5).condval;
				
#line 2264 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 129:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[8];
			yyinitdebug(yya, 8);
#endif
			{
#line 977 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreSelect(g_nExprCount, g_expr, g_strTableNames, yyattribute(5 - 7).condval, 
								g_nOrderCount, g_order, yyattribute(7 - 7).slval);
					g_nExprCount = 0;
					g_nOrderCount = 0;
					g_strTableNames[0] = '\0';
					if	(yyattribute(7 - 7).slval)	delete yyattribute(7 - 7).slval;
					//CSdbms_Express*交由主程序释放内存
					//条件表达式由主程序释放内存
				
#line 2286 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 130:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 990 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	g_nExprCount = 0;	
#line 2299 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 131:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 995 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_expr[g_nExprCount] = yyattribute(3 - 3).exprval;
											g_nExprCount++;
										
#line 2315 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 132:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 999 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
											g_expr[g_nExprCount] = yyattribute(1 - 1).exprval;
											g_nExprCount++;
										
#line 2331 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 133:
		{
#ifdef YYDEBUG

⌨️ 快捷键说明

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