# Main keywords.
@begin mainTable 47

# Types.
null		NULLTOKEN
true		TRUETOKEN
false		FALSETOKEN

# Keywords.
await       AWAIT
break		BREAK
case		CASE
catch		CATCH
class		CLASSTOKEN
const		CONSTTOKEN
default		DEFAULT
extends	EXTENDS
finally		FINALLY
for		FOR
instanceof	INSTANCEOF
new		NEW
var		VAR
let		LET
continue	CONTINUE
function	FUNCTION
return		RETURN
void		VOIDTOKEN
delete		DELETETOKEN
if		IF
this		THISTOKEN
do		DO
while		WHILE
else		ELSE
in		INTOKEN
super		SUPER
switch		SWITCH
throw		THROW
try		TRY
typeof		TYPEOF
with		WITH
debugger	DEBUGGER
yield	YIELD

# Reserved for future use.
enum            RESERVED
export          EXPORT_
import          IMPORT

# Reserved for future use in strict code.
implements      RESERVED_IF_STRICT
interface       RESERVED_IF_STRICT
package         RESERVED_IF_STRICT
private         RESERVED_IF_STRICT
protected       RESERVED_IF_STRICT
public          RESERVED_IF_STRICT
static          RESERVED_IF_STRICT

@end
