64 {
65
67 {
70 }
void * pg_malloc(size_t size)
71%}
72
73
74notices { return NOTICES; }
75permutation { return PERMUTATION; }
76session { return SESSION; }
77setup { return SETUP; }
78step { return STEP; }
79teardown { return TEARDOWN; }
80
81
82[\n] { yyline++; }
83{comment} { /* ignore */ }
84{space} { /* ignore */ }
85
86
87{identifier} {
89 return(identifier);
90 }
char * pg_strdup(const char *in)
91
92
93\" {
95 BEGIN(qident);
96 }
97<qident>\"\" { addlitchar(yytext[0]); }
98<qident>\" {
101 BEGIN(INITIAL);
102 return(identifier);
103 }
104<qident>. { addlitchar(yytext[0]); }
105<qident>\n { spec_yyerror("unexpected newline in quoted identifier"); }
106<qident><<EOF>> { spec_yyerror("unterminated quoted identifier"); }
107
108
109
110"{"{space}* {
111
113 BEGIN(sql);
114 }
115<sql>{space}*"}" {
118 BEGIN(INITIAL);
119 return(sqlblock);
120 }
121<sql>. {
123 }
static void addlitchar(char c)
124<sql>\n {
127 }
128<sql><<EOF>> {
130 }
void spec_yyerror(const char *message)
131
132
133{digit}+ {
134 spec_yylval.integer = atoi(yytext);
135 return INTEGER;
136 }
137
138{self} { return yytext[0]; }
139
140
141. {
142 fprintf(stderr,
"syntax error at line %d: unexpected character \"%s\"\n",
yyline, yytext);
144 }
145%%