@@ -15,25 +15,35 @@ letter [A-Za-z_]
15
15
digit [0-9]
16
16
length {digit}+
17
17
symbol {letter}({letter}|{digit})*
18
+ label ({letter}|{digit})*
18
19
string '[^']*'
19
20
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]
26
21
begin [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]
28
26
declare [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]
30
34
include [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]
32
37
open [oO][pP][eE][nN]
33
- commit [cC][oO][mM][mM][iI][tT]
34
- immediate [iI][mM][mM][eE][dD][iI][aA][tT][eE]
35
38
release [rR][eE][lL][eE][aA][sS][eE]
36
39
rollback [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]
37
47
work [wW][oO][rR][kK]
38
48
%%
39
49
<C>{exec}{ws}{sql} { BEGIN SQL; dbg (SQL_START); return SQL_START; }
@@ -51,8 +61,15 @@ work [wW][oO][rR][kK]
51
61
<SQL>{release} { dbg (SQL_RELEASE); return SQL_RELEASE; }
52
62
<SQL>{work} { dbg (SQL_WORK); return SQL_WORK; }
53
63
<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; }
55
70
<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; }
56
73
57
74
{length} { dbg (S_LENGTH); return S_LENGTH; }
58
75
@@ -67,6 +84,7 @@ double { dbg(S_DOUBLE); return S_DOUBLE; }
67
84
bool { dbg (S_BOOL); return S_BOOL; }
68
85
69
86
static { dbg (S_STATIC); return S_STATIC; }
87
+ signed { dbg (S_SIGNED); return S_SIGNED; }
70
88
extern { dbg (S_EXTERN); return S_EXTERN; }
71
89
auto { dbg (S_AUTO); return S_AUTO; }
72
90
const { dbg (S_CONST); return S_CONST; }
@@ -77,6 +95,7 @@ struct { dbg(S_STRUCT); return S_STRUCT; }
77
95
{string} { dbg (SQL_STRING); return SQL_STRING; }
78
96
<SQL>{ws} ;
79
97
{symbol} { dbg (S_SYMBOL); return S_SYMBOL; }
98
+ {label} { dbg (S_LABEL); return S_LABEL; }
80
99
81
100
<SQL>" !<" { dbg (S_SYMBOL); return S_SYMBOL; }
82
101
<SQL>" !>" { dbg (S_SYMBOL); return S_SYMBOL; }
@@ -114,8 +133,10 @@ struct { dbg(S_STRUCT); return S_STRUCT; }
114
133
" ;" { dbg (;); return ' ;' ; }
115
134
" =" { dbg (=); return ' =' ; }
116
135
" ," { dbg (komma); return ' ,' ; }
136
+ \( { dbg (braceopen); return ' (' ; }
137
+ \) { dbg (braceclose); return ' )' ; }
117
138
\{ { dbg (blockstart); return ' {' ; }
118
- \} { dbg(blockend); return' }' ; }
139
+ \} { dbg (blockend); return ' }' ; }
119
140
\* { dbg (*); return (' *' ); }
120
141
121
142
<SQL>" :" { dbg (:); return ' :' ; }
0 commit comments