Add ShiftExpr to JavaScript parser
parent
4394cb08f6
commit
7404c5dc01
|
@ -51,11 +51,15 @@ EqExpr = EqExpr:x "==" RelExpr:y => [[ x y "==" ast-binop
|
||||||
| EqExpr:x "===" RelExpr:y => [[ x y "===" ast-binop boa ]]
|
| EqExpr:x "===" RelExpr:y => [[ x y "===" ast-binop boa ]]
|
||||||
| EqExpr:x "!==" RelExpr:y => [[ x y "!==" ast-binop boa ]]
|
| EqExpr:x "!==" RelExpr:y => [[ x y "!==" ast-binop boa ]]
|
||||||
| RelExpr
|
| RelExpr
|
||||||
RelExpr = RelExpr:x ">" AddExpr:y => [[ x y ">" ast-binop boa ]]
|
RelExpr = RelExpr:x ">" ShiftExpr:y => [[ x y ">" ast-binop boa ]]
|
||||||
| RelExpr:x ">=" AddExpr:y => [[ x y ">=" ast-binop boa ]]
|
| RelExpr:x ">=" ShiftExpr:y => [[ x y ">=" ast-binop boa ]]
|
||||||
| RelExpr:x "<" AddExpr:y => [[ x y "<" ast-binop boa ]]
|
| RelExpr:x "<" ShiftExpr:y => [[ x y "<" ast-binop boa ]]
|
||||||
| RelExpr:x "<=" AddExpr:y => [[ x y "<=" ast-binop boa ]]
|
| RelExpr:x "<=" ShiftExpr:y => [[ x y "<=" ast-binop boa ]]
|
||||||
| RelExpr:x "instanceof" AddExpr:y => [[ x y "instanceof" ast-binop boa ]]
|
| RelExpr:x "instanceof" ShiftExpr:y => [[ x y "instanceof" ast-binop boa ]]
|
||||||
|
| ShiftExpr
|
||||||
|
ShiftExpr = ShiftExpr:x "<<" AddExpr:y => [[ x y "<<" ast-binop boa ]]
|
||||||
|
| ShiftExpr:x ">>>" AddExpr:y => [[ x y ">>>" ast-binop boa ]]
|
||||||
|
| ShiftExpr:x ">>" AddExpr:y => [[ x y ">>" ast-binop boa ]]
|
||||||
| AddExpr
|
| AddExpr
|
||||||
AddExpr = AddExpr:x "+" MulExpr:y => [[ x y "+" ast-binop boa ]]
|
AddExpr = AddExpr:x "+" MulExpr:y => [[ x y "+" ast-binop boa ]]
|
||||||
| AddExpr:x "-" MulExpr:y => [[ x y "-" ast-binop boa ]]
|
| AddExpr:x "-" MulExpr:y => [[ x y "-" ast-binop boa ]]
|
||||||
|
|
|
@ -69,9 +69,9 @@ RegExpBody = RegExpFirstChar RegExpChars => [[ first2 swap prefix >strin
|
||||||
RegExp = "/" RegExpBody:b "/" RegExpFlags:fl => [[ b fl ast-regexp boa ]]
|
RegExp = "/" RegExpBody:b "/" RegExpFlags:fl => [[ b fl ast-regexp boa ]]
|
||||||
Special = "(" | ")" | "{" | "}" | "[" | "]" | "," | ";"
|
Special = "(" | ")" | "{" | "}" | "[" | "]" | "," | ";"
|
||||||
| "?" | ":" | "!==" | "!=" | "===" | "==" | "=" | ">="
|
| "?" | ":" | "!==" | "!=" | "===" | "==" | "=" | ">="
|
||||||
| ">" | "<=" | "<" | "++" | "+=" | "+" | "--" | "-="
|
| ">>>" | ">>" | ">" | "<=" | "<<" | "<" | "++" | "+="
|
||||||
| "-" | "*=" | "*" | "/=" | "/" | "%=" | "%" | "&&="
|
| "+" | "--" | "-=" | "-" | "*=" | "*" | "/=" | "/"
|
||||||
| "&&" | "||=" | "||" | "." | "!"
|
| "%=" | "%" | "&&=" | "&&" | "||=" | "||" | "." | "!"
|
||||||
Tok = Spaces (Name | Keyword | Number | Str | RegExp | Special )
|
Tok = Spaces (Name | Keyword | Number | Str | RegExp | Special )
|
||||||
Toks = Tok* Spaces
|
Toks = Tok* Spaces
|
||||||
;EBNF
|
;EBNF
|
||||||
|
|
Loading…
Reference in New Issue