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

📄 sdbms_sql.cpp

📁 使用yacc的一个例子
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		break;
	case 22:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 385 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreSetTopRole(g_strRoleNames);
					g_strRoleNames[0] = '\0';
				
#line 599 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 23:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[6];
			yyinitdebug(yya, 6);
#endif
			{
#line 394 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
					g_sdbms.PreAddUserToRole(g_strUserNames, g_strRoleNames);
					g_strUserNames[0] = '\0';
					g_strRoleNames[0] = '\0';
				
#line 616 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 24:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[6];
			yyinitdebug(yya, 6);
#endif
			{
#line 404 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
					g_sdbms.PreDelUserFromRole(g_strUserNames, g_strRoleNames);
					g_strUserNames[0] = '\0';
					g_strRoleNames[0] = '\0';
				
#line 633 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 25:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[6];
			yyinitdebug(yya, 6);
#endif
			{
#line 413 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
					g_sdbms.PreChangeRole(g_strUserNames, g_strRoleNames);
					g_strUserNames[0] = '\0';
					g_strRoleNames[0] = '\0';
				
#line 650 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 26:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 422 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreGrant(g_strSystemRights, g_strRoleNames);
					g_strSystemRights[0] = '\0';
					g_strRoleNames[0] = '\0';	
				
#line 667 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 27:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 431 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					g_sdbms.PreRevoke(g_strSystemRights, g_strRoleNames);
					g_strSystemRights[0] = '\0';
					g_strRoleNames[0] = '\0';	
				
#line 684 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 28:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 439 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
					char str[10];
					_itoa(yyattribute(3 - 3).srval,str,10); 
					strcat(g_strSystemRights, ","); 
					strcat(g_strSystemRights, str);	
				
#line 702 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 29:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 446 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
					char str[10];
					_itoa(yyattribute(1 - 1).srval,str,10); 
					strcat(g_strSystemRights, str);	
				
#line 719 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 30:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 453 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_CREATE_DATABASE;	
#line 732 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 31:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 454 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_CREATE_TABLE;		
#line 745 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 32:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 455 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_CREATE_VIEW;		
#line 758 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 33:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 456 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_CREATE_INDEX;		
#line 771 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 34:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 457 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_DROP_DATABASE;		
#line 784 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 35:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 458 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_DROP_TABLE;			
#line 797 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 36:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 459 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_DROP_VIEW;			
#line 810 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 37:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 460 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_DROP_INDEX;			
#line 823 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 38:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 461 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_GRANT_OBJECT;		
#line 836 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 39:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 462 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	yyval.srval = SR_REVOKE_OBJECT;		
#line 849 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 40:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[8];
			yyinitdebug(yya, 8);
#endif
			{
#line 467 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					for	(int i=0; i<g_nOpersCount; i++)
					{
						g_sdbms.PreGrant(g_opers[i].nSqlID, yyattribute(5 - 7).sval, g_opers[i].strFieldNames, g_strRoleNames, FALSE, yyattribute(3 - 7).condval);
					}
					g_nOpersCount = 0;
					g_strRoleNames[0] = '\0';
					if	(yyattribute(3 - 7).condval)
						delete yyattribute(3 - 7).condval;
					if	(yyattribute(5 - 7).sval)
						delete yyattribute(5 - 7).sval;
				
#line 873 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 41:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[11];
			yyinitdebug(yya, 11);
#endif
			{
#line 480 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					for	(int i=0; i<g_nOpersCount; i++)
					{
						g_sdbms.PreGrant(g_opers[i].nSqlID, yyattribute(5 - 10).sval, g_opers[i].strFieldNames, g_strRoleNames, TRUE, yyattribute(3 - 10).condval);
					}
					g_nOpersCount = 0;
					g_strRoleNames[0] = '\0';
					if	(yyattribute(3 - 10).condval)
						delete yyattribute(3 - 10).condval;
					if	(yyattribute(5 - 10).sval)
						delete yyattribute(5 - 10).sval;
				
#line 897 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 42:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[8];
			yyinitdebug(yya, 8);
#endif
			{
#line 496 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					for	(int i=0; i<g_nOpersCount; i++)
					{
						g_sdbms.PreRevoke(g_opers[i].nSqlID, yyattribute(5 - 7).sval, g_opers[i].strFieldNames, g_strRoleNames, FALSE, FALSE, yyattribute(3 - 7).condval);
					}
					g_nOpersCount = 0;
					g_strRoleNames[0] = '\0';
					delete yyattribute(5 - 7).sval;
					if	(yyattribute(3 - 7).condval)
						delete yyattribute(3 - 7).condval;
				
#line 920 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 43:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[9];
			yyinitdebug(yya, 9);
#endif
			{
#line 508 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					for	(int i=0; i<g_nOpersCount; i++)
					{
						g_sdbms.PreRevoke(g_opers[i].nSqlID, yyattribute(5 - 8).sval, g_opers[i].strFieldNames, g_strRoleNames, FALSE, FALSE, yyattribute(3 - 8).condval);
					}
					g_nOpersCount = 0;
					g_strRoleNames[0] = '\0';
					delete yyattribute(5 - 8).sval;
					if	(yyattribute(3 - 8).condval)
						delete yyattribute(3 - 8).condval;
				
#line 943 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 44:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[9];
			yyinitdebug(yya, 9);
#endif
			{
#line 520 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					for	(int i=0; i<g_nOpersCount; i++)
					{
						g_sdbms.PreRevoke(g_opers[i].nSqlID, yyattribute(5 - 8).sval, g_opers[i].strFieldNames, g_strRoleNames, FALSE, TRUE, yyattribute(3 - 8).condval);
					}
					g_nOpersCount = 0;
					g_strRoleNames[0] = '\0';
					delete yyattribute(5 - 8).sval;
					if	(yyattribute(3 - 8).condval)
						delete yyattribute(3 - 8).condval;
				
#line 966 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 45:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[11];
			yyinitdebug(yya, 11);
#endif
			{
#line 532 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

					for	(int i=0; i<g_nOpersCount; i++)
					{
						g_sdbms.PreRevoke(g_opers[i].nSqlID, yyattribute(8 - 10).sval, g_opers[i].strFieldNames, g_strRoleNames, TRUE, FALSE, yyattribute(6 - 10).condval);
					}
					g_nOpersCount = 0;
					g_strRoleNames[0] = '\0';
					delete yyattribute(8 - 10).sval;
					if	(yyattribute(6 - 10).condval)
						delete yyattribute(6 - 10).condval;
				
#line 989 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 46:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 549 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_opers[g_nOpersCount].nSqlID = OR_SELECT;
											g_opers[g_nOpersCount].strFieldNames = "";
											g_nOpersCount++;
										
#line 1006 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 47:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 554 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_opers[g_nOpersCount].nSqlID = OR_SELECT;
											g_opers[g_nOpersCount].strFieldNames = g_strFieldNames;
											g_strFieldNames[0] = '\0';
											g_nOpersCount++;
										
#line 1024 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 48:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 560 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_opers[g_nOpersCount].nSqlID = OR_INSERT;
											g_opers[g_nOpersCount].strFieldNames = "";
											g_nOpersCount++;
										
#line 1041 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 49:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 565 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_opers[g_nOpersCount].nSqlID = OR_INSERT;
											g_opers[g_nOpersCount].strFieldNames = g_strFieldNames;
											g_strFieldNames[0] = '\0';
											g_nOpersCount++;
										
#line 1059 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 50:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 571 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_opers[g_nOpersCount].nSqlID = OR_UPDATE;
											g_opers[g_nOpersCount].strFieldNames = "";
											g_nOpersCount++;
										
#line 1076 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 51:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 576 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_opers[g_nOpersCount].nSqlID = OR_UPDATE;
											g_opers[g_nOpersCount].strFieldNames = g_strFieldNames;
											g_strFieldNames[0] = '\0';
											g_nOpersCount++;
										
#line 1094 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 52:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[2];
			yyinitdebug(yya, 2);
#endif
			{
#line 582 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_opers[g_nOpersCount].nSqlID = OR_DELETE;
											g_opers[g_nOpersCount].strFieldNames = "";
											g_nOpersCount++;
										
#line 1111 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 53:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{
#line 587 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											g_opers[g_nOpersCount].nSqlID = OR_DELETE;
											g_opers[g_nOpersCount].strFieldNames = g_strFieldNames;
											g_strFieldNames[0] = '\0';
											g_nOpersCount++;
										
#line 1129 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 54:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[3];
			yyinitdebug(yya, 3);
#endif
			{
#line 596 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"

											yyval.slval = new CSdbms_SecurityLevel();		
										
#line 1144 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 55:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[4];
			yyinitdebug(yya, 4);
#endif
			{
#line 599 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.y"
	
											yyval.slval = new CSdbms_SecurityLevel();		
										
#line 1159 "E:\\cm\\test\\SdbmsDemo\\sdbms_sql.cpp"
			}
		}
		break;
	case 56:
		{
#ifdef YYDEBUG
			YYSTYPE YYFAR *yya[5];
			yyinitdebug(yya, 5);
#endif
			{

⌨️ 快捷键说明

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