@@ -170,6 +170,7 @@ statement
170170 | casestate
171171 | catchstate
172172 | choosestate
173+ | enumstate
173174 | classstate
174175 | clearstate
175176 | {state2(_t, 0)}? closestate // SQL
@@ -191,7 +192,7 @@ statement
191192 | {state2(_t, DATASET)}? createdatasetstate
192193 | {state2(_t, DATASOURCE)}? createdatasourcestate
193194 | {state2(_t, INDEX)}? createindexstate // SQL
194- | {state2(_t, QUERY)}? createquerystate
195+ | {state2(_t, QUERY)}? createquerystate
195196 | {state2(_t, SAXREADER)}? createsaxreaderstate
196197 | {state2(_t, SAXWRITER)}? createsaxwriterstate
197198 | {state2(_t, SERVER)}? createserverstate
@@ -212,7 +213,7 @@ statement
212213 | {state2(_t, INITIATE)}? ddeinitiatestate
213214 | {state2(_t, REQUEST)}? dderequeststate
214215 | {state2(_t, SEND)}? ddesendstate
215- | {state2(_t, TERMINATE)}? ddeterminatestate
216+ | {state2(_t, TERMINATE)}? ddeterminatestate
216217 | declarecursorstate
217218 | {state2(_t, BROWSE)}? definebrowsestate
218219 | {state2(_t, BUFFER)}? definebufferstate
@@ -251,7 +252,7 @@ statement
251252 | {state2(_t, TABLE)}? droptablestate // SQL
252253 | {state2(_t, VIEW)}? dropviewstate // SQL
253254 | dynamicnewstate
254- | emptytemptablestate
255+ | emptytemptablestate
255256 | enablestate
256257 | exportstate
257258 | fetchstate
@@ -261,11 +262,11 @@ statement
261262 | formstate
262263 | functionstate
263264 | getstate
264- | getkeyvaluestate
265+ | getkeyvaluestate
265266 | grantstate
266267 | hidestate
267268 | ifstate
268- | importstate
269+ | importstate
269270 | {state2(_t, CLEAR)}? inputclearstate
270271 | {state2(_t, CLOSE)}? inputclosestate
271272 | {state2(_t, FROM)}? inputfromstate
@@ -276,24 +277,24 @@ statement
276277 | {state2(_t, 0)}? insertstate
277278 | interfacestate
278279 | leavestate
279- | loadstate
280+ | loadstate
280281 | messagestate
281282 | methodstate
282283 | nextstate
283284 | nextpromptstate
284- | onstate
285+ | onstate
285286 | {state2(_t, 0)}? openstate // SQL
286287 | {state2(_t, QUERY)}? openquerystate
287288 | osappendstate
288289 | oscommandstate
289290 | oscopystate
290- | oscreatedirstate
291+ | oscreatedirstate
291292 | osdeletestate
292293 | osrenamestate
293294 | {state2(_t, CLOSE)}? outputclosestate
294295 | {state2(_t, THROUGH)}? outputthroughstate
295296 | {state2(_t, TO)}? outputtostate
296- | pagestate
297+ | pagestate
297298 | pausestate
298299 | procedurestate
299300 | processeventsstate
@@ -310,7 +311,7 @@ statement
310311 | {state2(_t, EXTERNAL)}? releaseexternalstate
311312 | {state2(_t, OBJECT)}? releaseobjectstate
312313 | repeatstate
313- | repositionstate
314+ | repositionstate
314315 | returnstate
315316 | revokestate
316317 | routinelevelstate
@@ -320,11 +321,11 @@ statement
320321 | {state2(_t, SUPER)}? runsuperstate
321322 | savecachestate
322323 | scrollstate
323- | seekstate
324+ | seekstate
324325 | selectstate
325326 | setstate
326327 | showstatsstate
327- | statusstate
328+ | statusstate
328329 | stopstate
329330 | subscribestate
330331 | {state2(_t, COLOR)}? systemdialogcolorstate
@@ -336,11 +337,11 @@ statement
336337 | thisobjectstate
337338 | transactionmodeautomaticstate
338339 | triggerprocedurestate
339- | underlinestate
340+ | underlinestate
340341 | undostate
341342 | unloadstate
342343 | unsubscribestate
343- | upstate
344+ | upstate
344345 | updatestatement
345346 | usestate
346347 | usingstate
@@ -394,7 +395,7 @@ pseudfn
394395 | PROGRESS | FRAMEINDEX | FRAMEDB | FRAMENAME | DATASERVERS
395396 | NUMDBS | NUMALIASES | ISATTRSPACE | PROCSTATUS
396397 | PROCHANDLE | CURSOR | OSERROR | RETURNVALUE | OSDRIVES
397- | PROVERSION | TRANSACTION | MACHINECLASS
398+ | PROVERSION | TRANSACTION | MACHINECLASS
398399 | AAPCONTROL | GETCODEPAGES | COMSELF
399400 ;
400401
@@ -419,7 +420,7 @@ functioncall
419420 | #(GETCODEPAGES (funargs)? )
420421 | #(GUID LEFTPAREN (expression)? RIGHTPAREN )
421422 | #(IF expression THEN expression ELSE expression )
422- | ldbnamefunc
423+ | ldbnamefunc
423424 | lengthfunc // is also a pseudfn.
424425 | #(LINECOUNTER (LEFTPAREN ID RIGHTPAREN)? )
425426 | #(MTIME (funargs)? )
@@ -436,7 +437,7 @@ functioncall
436437 | #(GETCLASS LEFTPAREN TYPE_NAME RIGHTPAREN )
437438 | #(USERID (funargs)? )
438439 | #(USER (funargs)? )
439- | sqlaggregatefunc
440+ | sqlaggregatefunc
440441 | argfunc
441442 | noargfunc
442443 | recordfunc
@@ -608,6 +609,7 @@ noargfunc
608609 | GENERATEPBESALT
609610 | GENERATERANDOMKEY
610611 | GENERATEUUID
612+ | GETCODEPAGES
611613 | GATEWAYS
612614 | GOPENDING
613615 | ISATTRSPACE
@@ -805,11 +807,11 @@ constant
805807 ;
806808
807809systemhandlename
808- : AAMEMORY | ACTIVEWINDOW | AUDITCONTROL | AUDITPOLICY | CLIPBOARD | CODEBASELOCATOR | COLORTABLE | COMPILER
810+ : AAMEMORY | ACTIVEWINDOW | AUDITCONTROL | AUDITPOLICY | CLIPBOARD | CODEBASELOCATOR | COLORTABLE | COMPILER
809811 | COMSELF | CURRENTWINDOW | DEBUGGER | DEFAULTWINDOW
810812 | ERRORSTATUS | FILEINFORMATION | FOCUS | FONTTABLE | LASTEVENT | LOGMANAGER
811813 | MOUSE | PROFILER | RCODEINFORMATION | SECURITYPOLICY | SELF | SESSION
812- | SOURCEPROCEDURE | SUPER | TARGETPROCEDURE | TEXTCURSOR | THISOBJECT | THISPROCEDURE | WEBCONTEXT
814+ | SOURCEPROCEDURE | SUPER | TARGETPROCEDURE | TEXTCURSOR | THISOBJECT | THISPROCEDURE | WEBCONTEXT | ACTIVEFORM
813815 ;
814816
815817
@@ -942,7 +944,7 @@ buffercopystate
942944 ( #(ASSIGN assignment_list ) )?
943945 (NOLOBS)?
944946 (NOERROR_KW)?
945- state_end
947+ state_end
946948 )
947949 ;
948950
@@ -980,18 +982,34 @@ case_expression
980982choosestate
981983 : #( CHOOSE (ROW|FIELD)
982984 ( #(Form_item field (#(HELP constant))? ) )+
983- ( AUTORETURN
984- | #(COLOR anyorvalue)
985+ ( AUTORETURN
986+ | #(COLOR anyorvalue)
985987 | goonphrase
986988 | #(KEYS field )
987- | NOERROR_KW
989+ | NOERROR_KW
988990 | #(PAUSE expression)
989991 )*
990992 (framephrase)?
991993 state_end
992994 )
993995 ;
994996
997+ enumstate
998+ : #( ENUM TYPE_NAME (FLAGS)? block_colon
999+ defenumstate
1000+ #(END (ENUM)? )
1001+ state_end
1002+ )
1003+ ;
1004+
1005+ defenumstate
1006+ : #( DEFINE ENUM (enum_member)+ state_end )
1007+ ;
1008+
1009+ enum_member
1010+ : TYPE_NAME ( EQUAL ( NUMBER | TYPE_NAME (COMMA TYPE_NAME)*))?
1011+ ;
1012+
9951013classstate
9961014 : #( CLASS TYPE_NAME
9971015 ( #(INHERITS TYPE_NAME)
@@ -1068,10 +1086,13 @@ columnformat
10681086 | #(LABELBGCOLOR expression )
10691087 | #(LABELFGCOLOR expression )
10701088 | #(LEXAT field (columnformat)? )
1089+ | #(HEIGHT NUMBER )
1090+ | #(HEIGHTPIXELS NUMBER )
1091+ | #(HEIGHTCHARS NUMBER )
10711092 | #(WIDTH NUMBER )
10721093 | #(WIDTHPIXELS NUMBER )
10731094 | #(WIDTHCHARS NUMBER )
1074- )+
1095+ )+
10751096 )
10761097 ;
10771098
@@ -1133,20 +1154,20 @@ compile_append
11331154connectstate
11341155 : #(CONNECT (NOERROR_KW|DDE|filenameorvalue)* state_end )
11351156 ;
1136-
1157+
11371158constructorstate
11381159 : #( CONSTRUCTOR def_modifiers TYPE_NAME function_params
11391160 block_colon code_block #(END (CONSTRUCTOR|METHOD)? ) state_end
11401161 )
11411162 ;
1142-
1163+
11431164convertphrase
1144- : #( CONVERT
1165+ : #( CONVERT
11451166 ( #(SOURCE (BASE64 | CODEPAGE expression (BASE64)?) ) )?
11461167 ( #(TARGET (BASE64 | CODEPAGE expression (BASE64)?) ) )?
11471168 )
11481169 ;
1149-
1170+
11501171copylobstate
11511172 : #( COPYLOB (FROM)?
11521173 ( FILE expression | (OBJECT)? expression )
@@ -1183,7 +1204,7 @@ createbrowsestate
11831204 ;
11841205
11851206createbufferstate
1186- : #( CREATE BUFFER field FOR TABLE expression
1207+ : #( CREATE BUFFER ( field | widattr) FOR TABLE expression
11871208 ( #(BUFFERNAME expression) )?
11881209 (#(IN_KW WIDGETPOOL expression))?
11891210 (NOERROR_KW)? state_end
@@ -1199,7 +1220,7 @@ createclientprincipalstate
11991220 ;
12001221
12011222createdatabasestate
1202- : #( CREATE DATABASE expression
1223+ : #( CREATE DATABASE expression
12031224 ( #(FROM expression (NEWINSTANCE)? ) )?
12041225 (REPLACE)? (NOERROR_KW)? state_end
12051226 )
@@ -1246,7 +1267,7 @@ createsocketstate
12461267 ;
12471268
12481269createtemptablestate
1249- : #(CREATE TEMPTABLE field (#(IN_KW WIDGETPOOL expression))? (NOERROR_KW)? state_end )
1270+ : #(CREATE TEMPTABLE ( field | widattr) (#(IN_KW WIDGETPOOL expression))? (NOERROR_KW)? state_end )
12501271 ;
12511272
12521273createwidgetstate
0 commit comments