fixing allowing empty functions like () ->

This commit is contained in:
Jeremy Ashkenas 2010-02-15 18:03:00 -05:00
parent 3f6eceac77
commit e7291f57ba
4 changed files with 89 additions and 83 deletions

View File

@ -118,13 +118,13 @@
return new OpNode('!!', $2);
}), o("- Expression", (function() {
return new OpNode('-', $2);
})), {
}), {
prec: 'UMINUS'
}, o("+ Expression", (function() {
}), o("+ Expression", (function() {
return new OpNode('+', $2);
})), {
}), {
prec: 'UPLUS'
}, o("NOT Expression", function() {
}), o("NOT Expression", function() {
return new OpNode('not', $2);
}), o("~ Expression", function() {
return new OpNode('~', $2);
@ -230,7 +230,9 @@
})
],
// The parameters to a function definition.
ParamList: [o("Param", function() {
ParamList: [o("", function() {
return [];
}), o("Param", function() {
return [$1];
}), o("ParamList , Param", function() {
return $1.concat([$3]);

File diff suppressed because one or more lines are too long

View File

@ -137,8 +137,8 @@ grammar: {
Operation: [
o "! Expression", -> new OpNode('!', $2)
o "!! Expression", -> new OpNode('!!', $2)
o "- Expression", (-> new OpNode('-', $2)), {prec: 'UMINUS'}
o "+ Expression", (-> new OpNode('+', $2)), {prec: 'UPLUS'}
o("- Expression", (-> new OpNode('-', $2)), {prec: 'UMINUS'})
o("+ Expression", (-> new OpNode('+', $2)), {prec: 'UPLUS'})
o "NOT Expression", -> new OpNode('not', $2)
o "~ Expression", -> new OpNode('~', $2)
o "-- Expression", -> new OpNode('--', $2)
@ -210,6 +210,7 @@ grammar: {
# The parameters to a function definition.
ParamList: [
o "", -> []
o "Param", -> [$1]
o "ParamList , Param", -> $1.concat [$3]
]

View File

@ -11,6 +11,7 @@ puts y.x.name is 'x'
# The empty function should not cause a syntax error.
->
() ->
obj: {