reworking parser for more permissive non-comma-separated array elements.
This commit is contained in:
parent
e37056192b
commit
676e893c14
|
@ -408,17 +408,13 @@
|
||||||
return [];
|
return [];
|
||||||
}), o("Expression", function() {
|
}), o("Expression", function() {
|
||||||
return [$1];
|
return [$1];
|
||||||
}), o("INDENT Expression", function() {
|
|
||||||
return [$2];
|
|
||||||
}), o("ArgList , Expression", function() {
|
}), o("ArgList , Expression", function() {
|
||||||
return $1.concat([$3]);
|
return $1.concat([$3]);
|
||||||
}), o("ArgList TERMINATOR Expression", function() {
|
}), o("ArgList OptComma TERMINATOR Expression", function() {
|
||||||
return $1.concat([$3]);
|
|
||||||
}), o("ArgList , TERMINATOR Expression", function() {
|
|
||||||
return $1.concat([$4]);
|
return $1.concat([$4]);
|
||||||
}), o("ArgList , INDENT Expression", function() {
|
}), o("ArgList OptComma INDENT ArgList OptComma OUTDENT", function() {
|
||||||
return $1.concat([$4]);
|
return $1.concat($4);
|
||||||
}), o("ArgList OptComma OUTDENT")
|
})
|
||||||
],
|
],
|
||||||
// Just simple, comma-separated, required arguments (no fancy syntax). We need
|
// Just simple, comma-separated, required arguments (no fancy syntax). We need
|
||||||
// this to be separate from the **ArgList** for use in **Switch** blocks, where
|
// this to be separate from the **ArgList** for use in **Switch** blocks, where
|
||||||
|
|
216
lib/parser.js
216
lib/parser.js
File diff suppressed because one or more lines are too long
|
@ -363,12 +363,9 @@ grammar: {
|
||||||
ArgList: [
|
ArgList: [
|
||||||
o "", -> []
|
o "", -> []
|
||||||
o "Expression", -> [$1]
|
o "Expression", -> [$1]
|
||||||
o "INDENT Expression", -> [$2]
|
|
||||||
o "ArgList , Expression", -> $1.concat [$3]
|
o "ArgList , Expression", -> $1.concat [$3]
|
||||||
o "ArgList TERMINATOR Expression", -> $1.concat [$3]
|
o "ArgList OptComma TERMINATOR Expression", -> $1.concat [$4]
|
||||||
o "ArgList , TERMINATOR Expression", -> $1.concat [$4]
|
o "ArgList OptComma INDENT ArgList OptComma OUTDENT", -> $1.concat $4
|
||||||
o "ArgList , INDENT Expression", -> $1.concat [$4]
|
|
||||||
o "ArgList OptComma OUTDENT"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Just simple, comma-separated, required arguments (no fancy syntax). We need
|
# Just simple, comma-separated, required arguments (no fancy syntax). We need
|
||||||
|
|
|
@ -99,3 +99,11 @@ obj: {
|
||||||
|
|
||||||
ok obj.is()
|
ok obj.is()
|
||||||
ok not obj.not()
|
ok not obj.not()
|
||||||
|
|
||||||
|
|
||||||
|
# Funky indentation within non-comma-seperated arrays.
|
||||||
|
result: [['a']
|
||||||
|
{b: 'c'}]
|
||||||
|
|
||||||
|
ok result[0][0] is 'a'
|
||||||
|
ok result[1]['b'] is 'c'
|
||||||
|
|
Loading…
Reference in New Issue