changeset 22:40a85f135be5

Support funcall syntax inside object definition to allow import: statements
author Mike Pavone <pavone@retrodev.com>
date Mon, 26 Mar 2012 00:06:13 -0700
parents 6c8ae6b47ab5
children 068d63627b16
files parser.js
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/parser.js	Sun Mar 25 21:11:10 2012 -0700
+++ b/parser.js	Mon Mar 26 00:06:13 2012 -0700
@@ -67,7 +67,7 @@
 'float = digits:[0-9]+ "." decimals:[0-9]+ { return new floatlit(parseFloat(digits.join("") + "." + decimals.join(""))); };' +
 'int = digits:[0-9]+ { return new intlit(parseInt(digits.join(""), 10)); };' +
 'string = "\\"" text:[^\\"]* "\\"" { return new strlit(text.join("")); };' +
-'object = "#{" ws messages:assignment* "}" { return new object(messages); };' +
+'object = "#{" ws messages:(assignment / funcall)* "}" { return new object(messages); };' +
 'assignment = hws sym:symbol hws "<-" expr:expr ws { return new assignment(sym, expr); }' +
 'lambda = args:((& ":") argname+  )? "{" ws exprs:(assignment / expr)* "}" { return new lambda(args[1], exprs); };' +
 'argname = init:":"? chars:[a-zA-Z_!?@]+ trailing:[a-zA-Z_!?@0-9]* hws { return new symbol(init + chars.join("") + trailing.join("")); };' +