# main keywords
@begin mainTable 41

# types
null		NULLTOKEN
true		TRUETOKEN
false		FALSETOKEN

# keywords
break		BREAK
case		CASE
catch		CATCH
const		CONSTTOKEN
default		DEFAULT
finally		FINALLY
for		FOR
instanceof	INSTANCEOF
new		NEW
var		VAR
continue	CONTINUE
function	FUNCTION
return		RETURN
void		VOIDTOKEN
delete		DELETETOKEN
if		IF
this		THISTOKEN
do		DO
while		WHILE
else		ELSE
in		INTOKEN
switch		SWITCH
throw		THROW
try		TRY
typeof		TYPEOF
with		WITH
debugger	DEBUGGER

# reserved for future use
class           RESERVED
enum            RESERVED
export          RESERVED
extends         RESERVED
import          RESERVED
super           RESERVED

# these words are reserved for future use in the ECMA spec, but not in WinIE
# (see http://bugs.webkit.org/show_bug.cgi?id=6179)
# abstract      RESERVED
# boolean       RESERVED
# byte          RESERVED
# char          RESERVED
# double        RESERVED
# final         RESERVED
# float         RESERVED
# goto          RESERVED
# implements    RESERVED
# int           RESERVED
# interface     RESERVED
# long          RESERVED
# native        RESERVED
# package       RESERVED
# private       RESERVED
# protected     RESERVED
# public        RESERVED
# short         RESERVED
# static        RESERVED
# synchronized  RESERVED
# throws        RESERVED
# transient     RESERVED
# volatile      RESERVED
@end

