# HG changeset patch # User Mike Pavone # Date 1377363200 25200 # Node ID ab204751d1e71c7fc92804ae5434bab20d3a536a # Parent 20b6041a8b235935e3c7b3773d4fc8d634fbeabd Allow all expressions in array and list literals diff -r 20b6041a8b23 -r ab204751d1e7 parser.js --- a/parser.js Thu Aug 22 15:12:15 2013 -0700 +++ b/parser.js Sat Aug 24 09:53:20 2013 -0700 @@ -99,8 +99,8 @@ 'strpart = text:[^\\"\\\\]+ { return text.join(""); };' + 'escape = "\\\\" char:[nt\\"r\\\\] { if (char == "n") { return "\\n"; } if (char == "r") { return "\\r"; } return char; };' + 'object = "#{" ws messages:(assignment / funexpr)* "}" { return new object(messages); };' + -'array = "#[" ws els:opexpr* "]" { return new arraylit(els); };' + -'list = "[" ws els:opexpr* "]" { return new listlit(els); };' + +'array = "#[" ws els:expr* "]" { return new arraylit(els); };' + +'list = "[" ws els:expr* "]" { return new listlit(els); };' + 'opsym = name:("&&" / "||" / "<=" / ">=" / "<" / ">" / "=" / "!=" / "+" / "-" / "." / "*" / "/" / "%" / "|") { return new symbol(name); };' + 'assignment = ws sym:(symbol / opsym) hws "<-" expr:expr ws { return new assignment(sym, expr); }' + 'lambda = args:((& ":") argname+ )? "{" ws exprs:(assignment / expr)* "}" { return new lambda(args[1], exprs); };' +