use internal_error() where appropriate
allow underscore in identifiers
allow assignment and comparison for enums
output opcode value on unexpected opcode
make case statements work with enum values
add dhrystone benchmark sample