mirror of
https://github.com/jashkenas/coffeescript.git
synced 2026-04-11 03:00:13 -04:00
Fix for Issue #655. Leading empty commas in ArgLists are now disallowed.
This commit is contained in:
@@ -281,7 +281,9 @@
|
|||||||
})
|
})
|
||||||
],
|
],
|
||||||
Arguments: [
|
Arguments: [
|
||||||
o("CALL_START ArgList OptComma CALL_END", function() {
|
o("CALL_START CALL_END", function() {
|
||||||
|
return [];
|
||||||
|
}), o("CALL_START ArgList OptComma CALL_END", function() {
|
||||||
return $2;
|
return $2;
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
@@ -326,19 +328,21 @@
|
|||||||
})
|
})
|
||||||
],
|
],
|
||||||
Array: [
|
Array: [
|
||||||
o("[ ArgList OptComma ]", function() {
|
o("[ ]", function() {
|
||||||
|
return new ArrayNode([]);
|
||||||
|
}), o("[ ArgList OptComma ]", function() {
|
||||||
return new ArrayNode($2);
|
return new ArrayNode($2);
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
ArgList: [
|
ArgList: [
|
||||||
o("", function() {
|
o("Arg", function() {
|
||||||
return [];
|
|
||||||
}), o("Arg", function() {
|
|
||||||
return [$1];
|
return [$1];
|
||||||
}), o("ArgList , Arg", function() {
|
}), o("ArgList , Arg", function() {
|
||||||
return $1.concat([$3]);
|
return $1.concat([$3]);
|
||||||
}), o("ArgList OptComma TERMINATOR Arg", function() {
|
}), o("ArgList OptComma TERMINATOR Arg", function() {
|
||||||
return $1.concat([$4]);
|
return $1.concat([$4]);
|
||||||
|
}), o("INDENT ArgList OptComma OUTDENT", function() {
|
||||||
|
return $2;
|
||||||
}), o("ArgList OptComma INDENT ArgList OptComma OUTDENT", function() {
|
}), o("ArgList OptComma INDENT ArgList OptComma OUTDENT", function() {
|
||||||
return $1.concat($4);
|
return $1.concat($4);
|
||||||
})
|
})
|
||||||
|
|||||||
228
lib/parser.js
228
lib/parser.js
File diff suppressed because one or more lines are too long
@@ -325,6 +325,7 @@ grammar =
|
|||||||
|
|
||||||
# The list of arguments to a function call.
|
# The list of arguments to a function call.
|
||||||
Arguments: [
|
Arguments: [
|
||||||
|
o "CALL_START CALL_END", -> []
|
||||||
o "CALL_START ArgList OptComma CALL_END", -> $2
|
o "CALL_START ArgList OptComma CALL_END", -> $2
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -364,6 +365,7 @@ grammar =
|
|||||||
|
|
||||||
# The array literal.
|
# The array literal.
|
||||||
Array: [
|
Array: [
|
||||||
|
o "[ ]", -> new ArrayNode []
|
||||||
o "[ ArgList OptComma ]", -> new ArrayNode $2
|
o "[ ArgList OptComma ]", -> new ArrayNode $2
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -371,10 +373,10 @@ grammar =
|
|||||||
# as well as the contents of an array literal
|
# as well as the contents of an array literal
|
||||||
# (i.e. comma-separated expressions). Newlines work as well.
|
# (i.e. comma-separated expressions). Newlines work as well.
|
||||||
ArgList: [
|
ArgList: [
|
||||||
o "", -> []
|
|
||||||
o "Arg", -> [$1]
|
o "Arg", -> [$1]
|
||||||
o "ArgList , Arg", -> $1.concat [$3]
|
o "ArgList , Arg", -> $1.concat [$3]
|
||||||
o "ArgList OptComma TERMINATOR Arg", -> $1.concat [$4]
|
o "ArgList OptComma TERMINATOR Arg", -> $1.concat [$4]
|
||||||
|
o "INDENT ArgList OptComma OUTDENT", -> $2
|
||||||
o "ArgList OptComma INDENT ArgList OptComma OUTDENT", -> $1.concat $4
|
o "ArgList OptComma INDENT ArgList OptComma OUTDENT", -> $1.concat $4
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user