diff --git a/demo/project.xml b/demo/project.xml index 3cb66a2..fe7a135 100644 --- a/demo/project.xml +++ b/demo/project.xml @@ -8,8 +8,8 @@ - - + + diff --git a/src/main/haxework/macro/PositionYamlParser.hx b/src/main/haxework/macro/PositionYamlParser.hx index 52334f3..ddec310 100644 --- a/src/main/haxework/macro/PositionYamlParser.hx +++ b/src/main/haxework/macro/PositionYamlParser.hx @@ -1,5 +1,7 @@ package haxework.macro; +import haxe.DynamicAccess; + class PositionYamlParser { private var filename:String; @@ -18,16 +20,16 @@ class PositionYamlParser { parseBlock(result); } - private function parseBlock(result:Dynamic):Void { - for (field in Reflect.fields(result)) { + private function parseBlock(result:DynamicAccess):Void { + for (field in result.keys()) { var offset = content.indexOf(field, cache.get(field)); cache.set(field, offset); - Reflect.setField(result, "$" + field, { + result.set("$" + field, { min:offset, max:offset + field.length, file:filename, }); - var value = Reflect.field(result, field); + var value = result.get(field); if (Std.is(value, Array)) { for (item in cast(value, Array)) { parseBlock(item); @@ -38,7 +40,7 @@ class PositionYamlParser { } } - public static function parse(filename:String, content:String, result:Dynamic):Void { + public static inline function parse(filename:String, content:String, result:Dynamic):Void { new PositionYamlParser(filename, content, result).parseAll(); } } diff --git a/src/main/haxework/provider/Provider.hx b/src/main/haxework/provider/Provider.hx index f74b538..dae035f 100755 --- a/src/main/haxework/provider/Provider.hx +++ b/src/main/haxework/provider/Provider.hx @@ -33,7 +33,8 @@ class Provider { instances.set(key, instance); return instance; } else { - throw 'Factory for "${key}" not found'; + return null; + //throw 'Factory for "${key}" not found'; } }