scansion/helpers.lua

changeset 173
14ed4cb241f4
parent 171
433a1f36d0d3
child 178
e547ddf8b64d
equal deleted inserted replaced
172:2c17151ed21b 173:14ed4cb241f4
1 local function filter_expression(script, s) 1 local function filter_expression(script, s)
2 local expr = s:match("^%$%{(.+)%}$"); 2 local expr = s:match("^%$%{(.+)%}$");
3 if not expr then return s end 3 if not expr then return s end
4 if script.captures and script.captures[expr] then
5 return script.captures[expr];
6 end
4 local name, value_name = expr:match("^(.+)'s (.+)$"); 7 local name, value_name = expr:match("^(.+)'s (.+)$");
5 assert(name, "Unable to parse expression: "..expr); 8 assert(name, "Unable to parse expression: "..expr);
6 local key = value_name:lower():gsub(" ", "_"); 9 local key = value_name:lower():gsub(" ", "_");
7 assert(script.objects[name], "Unknown object called "..name); 10 assert(script.objects[name], "Unknown object called "..name);
8 local value = script.objects[name][key]; 11 local value = script.objects[name][key];

mercurial