Add regular expressions to JavaScript parser
parent
e8f9904549
commit
8fa0c80d4e
|
@ -28,6 +28,7 @@ Spaces = Space* => [[ ignore ]]
|
||||||
Name = . ?[ ast-name? ]? => [[ value>> ]]
|
Name = . ?[ ast-name? ]? => [[ value>> ]]
|
||||||
Number = . ?[ ast-number? ]? => [[ value>> ]]
|
Number = . ?[ ast-number? ]? => [[ value>> ]]
|
||||||
String = . ?[ ast-string? ]? => [[ value>> ]]
|
String = . ?[ ast-string? ]? => [[ value>> ]]
|
||||||
|
RegExp = . ?[ ast-regexp? ]? => [[ value>> ]]
|
||||||
SpacesNoNl = (!(nl) Space)* => [[ ignore ]]
|
SpacesNoNl = (!(nl) Space)* => [[ ignore ]]
|
||||||
|
|
||||||
Expr = OrExpr:e "?" Expr:t ":" Expr:f => [[ e t f ast-cond-expr boa ]]
|
Expr = OrExpr:e "?" Expr:t ":" Expr:f => [[ e t f ast-cond-expr boa ]]
|
||||||
|
@ -83,6 +84,7 @@ PrimExprHd = "(" Expr:e ")" => [[ e ]]
|
||||||
| Name => [[ ast-get boa ]]
|
| Name => [[ ast-get boa ]]
|
||||||
| Number => [[ ast-number boa ]]
|
| Number => [[ ast-number boa ]]
|
||||||
| String => [[ ast-string boa ]]
|
| String => [[ ast-string boa ]]
|
||||||
|
| RegExp => [[ ast-regexp boa ]]
|
||||||
| "function" FuncRest:fr => [[ fr ]]
|
| "function" FuncRest:fr => [[ fr ]]
|
||||||
| "new" Name:n "(" Args:as ")" => [[ n as ast-new boa ]]
|
| "new" Name:n "(" Args:as ")" => [[ n as ast-new boa ]]
|
||||||
| "[" Args:es "]" => [[ es ast-array boa ]]
|
| "[" Args:es "]" => [[ es ast-array boa ]]
|
||||||
|
@ -90,7 +92,7 @@ PrimExprHd = "(" Expr:e ")" => [[ e ]]
|
||||||
JsonBindings = (JsonBinding ("," JsonBinding => [[ second ]])* => [[ first2 swap prefix ]])?
|
JsonBindings = (JsonBinding ("," JsonBinding => [[ second ]])* => [[ first2 swap prefix ]])?
|
||||||
Json = "{" JsonBindings:bs "}" => [[ bs ast-json boa ]]
|
Json = "{" JsonBindings:bs "}" => [[ bs ast-json boa ]]
|
||||||
JsonBinding = JsonPropName:n ":" Expr:v => [[ n v ast-binding boa ]]
|
JsonBinding = JsonPropName:n ":" Expr:v => [[ n v ast-binding boa ]]
|
||||||
JsonPropName = Name | Number | String
|
JsonPropName = Name | Number | String | RegExp
|
||||||
Formal = Spaces Name
|
Formal = Spaces Name
|
||||||
Formals = (Formal ("," Formal => [[ second ]])* => [[ first2 swap prefix ]])?
|
Formals = (Formal ("," Formal => [[ second ]])* => [[ first2 swap prefix ]])?
|
||||||
FuncRest = "(" Formals:fs ")" "{" SrcElems:body "}" => [[ fs body ast-func boa ]]
|
FuncRest = "(" Formals:fs ")" "{" SrcElems:body "}" => [[ fs body ast-func boa ]]
|
||||||
|
|
Loading…
Reference in New Issue