parser, objects.client: Experimental support for more liberal object names

Tue, 27 Oct 2015 23:08:48 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Tue, 27 Oct 2015 23:08:48 +0000
changeset 44
0dab1dc183c1
parent 43
b37504fa3031
child 45
744c81c124b6

parser, objects.client: Experimental support for more liberal object names

scansion/objects/client.lua file | annotate | diff | comparison | revisions
scansion/parser.lua file | annotate | diff | comparison | revisions
--- a/scansion/objects/client.lua	Tue Oct 27 23:07:46 2015 +0000
+++ b/scansion/objects/client.lua	Tue Oct 27 23:08:48 2015 +0000
@@ -11,7 +11,7 @@
 	for k, v in pairs(stanza.attr) do
 		local expr = v:match("^%$%{(.+)%}$");
 		if expr then
-			local name, value_name = expr:match("^(.-)'s (.+)$");
+			local name, value_name = expr:match("^(.+)'s (.+)$");
 			assert(name, "Unable to parse expression: "..expr);
 			local key = value_name:lower():gsub(" ", "_");
 			assert(script.objects[name], "Unknown object called "..name);
--- a/scansion/parser.lua	Tue Oct 27 23:07:46 2015 +0000
+++ b/scansion/parser.lua	Tue Oct 27 23:08:48 2015 +0000
@@ -45,7 +45,7 @@
 			end
 		else
 			last_object = nil;
-			local name, action, extra = line:match("^(%a+) (%a+):?%s?(.*)$");
+			local name, action, extra = line:match("^([^:]+) (%a+):?%s?(.*)$");
 			if not name then
 				return nil, "Unable to parse action on line "..line_number;
 			end

mercurial