|
April 2002 Draft
JavaScript 2.0
Formal Description
Lexical Semantics
|
Thursday, February 7, 2002
The lexical semantics describe the actions the lexer takes in order to transform an input stream of Unicode characters into a stream of tokens. For convenience, the lexical grammar is repeated here. See also the description of the semantic notation.
This document is also available as a Word 98 rtf file.
The start symbols are:
NextInputElementunit if the
previous input element was a number;
NextInputElementre if the
previous input element was not a number and a / should be interpreted as a regular expression; and
NextInputElementdiv if the
previous input element was not a number and a / should be interpreted as a division or division-assignment
operator.
«TAB» | «VT» | «FF» | «SP» | «u00A0»«u2000» | «u2001» | «u2002» | «u2003» | «u2004» | «u2005» | «u2006» | «u2007»«u2008» | «u2009» | «u200A» | «u200B»«u3000»_}] IdentifierName\}] WhiteSpace InputElementdiv]
= Lex[InputElementdiv];abstract”, “as”, “break”,
“case”, “catch”, “class”,
“const”, “continue”, “debugger”,
“default”, “delete”, “do”,
“else”, “enum”, “export”,
“extends”, “false”, “final”,
“finally”, “for”, “function”,
“goto”, “if”, “implements”,
“import”, “in”, “instanceof”,
“interface”, “is”, “namespace”,
“native”, “new”, “null”,
“package”, “private”, “protected”,
“public”, “return”, “static”,
“super”, “switch”, “synchronized”,
“this”, “throw”, “throws”,
“transient”, “true”, “try”,
“typeof”, “use”, “var”,
“volatile”, “while”, “with”];!! =! = =%% =&& && & =& =()** =++ ++ =,-- -- =.. . .:: :;<< << < =< === == = =>> => >> > => > >> > > =?[]^^ =^ ^^ ^ ={|| =| || | =}~. Fraction. Fraction]
= LexNumber[DecimalIntegerLiteral] + LexNumber[Fraction];|
Waldemar Horwat Last modified Thursday, February 7, 2002 |