JAVA语言词法(lexical)--正则表达式描述(使用的符号参见《编译原理及实践》Kenneth C.Louden 机械工业出版社)
WHITESPACE = SPACE | TAB | FORMFEED | CR(回车) | LF(换行) | CRLF(CR和LF一起出现算一个行终结符)
COMMENT = b*(a*~(a|b)b*)*a* b='/' a='*' (实际编码时直接按照其DFA)
IDENTIFIER = [a-zA-Z&_][a-zA-Z&_0-9]*
KEYWORD = abstract default if private this
boolean do implements protected throw
break double import public throws
byte else instanceof return transient
case extends int short try
catch final interface static void
char finally long strictfp volatile
class float native super while
const for new switch
continue goto package synchronized
INTEGERLITERAL = (0|([1-9][0-9]*)|(0[x|X][0-9a-fA-F][0-9a-fA-F]*)|(0[0-7][0-7]*))[l|L|NOTHING]
FLOATPOINTLITERAL = ([0-9][0-9]*.[0-9]*|.[0-9][0-9]*)[NOTHING|(E|e)(+|-|NOTHING)[0-9][0-9]*][f|F|d|D|NOTHING]
BOOLEANLITERAL = true | false
NULLLITERAL = null
CHARLITERAL = '[~'/]|/b|/t|/n|/f|/r|/"|/'|//|/[0-3|NOTHING][0-7|NOTHING][0-7]|/u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]'
STRINGLITERAL = "([~"/]|/b|/t|/n|/f|/r|/"|/'|//|/[0-3|NOTHING][0-7|NOTHING][0-7]|/u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-
F])*"
SEPARATOR = ( | ) | [ | ] | { | } | , | ; | .
OPERATOR 有(37个) = < > ! + - * / % & | ~ ^ ? : ++ -- && || << >> >>> == <= >= != += -= *= /= %= &= |= ^= <<= >>= >>>=
WHITESPACE = SPACE | TAB | FORMFEED | CR(回车) | LF(换行) | CRLF(CR和LF一起出现算一个行终结符)
COMMENT = b*(a*~(a|b)b*)*a* b='/' a='*' (实际编码时直接按照其DFA)
IDENTIFIER = [a-zA-Z&_][a-zA-Z&_0-9]*
KEYWORD = abstract default if private this
boolean do implements protected throw
break double import public throws
byte else instanceof return transient
case extends int short try
catch final interface static void
char finally long strictfp volatile
class float native super while
const for new switch
continue goto package synchronized
INTEGERLITERAL = (0|([1-9][0-9]*)|(0[x|X][0-9a-fA-F][0-9a-fA-F]*)|(0[0-7][0-7]*))[l|L|NOTHING]
FLOATPOINTLITERAL = ([0-9][0-9]*.[0-9]*|.[0-9][0-9]*)[NOTHING|(E|e)(+|-|NOTHING)[0-9][0-9]*][f|F|d|D|NOTHING]
BOOLEANLITERAL = true | false
NULLLITERAL = null
CHARLITERAL = '[~'/]|/b|/t|/n|/f|/r|/"|/'|//|/[0-3|NOTHING][0-7|NOTHING][0-7]|/u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]'
STRINGLITERAL = "([~"/]|/b|/t|/n|/f|/r|/"|/'|//|/[0-3|NOTHING][0-7|NOTHING][0-7]|/u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-
F])*"
SEPARATOR = ( | ) | [ | ] | { | } | , | ; | .
OPERATOR 有(37个) = < > ! + - * / % & | ~ ^ ? : ++ -- && || << >> >>> == <= >= != += -= *= /= %= &= |= ^= <<= >>= >>>=