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

📄 sdbms_sql.cpp

📁 使用yacc的一个例子
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#line 602 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
											yyval.slval = new CSdbms_SecurityLevel(yyattribute(2 - 4).nval);	
										
#line 1174 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 57:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 605 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											CSdbms_SecurityLevel *pSL = new CSdbms_SecurityLevel(2);//缺省密级为2
											if	(g_strRangeItems[0] != '\0')
												pSL->ParseRangeString(g_strRangeItems);
											yyval.slval = pSL;
											g_strRangeItems[0] = '\0';
										
#line 1193 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 58:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[6];
			yyinitdebug(yya, 6);
#endif
			{
#line 613 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											CSdbms_SecurityLevel *pSL = new CSdbms_SecurityLevel(yyattribute(2 - 5).nval);
											if	(g_strRangeItems[0] != '\0')
												pSL->ParseRangeString(g_strRangeItems);
											yyval.slval = pSL;
											g_strRangeItems[0] = '\0';
										
#line 1212 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 59:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 623 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.nval = yyattribute(1 - 1).nval;	
#line 1225 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 60:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 629 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyerror("missing '}'"); yyerrok(); 
#line 1238 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 61:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 632 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
											strcat(g_strRangeItems, ","); 
											strcat(g_strRangeItems, yyattribute(3 - 3).sval); 
											delete yyattribute(3 - 3).sval;	
										
#line 1255 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 62:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 637 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
											strcat(g_strRangeItems, yyattribute(1 - 1).sval);	
											delete yyattribute(1 - 1).sval;
										
#line 1271 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 63:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 643 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.sval = yyattribute(1 - 1).sval;	
#line 1284 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 64:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[7];
			yyinitdebug(yya, 7);
#endif
			{
#line 649 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreSetUserSecurityLevel(yyattribute(4 - 6).nval, g_strUserNames);
					g_strUserNames[0] = '\0';
				
#line 1300 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 65:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[7];
			yyinitdebug(yya, 7);
#endif
			{
#line 654 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreSetUserSecurityLevel(yyattribute(4 - 6).slval->m_nClassifaction, g_strUserNames);
					g_strUserNames[0] = '\0';
					delete yyattribute(4 - 6).slval;
				
#line 1317 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 66:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[10];
			yyinitdebug(yya, 10);
#endif
			{
#line 664 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreSetAllowSecurityLevel(yyattribute(5 - 9).slval, g_strUserNames, g_strTableNames);
					g_strUserNames[0] = '\0';
					g_strTableNames[0] = '\0';
					delete yyattribute(5 - 9).slval;
				
#line 1335 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 67:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[10];
			yyinitdebug(yya, 10);
#endif
			{
#line 675 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreSetCurrentSecurityLevel(yyattribute(5 - 9).slval, g_strUserNames, g_strTableNames);
					g_strUserNames[0] = '\0';
					g_strTableNames[0] = '\0';
					delete yyattribute(5 - 9).slval;
				
#line 1353 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 68:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[7];
			yyinitdebug(yya, 7);
#endif
			{
#line 686 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreSetTableSecurityLevel(yyattribute(4 - 6).slval, g_strTableNames);
					g_strTableNames[0] = '\0';
					delete yyattribute(4 - 6).slval;
				
#line 1370 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 69:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 693 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.sval = yyattribute(1 - 1).sval;	
#line 1383 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 70:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 696 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											strcat(g_strTableNames, ",");
											strcat(g_strTableNames, yyattribute(3 - 3).sval);
											delete yyattribute(3 - 3).sval;	
										
#line 1400 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 71:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 701 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
											strcat(g_strTableNames, yyattribute(1 - 1).sval);
											delete yyattribute(1 - 1).sval;
										
#line 1416 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 72:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 707 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.sval = yyattribute(1 - 1).sval;	
#line 1429 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 73:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 710 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
											strcat(g_strFieldNames, ",");
											strcat(g_strFieldNames, yyattribute(3 - 3).sval);
											delete yyattribute(3 - 3).sval;
										
#line 1446 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 74:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 715 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											strcat(g_strFieldNames, yyattribute(1 - 1).sval);
											delete yyattribute(1 - 1).sval;	
										
#line 1462 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 75:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 723 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
					g_sdbms.PreCreateTable(yyattribute(3 - 4).sval, g_nColsCount, g_cols, g_strKeyColNames);
					delete yyattribute(3 - 4).sval;
					g_nColsCount = 0;
					g_strKeyColNames[0] = '\0';
				
#line 1480 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 76:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[8];
			yyinitdebug(yya, 8);
#endif
			{
#line 730 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
					g_sdbms.PreCreateTable(yyattribute(3 - 7).sval, g_nColsCount, g_cols, g_strKeyColNames, yyattribute(7 - 7).slval);
					delete yyattribute(3 - 7).sval;
					delete yyattribute(7 - 7).slval;
					g_nColsCount = 0;
					g_strKeyColNames[0] = '\0';
				
#line 1499 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 77:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 740 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyerror("missing '}'"); yyerrok(); 
#line 1512 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 78:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 751 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

										g_cols[g_nColsCount].m_strFieldName = yyattribute(1 - 2).sval;
										g_cols[g_nColsCount].m_bKey = FALSE;
										g_cols[g_nColsCount].m_bCanNull = TRUE;
										g_nColsCount++;
										delete yyattribute(1 - 2).sval;
									
#line 1531 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 79:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 759 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

										g_cols[g_nColsCount].m_strFieldName = yyattribute(1 - 4).sval;
										g_cols[g_nColsCount].m_bKey = FALSE;
										g_cols[g_nColsCount].m_bCanNull = FALSE;
										g_nColsCount++;
										delete yyattribute(1 - 4).sval;
									
#line 1550 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 80:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 773 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

										g_cols[g_nColsCount].m_nDataType = DATATYPE_STRING;
										g_cols[g_nColsCount].m_nLength = abs(yyattribute(3 - 4).nval);
									
#line 1566 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 81:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 779 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

										g_cols[g_nColsCount].m_nDataType = DATATYPE_INT;
										g_cols[g_nColsCount].m_nLength = sizeof(int);
									
#line 1582 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 82:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 785 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

										g_cols[g_nColsCount].m_nDataType = DATATYPE_BOOL;
										g_cols[g_nColsCount].m_nLength = sizeof(BOOL);
									
#line 1598 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 83:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 795 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyerror("missing '}'"); yyerrok(); 
#line 1611 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 84:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 798 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

										strcat(g_strKeyColNames, ",");
										strcat(g_strKeyColNames, yyattribute(3 - 3).sval);
										delete yyattribute(3 - 3).sval;
									
#line 1628 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 85:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 803 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

										strcat(g_strKeyColNames, yyattribute(1 - 1).sval);
										delete yyattribute(1 - 1).sval;
									
#line 1644 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 86:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 810 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
										g_sdbms.PreDropTable(g_strTableNames);
										g_strTableNames[0] = '\0';
									
#line 1660 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 87:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[7];
			yyinitdebug(yya, 7);
#endif
			{
#line 818 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

						g_sdbms.PreInsert(yyattribute(3 - 6).sval, g_strFieldNames, g_nValuesCount, g_values);
						delete yyattribute(3 - 6).sval;
						g_strFieldNames[0] = '\0';
						g_nValuesCount = 0;
					
#line 1678 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 88:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[6];
			yyinitdebug(yya, 6);
#endif
			{
#line 825 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

						g_sdbms.DoInsert(yyattribute(3 - 5).sval, 0, NULL, g_nValuesCount, g_values);
						delete yyattribute(3 - 5).sval;
						g_strFieldNames[0] = '\0';
						g_nValuesCount = 0;
					
#line 1696 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 89:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 847 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

								g_values[g_nValuesCount].m_pExpr = yyattribute(1 - 1).exprval;
								g_values[g_nValuesCount].m_pSecLevel = NULL;
								g_nValuesCount++;
							
#line 1713 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 90:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 853 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

								g_values[g_nValuesCount].m_pExpr = yyattribute(1 - 4).exprval;
								g_values[g_nValuesCount].m_pSecLevel = yyattribute(3 - 4).slval;
								g_nValuesCount++;
							
#line 1730 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 91:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 860 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.exprval = new CSdbms_Express(OP_ADD, yyattribute(1 - 3).exprval, yyattribute(3 - 3).exprval);	
#line 1743 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 92:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{

⌨️ 快捷键说明

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