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

📄 preproc.y

📁 postgresql8.3.4源码,开源数据库
💻 Y
📖 第 1 页 / 共 5 页
字号:
%name-prefix="base_yy"%locations%union {	double	dval;	char	*str;	int     ival;	struct	when		action;	struct	index		index;	int		tagname;	struct	this_type	type;	enum	ECPGttype	type_enum;	enum	ECPGdtype	dtype_enum;	struct	fetch_desc	descriptor;	struct  su_symbol	struct_union;	struct	prep		prep;}/* special embedded SQL token */%token	SQL_ALLOCATE SQL_AUTOCOMMIT SQL_BOOL SQL_BREAK		SQL_CALL SQL_CARDINALITY SQL_CONNECT		SQL_CONTINUE SQL_COUNT SQL_DATA		SQL_DATETIME_INTERVAL_CODE		SQL_DATETIME_INTERVAL_PRECISION SQL_DESCRIBE		SQL_DESCRIPTOR SQL_DISCONNECT SQL_FOUND		SQL_FREE SQL_GO SQL_GOTO SQL_IDENTIFIED		SQL_INDICATOR SQL_KEY_MEMBER SQL_LENGTH		SQL_LONG SQL_NULLABLE SQL_OCTET_LENGTH		SQL_OPEN SQL_OUTPUT SQL_REFERENCE		SQL_RETURNED_LENGTH SQL_RETURNED_OCTET_LENGTH SQL_SCALE		SQL_SECTION SQL_SHORT SQL_SIGNED SQL_SQL SQL_SQLERROR		SQL_SQLPRINT SQL_SQLWARNING SQL_START SQL_STOP		SQL_STRUCT SQL_UNSIGNED SQL_VAR SQL_WHENEVER/* C token */%token	S_ADD S_AND S_ANYTHING S_AUTO S_CONST S_DEC S_DIV		S_DOTPOINT S_EQUAL S_EXTERN S_INC S_LSHIFT S_MEMPOINT		S_MEMBER S_MOD S_MUL S_NEQUAL S_OR S_REGISTER S_RSHIFT		S_STATIC S_SUB S_VOLATILE		S_TYPEDEF/* I need this and don't know where it is defined inside the backend */%token	TYPECAST/* ordinary key words in alphabetical order */%token <keyword> ABORT_P ABSOLUTE_P ACCESS ACTION ADD_P ADMIN AFTER	AGGREGATE ALL ALSO ALTER ALWAYS ANALYSE ANALYZE AND ANY ARRAY AS ASC	ASSERTION ASSIGNMENT ASYMMETRIC AT AUTHORIZATION	BACKWARD BEFORE BEGIN_P BETWEEN BIGINT BINARY BIT	BOOLEAN_P BOTH BY	CACHE CALLED CASCADE CASCADED CASE CAST CHAIN CHAR_P	CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE	CLUSTER COALESCE COLLATE COLUMN COMMENT COMMIT	COMMITTED CONCURRENTLY CONFIGURATION CONNECTION CONSTRAINT CONSTRAINTS 	CONTENT_P CONVERSION_P COPY COST CREATE CREATEDB	CREATEROLE CREATEUSER CROSS CSV CURRENT_P CURRENT_DATE CURRENT_ROLE	CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE	DATABASE DAY_P DEALLOCATE DEC DECIMAL_P DECLARE DEFAULT DEFAULTS	DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS DESC	DICTIONARY DISABLE_P DISCARD DISTINCT DO DOCUMENT_P DOMAIN_P DOUBLE_P DROP	EACH ELSE ENABLE_P ENCODING ENCRYPTED END_P ENUM_P ESCAPE EXCEPT EXCLUSIVE EXCLUDING	EXECUTE EXISTS EXPLAIN EXTERNAL EXTRACT	FALSE_P FAMILY FETCH FIRST_P FLOAT_P FOR FORCE FOREIGN FORWARD FREEZE FROM	FULL FUNCTION	GET GLOBAL GRANT GRANTED GREATEST GROUP_P	HANDLER HAVING HEADER_P HOLD HOUR_P	IF_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCLUDING INCREMENT	INDEX INDEXES INHERIT INHERITS INITIALLY INNER_P INOUT INPUT_P	INSENSITIVE INSERT INSTEAD INT_P INTEGER INTERSECT	INTERVAL INTO INVOKER IS ISNULL ISOLATION	JOIN	KEY	LANCOMPILER LANGUAGE LARGE_P LAST_P LEADING LEAST LEFT LEVEL	LIKE LIMIT LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP LOCATION	LOCK_P LOGIN_P	MAPPING MATCH MAXVALUE MINUTE_P MINVALUE MODE MONTH_P MOVE	NAME_P NAMES NATIONAL NATURAL NCHAR NEW NEXT NO NOCREATEDB	NOCREATEROLE NOCREATEUSER NOINHERIT NOLOGIN_P NONE NOSUPERUSER	NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF NULLS_P NUMERIC	OBJECT_P OF OFF OFFSET OIDS OLD ON ONLY OPERATOR OPTION OR ORDER	OUT_P OUTER_P OVERLAPS OVERLAY OWNED OWNER	PARSER PARTIAL PASSWORD PLACING PLANS POSITION	PRECISION PRESERVE PREPARE PREPARED PRIMARY	PRIOR PRIVILEGES PROCEDURAL PROCEDURE	QUOTE	READ REAL REASSIGN RECHECK REFERENCES REINDEX RELATIVE_P RELEASE RENAME	REPEATABLE REPLACE REPLICA RESET RESTART RESTRICT RETURNING RETURNS REVOKE	RIGHT ROLE ROLLBACK ROW ROWS RULE	SAVEPOINT SCHEMA SCROLL SEARCH SECOND_P SECURITY SELECT SEQUENCE	SERIALIZABLE SESSION SESSION_USER SET SETOF SHARE	SHOW SIMILAR SIMPLE SMALLINT SOME STABLE STANDALONE_P START STATEMENT	STATISTICS STDIN STDOUT STORAGE STRICT_P STRIP_P SUBSTRING SUPERUSER_P	SYMMETRIC SYSID SYSTEM_P	TABLE TABLESPACE TEMP TEMPLATE TEMPORARY TEXT_P THEN TIME TIMESTAMP TO 	TRAILING TRANSACTION TREAT TRIGGER TRIM TRUE_P TRUNCATE TRUSTED TYPE_P	UNCOMMITTED UNENCRYPTED UNION UNIQUE UNKNOWN UNLISTEN UNTIL	UPDATE USER USING	VACUUM VALID VALIDATOR VALUE_P VALUES VARCHAR VARYING	VERBOSE VERSION_P VIEW VOLATILE	WHEN WHERE WHITESPACE_P WITH WITHOUT WORK WRITE	XML_P XMLATTRIBUTES XMLCONCAT XMLELEMENT XMLFOREST XMLPARSE	XMLPI XMLROOT XMLSERIALIZE	YEAR_P YES_P	ZONE/* The grammar thinks these are keywords, but they are not in the keywords.c * list and so can never be entered directly.  The filter in parser.c * creates these tokens when required. */%token           NULLS_FIRST NULLS_LAST WITH_CASCADED WITH_LOCAL WITH_CHECK/* Special token types, not actually keywords - see the "lex" file */%token <str>	IDENT SCONST Op CSTRING CVARIABLE CPP_LINE IP BCONST%token <str>	XCONST DOLCONST ECONST NCONST%token <ival>	ICONST PARAM%token <dval>	FCONST/* precedence: lowest to highest */%nonassoc	SET                             /* see relation_expr_opt_alias */%left		UNION EXCEPT%left		INTERSECT%left		OR%left		AND%right		NOT%right		'='%nonassoc	'<' '>'%nonassoc	LIKE ILIKE SIMILAR%nonassoc	ESCAPE%nonassoc	OVERLAPS%nonassoc	BETWEEN%nonassoc	IN_P%left		POSTFIXOP					/* dummy for postfix Op rules */%left		Op OPERATOR				/* multi-character ops and user-defined operators */%nonassoc	NOTNULL%nonassoc	ISNULL%nonassoc	IS NULL_P TRUE_P FALSE_P UNKNOWN%left		'+' '-'%left		'*' '/' '%'%left		'^'/* Unary Operators */%left		AT ZONE%right		UMINUS%left		'[' ']'%left		'(' ')'%left		TYPECAST%left		'.'%left		JOIN CROSS LEFT FULL RIGHT INNER_P NATURAL/* kluge to keep xml_whitespace_option from causing shift/reduce conflicts */%right         PRESERVE STRIP_P%type  <str>	Iconst Fconst Sconst TransactionStmt CreateStmt RoleId%type  <str>	CreateAsElement OptCreateAs CreateAsList CreateAsStmt%type  <str>	comment_text ConstraintDeferrabilitySpec TableElementList%type  <str>	key_match ColLabel SpecialRuleRelation ColId columnDef%type  <str>	ColConstraint ColConstraintElem drop_type Bconst Iresult%type  <str>	TableConstraint OptTableElementList Xconst opt_transaction%type  <str>	ConstraintElem key_actions ColQualList cluster_index_specification%type  <str>	target_list target_el alias_clause type_func_name_keyword%type  <str>	qualified_name database_name alter_using type_function_name%type  <str>	access_method attr_name index_name name func_name%type  <str>	file_name AexprConst c_expr ConstTypename var_list%type  <str>	a_expr b_expr TruncateStmt CommentStmt OnCommitOption opt_by%type  <str>	opt_indirection expr_list extract_list extract_arg%type  <str>	position_list substr_list substr_from alter_column_default%type  <str>	trim_list in_expr substr_for attrs TableFuncElement%type  <str>	Typename SimpleTypename Numeric opt_float DiscardStmt%type  <str>	Character character opt_varying opt_charset enum_val_list%type  <str>	opt_timezone opt_interval table_ref fetch_direction%type  <str>	ConstDatetime AlterDomainStmt AlterSeqStmt alter_rel_cmds%type  <str>	SelectStmt into_clause OptTemp ConstraintAttributeSpec%type  <str>	opt_table opt_all sort_clause sortby_list ConstraintAttr%type  <str>	sortby qualified_name_list name_list ColId_or_Sconst%type  <str>	group_clause having_clause from_clause opt_distinct opt_hold%type  <str>	join_outer where_clause relation_expr sub_type arg_class%type  <str>	opt_column_list insert_rest InsertStmt param_name%type  <str>	columnList DeleteStmt UpdateStmt DeclareCursorStmt%type  <str>	NotifyStmt columnElem UnlistenStmt TableElement fetch_count%type  <str>	copy_delimiter ListenStmt CopyStmt copy_file_name opt_binary%type  <str>	FetchStmt from_in CreateOpClassStmt returning_clause%type  <str>	ClosePortalStmt DropStmt VacuumStmt AnalyzeStmt opt_verbose%type  <str>	opt_full func_arg OptWith opt_freeze alter_table_cmd%type  <str>	analyze_keyword opt_name_list ExplainStmt index_params%type  <str>	index_elem opt_class access_method_clause alter_table_cmds%type  <str>	index_opt_unique IndexStmt func_return ConstInterval%type  <str>	func_args_list func_args opt_with def_arg overlay_placing%type  <str>	def_elem def_list definition DefineStmt select_with_parens%type  <str>	opt_instead event RuleActionList opt_using CreateAssertStmt%type  <str>	RuleActionStmtOrEmpty RuleActionMulti func_as reindex_type%type  <str>	RuleStmt opt_column oper_argtypes NumConst var_name%type  <str>	MathOp RemoveFuncStmt ECPGunreserved_con opt_database_name%type  <str>	RemoveAggrStmt opt_procedural select_no_parens CreateCastStmt%type  <str>	RemoveOperStmt RenameStmt all_Op opt_trusted opt_lancompiler%type  <str>	VariableSetStmt var_value zone_value VariableShowStmt%type  <str>	VariableResetStmt AlterTableStmt from_list overlay_list%type  <str>	relation_name OptTableSpace LockStmt opt_lock %type  <str>	CreateUserStmt AlterUserStmt CreateSeqStmt OptSeqList%type  <str>	OptSeqElem TriggerForSpec TriggerForOpt TriggerForType%type  <str>	DropTrigStmt TriggerOneEvent TriggerEvents RuleActionStmt%type  <str>	TriggerActionTime CreateTrigStmt DropPLangStmt DropCastStmt%type  <str>	CreatePLangStmt TriggerFuncArgs TriggerFuncArg simple_select%type  <str>	ViewStmt LoadStmt CreatedbStmt createdb_opt_item ExplainableStmt%type  <str>	createdb_opt_list opt_encoding OptInherit opt_equal%type  <str>	privilege_list privilege privilege_target opt_if_exists%type  <str>	opt_grant_grant_option cursor_options DropOwnedStmt%type  <str>	transaction_mode_list_or_empty transaction_mode_list%type  <str>	function_with_argtypes_list function_with_argtypes IntConstVar%type  <str>	DropdbStmt ClusterStmt grantee RevokeStmt Bit DropOpClassStmt%type  <str>	GrantStmt privileges PosAllConst constraints_set_list%type  <str>	ConstraintsSetStmt AllConst CreateDomainStmt opt_nowait%type  <str>	case_expr when_clause_list case_default case_arg when_clause%type  <str>	select_clause opt_select_limit select_limit_value opt_recheck%type  <str>	ConstraintTimeSpec AlterDatabaseSetStmt DropAssertStmt%type  <str>	select_offset_value ReindexStmt join_type opt_boolean%type  <str>	join_qual joined_table opclass_item relation_expr_opt_alias%type  <str>	lock_type array_expr_list ReassignOwnedStmt for_locking_item%type  <str>	OptConstrFromTable OptTempTableName StringConst array_expr%type  <str>	constraints_set_mode comment_type opt_check_option%type  <str>	CreateGroupStmt AlterGroupStmt DropGroupStmt key_delete%type  <str>	opt_force key_update CreateSchemaStmt PosIntStringConst%type  <str>	IntConst PosIntConst grantee_list func_type opt_or_replace%type  <str>	select_limit CheckPointStmt ECPGColId old_aggr_list%type  <str>	OptSchemaName OptSchemaEltList schema_stmt opt_drop_behavior%type  <str>	handler_name any_name_list any_name opt_as insert_column_list%type  <str>	columnref values_clause AllConstVar prep_type_clause ExecuteStmt%type  <str>	insert_column_item DropRuleStmt ctext_expr execute_param_clause %type  <str>	createfunc_opt_item set_rest alter_rel_cmd%type  <str>	CreateFunctionStmt createfunc_opt_list func_table%type  <str>	DropUserStmt copy_from copy_opt_list copy_opt_item%type  <str>	opt_oids TableLikeClause key_action opt_definition%type  <str>	cast_context row qual_Op qual_all_Op opt_default%type  <str>	CreateConversionStmt any_operator opclass_item_list%type  <str>	iso_level type_list CharacterWithLength ConstCharacter%type  <str>	CharacterWithoutLength BitWithLength BitWithoutLength%type  <str>	ConstBit GenericType TableFuncElementList opt_analyze%type  <str>	opt_sort_clause subquery_Op transaction_mode_item%type  <str>	ECPGWhenever ECPGConnect connection_target ECPGOpen%type  <str>	indicator ecpg_using ecpg_into DeallocateStmt%type  <str>	storage_declaration storage_clause opt_initializer c_anything%type  <str>	variable_list variable c_thing c_term ECPGKeywords_vanames%type  <str>	opt_pointer ECPGDisconnect dis_name storage_modifier%type  <str>	execstring server_name ECPGVarDeclaration func_expr%type  <str>	connection_object opt_server opt_port c_stuff c_stuff_item%type  <str>	user_name opt_user char_variable ora_user ident opt_reference%type  <str>	var_type_declarations quoted_ident_stringvar ECPGKeywords_rest%type  <str>	db_prefix server opt_options opt_connection_name c_list%type  <str>	ECPGSetConnection ECPGTypedef c_args ECPGKeywords ECPGCKeywords%type  <str>	enum_type civar civarind ECPGCursorStmt PreparableStmt%type  <str>	ECPGFree ECPGDeclare ECPGVar at enum_definition%type  <str>	struct_union_type s_struct_union vt_declarations execute_rest%type  <str>	var_declaration type_declaration single_vt_declaration%type  <str>	ECPGSetAutocommit on_off variable_declarations ECPGDescribe%type  <str>	ECPGAllocateDescr ECPGDeallocateDescr symbol opt_output%type  <str>	ECPGGetDescriptorHeader ECPGColLabel SetResetClause AlterUserSetStmt%type  <str>	reserved_keyword unreserved_keyword ecpg_interval opt_ecpg_using%type  <str>	col_name_keyword precision opt_scale ECPGExecuteImmediateStmt%type  <str>	ECPGTypeName using_list ECPGColLabelCommon UsingConst %type  <str>	using_descriptor into_descriptor opt_nulls_order opt_asc_desc%type  <str>	prepared_name struct_union_type_with_symbol OptConsTableSpace%type  <str>	ECPGunreserved ECPGunreserved_interval cvariable opt_bit_field%type  <str>	AlterOwnerStmt OptTableSpaceOwner CreateTableSpaceStmt%type  <str>	DropTableSpaceStmt indirection indirection_el ECPGSetDescriptorHeader%type  <str>	AlterDatabaseStmt CreateRoleStmt OptRoleList AlterRoleStmt AlterRoleSetStmt%type  <str>	DropRoleStmt add_drop opt_validator common_func_opt_item%type  <str>	opt_grant_admin_option AlterFunctionStmt alterfunc_opt_list opt_restrict%type  <str>	AlterObjectSchemaStmt alterdb_opt_list for_locking_clause opt_for_locking_clause%type  <str>	locked_rels_list opt_granted_by RevokeRoleStmt alterdb_opt_item using_clause%type  <str>	GrantRoleStmt opt_asymmetric aggr_args old_aggr_definition%type  <str>	old_aggr_elem for_locking_items TableLikeOptionList TableLikeOption%type  <str>	set_target_list	set_clause_list set_clause multiple_set_clause%type  <str>	ctext_expr_list ctext_row single_set_clause set_target opt_type_modifiers%type  <str>	opclass_drop_list opclass_drop DropOpFamilyStmt opt_opfamily%type  <str>	CreateOpFamilyStmt AlterOpFamilyStmt create_as_target%type  <str>	xml_attributes xml_attribute_list document_or_content xml_whitespace_option%type  <str>	opt_xml_root_standalone xml_root_version xml_attribute_el %type  <str>	where_or_current_clause AlterTSConfigurationStmt AlterTSDictionaryStmt%type  <struct_union> s_struct_union_symbol%type  <descriptor> ECPGGetDescriptor ECPGSetDescriptor%type  <type_enum> simple_type signed_type unsigned_type%type  <dtype_enum> descriptor_item desc_header_item%type  <type>	var_type%type  <prep>	PrepareStmt%type  <action> action%type  <index>	opt_array_bounds%%prog: statements;statements: /*EMPTY*/		| statements statement		;statement: ecpgstart at stmt ';'	{ connection = NULL; }		| ecpgstart stmt ';'		| ecpgstart ECPGVarDeclaration		{			fprintf(yyout, "%s", $2);			free($2);			output_line_number();		}		| ECPGDeclaration		| c_thing		{ fprintf(yyout, "%s", $1); free($1); }		| CPP_LINE		{ fprintf(yyout, "%s", $1); free($1); }		| '{'			{ braces_open++; fputs("{", yyout); }		| '}'			{ remove_typedefs(braces_open); remove_variables(braces_open--); fputs("}", yyout); }		;at: AT connection_object		{			connection = $2;			/*			 *	Do we have a variable as connection target?			 *	Remove the variable from the variable			 *	list or else it will be used twice			 */			if (argsinsert != NULL)				argsinsert = NULL;		}	;stmt:  AlterDatabaseStmt		{ output_statement($1, 0, ECPGst_normal); }		| AlterDatabaseSetStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterDomainStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterFunctionStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterGroupStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterObjectSchemaStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterOwnerStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterSeqStmt		{ output_statement($1, 0, ECPGst_normal); }		| AlterTableStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterRoleSetStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterRoleStmt		{ output_statement($1, 0, ECPGst_normal); }		| AlterTSConfigurationStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterTSDictionaryStmt	{ output_statement($1, 0, ECPGst_normal); }		| AlterUserStmt		{ output_statement($1, 0, ECPGst_normal); }		| AlterUserSetStmt	{ output_statement($1, 0, ECPGst_normal); }		| AnalyzeStmt		{ output_statement($1, 0, ECPGst_normal); }		| CheckPointStmt	{ output_statement($1, 0, ECPGst_normal); }		| ClosePortalStmt		{

⌨️ 快捷键说明

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