File tree Expand file tree Collapse file tree 6 files changed +26
-11
lines changed Expand file tree Collapse file tree 6 files changed +26
-11
lines changed Original file line number Diff line number Diff line change @@ -972,6 +972,10 @@ Mon Oct 16 21:33:17 CEST 2000
972972
973973Tue Oct 17 08:09:16 CEST 2000
974974
975- - Simplified parsing ofr connect rule.
975+ - Simplified parsing of connect rule.
976+
977+ Tue Oct 17 17:36:30 CEST 2000
978+
979+ - Fixed some bugs in C language parsing.
976980 - Set ecpg version to 2.8.0.
977981 - Set library version to 3.2.0.
Original file line number Diff line number Diff line change @@ -20,5 +20,7 @@ instead of libpq so we can write backend functions using ecpg.
2020
2121remove space_or_nl and line_end from pgc.l
2222
23+ nested C comments do not work
24+
2325Missing features:
2426 - SQLSTATE
Original file line number Diff line number Diff line change 1212 *
1313 *
1414 * IDENTIFICATION
15- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.64 2000/09/26 11:41:44 meskes Exp $
15+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.65 2000/10/17 15:38:25 meskes Exp $
1616 *
1717 *-------------------------------------------------------------------------
1818 */
@@ -676,6 +676,11 @@ cppline {space}*#(.*\\{line_end})*.*
676676<C >\[ { return (' [' ); }
677677<C >\] { return (' ]' ); }
678678<C >\= { return (' =' ); }
679+ <C >" ->" { return (S_MEMBER); }
680+ <C >" >>" { return (S_RSHIFT); }
681+ <C >" <<" { return (S_LSHIFT); }
682+ <C >" ||" { return (S_OR); }
683+ <C >" &&" { return (S_AND); }
679684<C >{other } { return S_ANYTHING; }
680685
681686<C >{exec_sql }{define }{space_or_nl }* { BEGIN (def_ident); }
Original file line number Diff line number Diff line change @@ -174,8 +174,8 @@ make_name(void)
174174%token SQL_VALUE SQL_VAR SQL_WHENEVER
175175
176176/* C token */
177- %token S_ANYTHING S_AUTO S_CONST S_EXTERN
178- %token S_REGISTER S_STATIC S_VOLATILE
177+ %token S_AND S_ANYTHING S_AUTO S_CONST S_EXTERN S_LSHIFT
178+ %token S_MEMBER S_OR S_REGISTER S_RSHIFT S_STATIC S_VOLATILE
179179
180180/* I need this and don't know where it is defined inside the backend */
181181%token TYPECAST
@@ -5298,11 +5298,16 @@ c_anything: IDENT { $$ = $1; }
52985298 | ' -' { $$ = make_str(" -" ); }
52995299 | ' /' { $$ = make_str(" /" ); }
53005300 | ' %' { $$ = make_str(" %" ); }
5301+ | S_AND { $$ = make_str(" &&" ); }
53015302 | S_ANYTHING { $$ = make_name(); }
53025303 | S_AUTO { $$ = make_str(" auto" ); }
53035304 | S_CONST { $$ = make_str(" const" ); }
53045305 | S_EXTERN { $$ = make_str(" extern" ); }
5306+ | S_LSHIFT { $$ = make_str(" <<" ); }
5307+ | S_MEMBER { $$ = make_str(" ->" ); }
5308+ | S_OR { $$ = make_str(" ||" ); }
53055309 | S_REGISTER { $$ = make_str(" register" ); }
5310+ | S_RSHIFT { $$ = make_str(" >>" ); }
53065311 | S_STATIC { $$ = make_str(" static" ); }
53075312 | SQL_BOOL { $$ = make_str(" bool" ); }
53085313 | SQL_ENUM { $$ = make_str(" enum" ); }
Original file line number Diff line number Diff line change 1- all : test1 test2 test3 test4 perftest dyntest dyntest2 test_notice test_code100
1+ all : test1 test2 test3 test4 perftest dyntest dyntest2 test_notice test_code100 test_init
22
33# LDFLAGS=-g -I /usr/local/pgsql/include -L/usr/local/pgsql/lib -lecpg -lpq
44LDFLAGS =-g -I ../include -I /usr/include/postgresql -L /usr/lib -lecpg -lpq
Original file line number Diff line number Diff line change @@ -31,14 +31,13 @@ int g=fb(2);
3131int i=3^1;
3232int j=1?1:2;
3333
34- /*int e=y->member; /* compile error */
35- /*int c=10>>2; /* compile error */
36- /*bool h=2||1; /* compile error */
37- long long iax;
34+ int e=y->member;
35+ int c=10>>2;
36+ bool h=2||1;
37+ long iay /* = 1L */ ;
38+ long long iax /* = 40000000000LL */ ;
3839exec sql end declare section;
3940
40- iax = 40000000000LL;
41-
4241/* not working */
4342int f=fa();
4443
You can’t perform that action at this time.
0 commit comments