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