@@ -15,25 +15,35 @@ letter[A-Za-z_]
1515digit[0-9]
1616length{digit}+
1717symbol{letter}({letter}|{digit})*
18+ label ({letter}|{digit})*
1819string'[^']*'
1920
20- exec[eE][xX][eE][cC]
21- execute[eE][xX][eE][cC][uU][tT][eE]
22- sql[sS][qQ][lL]
23- varchar[vV][aA][rR][cC][hH][aA][rR]
24- varchar2[vV][aA][rR][cC][hH][aA][rR]2
25- into[iI][nN][tT][oO]
2621begin[bB][eE][gG][iI][nN]
27- end[eE][nN][dD]
22+ break [bB][rR][eE][aA][kK]
23+ commit [cC][oO][mM][mM][iI][tT]
24+ connect [cC][oO][nN][nN][eE][cC][tT]
25+ continue [cC][oO][nN][tT][iI][nN][uU][eE]
2826declare [dD][eE][cC][lL][aA][rR][eE]
29- section[sS][eE][cC][tT][iI][oO][nN]
27+ do [dD][oO]
28+ end[eE][nN][dD]
29+ exec[eE][xX][eE][cC]
30+ execute[eE][xX][eE][cC][uU][tT][eE]
31+ found[fF][oO][uU][nN][dD]
32+ goto [gG][oO][tT][oO]
33+ immediate [iI][mM][mM][eE][dD][iI][aA][tT][eE]
3034include [iI][nN][cC][lL][uU][dD][eE]
31- connect [cC][oO][nN][nN][eE][cC][tT]
35+ into[iI][nN][tT][oO]
36+ not[nN][oO][tT]
3237open[oO][pP][eE][nN]
33- commit [cC][oO][mM][mM][iI][tT]
34- immediate [iI][mM][mM][eE][dD][iI][aA][tT][eE]
3538release [rR][eE][lL][eE][aA][sS][eE]
3639rollback [rR][oO][lL][lL][bB][aA][cC][kK]
40+ section[sS][eE][cC][tT][iI][oO][nN]
41+ sql[sS][qQ][lL]
42+ sqlerror [sS][qQ][lL][eE][rR][rR][oO][rR]
43+ sqlprint [sS][qQ][lL][pP][rR][iI][nN][tT]
44+ varchar[vV][aA][rR][cC][hH][aA][rR]
45+ varchar2[vV][aA][rR][cC][hH][aA][rR]2
46+ whenever [wW][hH][eE][nN][eE][vV][eE][rR]
3747work [wW][oO][rR][kK]
3848%%
3949<C>{exec}{ws}{sql}{ BEGIN SQL;dbg (SQL_START);return SQL_START; }
@@ -51,8 +61,15 @@ work [wW][oO][rR][kK]
5161<SQL>{release}{dbg (SQL_RELEASE);return SQL_RELEASE; }
5262<SQL>{work}{dbg (SQL_WORK);return SQL_WORK; }
5363<SQL>{rollback}{dbg (SQL_ROLLBACK);return SQL_ROLLBACK; }
54-
64+ <SQL>{whenever}{dbg (SQL_WHENEVER);return SQL_WHENEVER; }
65+ <SQL>{sqlerror}{dbg (SQL_SQLERROR);return SQL_SQLERROR; }
66+ <SQL>{sqlprint}{dbg (SQL_SQLPRINT);return SQL_SQLPRINT; }
67+ <SQL>{not }{ws}{found}{dbg (SQL_NOT_FOUND);return SQL_NOT_FOUND; }
68+ <SQL>{break }{dbg (SQL_BREAK);return SQL_BREAK; }
69+ <SQL>{continue }{dbg (SQL_CONTINUE);return SQL_CONTINUE; }
5570<SQL>{into}{dbg (SQL_INTO);return SQL_INTO; }
71+ <SQL>{goto }{dbg (SQL_GOTO);return SQL_GOTO; }
72+ <SQL>{do }{dbg (SQL_DO);return SQL_DO; }
5673
5774{length}{dbg (S_LENGTH);return S_LENGTH; }
5875
@@ -67,6 +84,7 @@ double{ dbg(S_DOUBLE); return S_DOUBLE; }
6784bool {dbg (S_BOOL);return S_BOOL; }
6885
6986static {dbg (S_STATIC);return S_STATIC; }
87+ signed {dbg (S_SIGNED);return S_SIGNED; }
7088extern {dbg (S_EXTERN);return S_EXTERN; }
7189auto {dbg (S_AUTO);return S_AUTO; }
7290const {dbg (S_CONST);return S_CONST; }
@@ -77,6 +95,7 @@ struct{ dbg(S_STRUCT); return S_STRUCT; }
7795{string}{dbg (SQL_STRING);return SQL_STRING; }
7896<SQL>{ws};
7997{symbol}{dbg (S_SYMBOL);return S_SYMBOL; }
98+ {label}{dbg (S_LABEL);return S_LABEL; }
8099
81100<SQL>" !<" {dbg (S_SYMBOL);return S_SYMBOL; }
82101<SQL>" !>" {dbg (S_SYMBOL);return S_SYMBOL; }
@@ -114,8 +133,10 @@ struct{ dbg(S_STRUCT); return S_STRUCT; }
114133" ;" {dbg (;);return ' ;' ; }
115134" =" {dbg (=);return ' =' ; }
116135" ," {dbg (komma);return ' ,' ; }
136+ \({dbg (braceopen);return ' (' ; }
137+ \){dbg (braceclose);return ' )' ; }
117138\{{dbg (blockstart);return ' {' ; }
118- \} { dbg(blockend); return' }' ; }
139+ \}{dbg (blockend);return ' }' ; }
119140\*{dbg (*);return (' *' ); }
120141
121142<SQL>" :" {dbg (:);return ' :' ; }