Fix bug in javascript automatic semicolon insertion rule
parent
d58a085598
commit
d5e5e47944
|
@ -35,3 +35,14 @@ function foldl(f, initial, seq) {
|
||||||
}
|
}
|
||||||
"> tokenizer ast>> javascript remaining>> length zero?
|
"> tokenizer ast>> javascript remaining>> length zero?
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
{ t } [
|
||||||
|
<"
|
||||||
|
ParseState.prototype.from = function(index) {
|
||||||
|
var r = new ParseState(this.input, this.index + index);
|
||||||
|
r.cache = this.cache;
|
||||||
|
r.length = this.length - index;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
"> tokenizer ast>> javascript remaining>> length zero?
|
||||||
|
] unit-test
|
||||||
|
|
|
@ -7,6 +7,7 @@ IN: peg.javascript.parser
|
||||||
#! http://jarrett.cs.ucla.edu/ometa-js/#JavaScript_Compiler
|
#! http://jarrett.cs.ucla.edu/ometa-js/#JavaScript_Compiler
|
||||||
|
|
||||||
EBNF: javascript
|
EBNF: javascript
|
||||||
|
End = !(.)
|
||||||
Space = " " | "\t" | "\n"
|
Space = " " | "\t" | "\n"
|
||||||
Spaces = Space* => [[ ignore ]]
|
Spaces = Space* => [[ ignore ]]
|
||||||
Name = . ?[ ast-name? ]? => [[ value>> ]]
|
Name = . ?[ ast-name? ]? => [[ value>> ]]
|
||||||
|
@ -78,7 +79,7 @@ JsonPropName = Name | Number | String
|
||||||
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 ]]
|
||||||
Sc = SpacesNoNl ("\n" | &("}"))| ";"
|
Sc = SpacesNoNl ("\n" | &("}") | End)| ";"
|
||||||
Binding = Name:n "=" Expr:v => [[ n v ast-var boa ]]
|
Binding = Name:n "=" Expr:v => [[ n v ast-var boa ]]
|
||||||
| Name:n => [[ n "undefined" ast-get boa ast-var boa ]]
|
| Name:n => [[ n "undefined" ast-get boa ast-var boa ]]
|
||||||
Block = "{" SrcElems:ss "}" => [[ ss ]]
|
Block = "{" SrcElems:ss "}" => [[ ss ]]
|
||||||
|
|
Loading…
Reference in New Issue