CatchAll $P
Character (('\''$P'\'') | ('\'''\\'['t'|'n'|'r'|'f']'\'') | ('\''+('0'..'7')'\''))
Comment ("--" -> "\n")
Integer $Z
Operator ('-' | '+' | '*' | '/' | '<' | '>' | '!' | '~' | '%' | '^' | '&' | '=' | ':' | '.' | ';' | ',' | '@' | '`' | '?' | '$' | '#')
Real $R
Space ' '
String ("\"" -> "\"")
Tab '\t'
Newline '\n'
Text ~('a'..'z') *(~('a'..'z') | '_' | ('0'..'9'))
-- Keywords
across
agent
alias
all
and
as
assign
attached
attribute
check
class
convert
create
creation
current
debug
deferred
detachable
do
else
elseif
end
ensure
expanded
export
external
false
feature
from
frozen
if
implies
indexing
infix
inherit
inspect
invariant
is
like
local
loop
not
note
obsolete
old
once
only
or
partial
precursor
prefix
redefine
reference
rename
require
rescue
result
retry
select
separate
some
strip
then
true
tuple
undefine
unique
until
variant
void
when
xor