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

📄 pgc.c

📁 关系型数据库 Postgresql 6.5.2
💻 C
📖 第 1 页 / 共 5 页
字号:
					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))						yyerror("ERROR: quoted string parse buffer exceeded");					memcpy(literal+llen, yytext, yyleng+1);					llen += yyleng;				}	YY_BREAKcase 20:YY_RULE_SETUP#line 263 "pgc.l"{				}	YY_BREAKcase 21:YY_RULE_SETUP#line 267 "pgc.l"{					BEGIN(xd);					llen = 0;					*literal = '\0';				}	YY_BREAKcase 22:YY_RULE_SETUP#line 272 "pgc.l"{					BEGIN(SQL);					yylval.str = mm_strdup(literal);					return CSTRING;				}	YY_BREAKcase 23:YY_RULE_SETUP#line 277 "pgc.l"{					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))						yyerror("ERROR: quoted string parse buffer exceeded");					memcpy(literal+llen, yytext, yyleng+1);					llen += yyleng;				}	YY_BREAKcase 24:YY_RULE_SETUP#line 283 "pgc.l"{					BEGIN(xdc);					llen = 0;					*literal = '\0';				}	YY_BREAKcase 25:YY_RULE_SETUP#line 288 "pgc.l"{					BEGIN(C);					yylval.str = mm_strdup(literal);					return CSTRING;				}	YY_BREAKcase 26:YY_RULE_SETUP#line 293 "pgc.l"{					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))						yyerror("ERROR: quoted string parse buffer exceeded");					memcpy(literal+llen, yytext, yyleng+1);					llen += yyleng;				}	YY_BREAKcase 27:YY_RULE_SETUP#line 300 "pgc.l"{ /* ignore */ }	YY_BREAKcase 28:YY_RULE_SETUP#line 301 "pgc.l"{					BEGIN(SQL);					return yytext[0];				}	YY_BREAKcase 29:YY_RULE_SETUP#line 307 "pgc.l"{ 	return TYPECAST; }	YY_BREAKcase 30:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp = yy_bp + 1;YY_DO_BEFORE_ACTION; /* set up yytext again */YY_RULE_SETUP#line 308 "pgc.l"{					BEGIN(xm);					return yytext[0];				}	YY_BREAKcase 31:YY_RULE_SETUP#line 312 "pgc.l"{ /* 				   * We may find a ';' inside a structure				   * definition in a TYPE or VAR statement.				   * This is not an EOL marker.				   */				  if (yytext[0] == ';' && struct_level == 0)					 BEGIN C;				  return yytext[0];				}	YY_BREAKcase 32:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp -= 2;YY_DO_BEFORE_ACTION; /* set up yytext again */YY_RULE_SETUP#line 321 "pgc.l"{					yylval.str = mm_strdup((char*)yytext);					return Op;				}	YY_BREAKcase 33:YY_RULE_SETUP#line 325 "pgc.l"{					if (strcmp((char*)yytext,"!=") == 0)						yylval.str = mm_strdup("<>"); /* compatability */					else						yylval.str = mm_strdup((char*)yytext);					return Op;				}	YY_BREAKcase 34:YY_RULE_SETUP#line 332 "pgc.l"{					yylval.ival = atoi((char*)&yytext[1]);					return PARAM;				}	YY_BREAKcase 35:YY_RULE_SETUP#line 336 "pgc.l"{					int i;					ScanKeyword		*keyword;					char lower_text[NAMEDATALEN];					BEGIN(xm);					/* this should leave the last byte set to '\0' */					strncpy(lower_text, yytext, NAMEDATALEN-1);					for(i = 0; lower_text[i]; i++)						if (isascii((unsigned char)lower_text[i]) && isupper(lower_text[i]))							lower_text[i] = tolower(lower_text[i]);					keyword = ScanKeywordLookup((char*)lower_text);					if (keyword != NULL) {						return keyword->value;					}					else					{						keyword = ScanECPGKeywordLookup((char*)lower_text);						if (keyword != NULL) {							return keyword->value;						}						else						{							struct _defines *ptr;							for (ptr = defines; ptr; ptr = ptr->next)							{								if (strcmp(yytext, ptr->old) == 0)								{									struct _yy_buffer *yb;									yb = mm_alloc(sizeof(struct _yy_buffer));						                        yb->buffer =  YY_CURRENT_BUFFER;						                        yb->lineno = yylineno;						                        yb->filename = mm_strdup(input_filename);						                        yb->next = yy_buffer;						                        yy_buffer = yb; 									yy_scan_string(ptr->new);									break;								}							}							if (ptr == NULL) 							{								yylval.str = mm_strdup((char*)yytext);								return IDENT;							}						}					}				}	YY_BREAKcase 36:YY_RULE_SETUP#line 389 "pgc.l"{					char* endptr;					BEGIN(xm);					errno = 0;					yylval.ival = strtol((char *)yytext,&endptr,10);					if (*endptr != '\0' || errno == ERANGE)					{						errno = 0;#if 0						yylval.dval = strtod(((char *)yytext),&endptr);						if (*endptr != '\0' || errno == ERANGE)							yyerror("ERROR: Bad integer input");						yyerror("WARNING: Integer input is out of range; promoted to float");						return FCONST;#endif						yylval.str = mm_strdup((char*)yytext);                                                return SCONST;					}					return ICONST;				}	YY_BREAKcase 37:YY_RULE_SETUP#line 410 "pgc.l"{                                        char* endptr;                                        BEGIN(xm);                                        if (strlen((char *)yytext) <= 17)                                        {                                                errno = 0;						yylval.dval = strtod(((char *)yytext),&endptr);						if (*endptr != '\0' || errno == ERANGE)							yyerror("ERROR: Bad float8 input");						return FCONST;                                        }                                        yylval.str = mm_strdup((char*)yytext);                                        return SCONST;                                }	YY_BREAKcase 38:YY_RULE_SETUP#line 426 "pgc.l"{					char* endptr;					BEGIN(xm);					errno = 0;					yylval.dval = strtod(((char *)yytext),&endptr);					if (*endptr != '\0' || errno == ERANGE)						yyerror("ERROR: Bad float8 input");					return FCONST;				}	YY_BREAKcase 39:YY_RULE_SETUP#line 436 "pgc.l"{					char* endptr;					errno = 0;					yylval.ival = strtol((char *)yytext,&endptr,10);					if (*endptr != '\0' || errno == ERANGE)					{						errno = 0;#if 0						yylval.dval = strtod(((char *)yytext),&endptr);						if (*endptr != '\0' || errno == ERANGE)							yyerror("ERROR: Bad integer input");						yyerror("WARNING: Integer input is out of range; promoted to float");						return FCONST;#endif						yylval.str = mm_strdup((char*)yytext);                                                return SCONST;					}					return ICONST;				}	YY_BREAKcase 40:YY_RULE_SETUP#line 456 "pgc.l"{                                        char* endptr;                                        if (strlen((char *)yytext) <= 17)                                        {                                                errno = 0;                                                yylval.dval = strtod((char *)yytext,&endptr);						if (*endptr != '\0' || errno == ERANGE)							yyerror("ERROR: Bad float8 input");						return FCONST;                                        }                                        yylval.str = mm_strdup((char*)yytext);                                        return SCONST;                                }	YY_BREAKcase 41:YY_RULE_SETUP#line 470 "pgc.l"{					char* endptr;					errno = 0;					yylval.dval = strtod((char *)yytext,&endptr);					if (*endptr != '\0' || errno == ERANGE)						yyerror("ERROR: Bad float input");					return FCONST;				}	YY_BREAKcase 42:YY_RULE_SETUP#line 479 "pgc.l"{					yylval.str = mm_strdup((char*)yytext+1);					return(CVARIABLE);			}	YY_BREAKcase 43:YY_RULE_SETUP#line 483 "pgc.l"{					int i;					ScanKeyword		*keyword;					char lower_text[NAMEDATALEN];					/* this should leave the last byte set to '\0' */					strncpy(lower_text, yytext, NAMEDATALEN-1);					for(i = 0; lower_text[i]; i++)						if (isascii((unsigned char)lower_text[i]) && isupper(lower_text[i]))							lower_text[i] = tolower(lower_text[i]);					keyword = ScanKeywordLookup((char*)lower_text);					if (keyword != NULL) {						return keyword->value;					}					else					{						keyword = ScanECPGKeywordLookup((char*)lower_text);						if (keyword != NULL) {							return keyword->value;						}						else						{							struct _defines *ptr;							for (ptr = defines; ptr; ptr = ptr->next)							{								if (strcmp(yytext, ptr->old) == 0)								{									struct _yy_buffer *yb;									yb = mm_alloc(sizeof(struct _yy_buffer));						                        yb->buffer =  YY_CURRENT_BUFFER;						                        yb->lineno = yylineno;						                        yb->filename = mm_strdup(input_filename);						                        yb->next = yy_buffer;						                        yy_buffer = yb; 									yy_scan_string(ptr->new);									break;								}							}							if (ptr == NULL) 							{								yylval.str = mm_strdup((char*)yytext);								return IDENT;							}						}					}				}	YY_BREAKcase 44:YY_RULE_SETUP#line 535 "pgc.l"{ /* ignore */ }	YY_BREAKcase 45:YY_RULE_SETUP#line 536 "pgc.l"{ return yytext[0]; }	YY_BREAKcase 46:YY_RULE_SETUP#line 537 "pgc.l"{ BEGIN SQL; return SQL_START; }	YY_BREAKcase 47:YY_RULE_SETUP#line 538 "pgc.l"{ /* ignore */ } 	YY_BREAKcase 48:YY_RULE_SETUP#line 539 "pgc.l"{					yylval.str = mm_strdup((char*)yytext);					return(CPP_LINE);				}	YY_BREAKcase 49:YY_RULE_SETUP#line 543 "pgc.l"{					ScanKeyword		*keyword;					keyword = ScanCKeywordLookup((char*)yytext);					if (keyword != NULL) {						return keyword->value;					}					else					{						struct _defines *ptr;						for (ptr = defines; ptr; ptr = ptr->next)						{							if (strcmp(yytext, ptr->old) == 0)							{								struct _yy_buffer *yb;								yb = mm_alloc(sizeof(struct _yy_buffer));					                        yb->buffer =  YY_CURRENT_BUFFER;					                        yb->lineno = yylineno;					                        yb->filename = mm_strdup(input_filename);					                        yb->next = yy_buffer;					                        yy_buffer = yb;								yy_scan_string(ptr->new);

⌨️ 快捷键说明

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