123456789101112131415161718192021222324 |
- import haxe.Exception;
- import haxe.display.Position;
- class Marker {
- static var markerRe = ~/{-(\d+)-}/g;
- static public function extractMarkers(doc:String) {
- var markers = #if macro [] #else new Map() #end;
- var posAcc = 0;
- var src = markerRe.map(doc, function(r) {
- var p = r.matchedPos();
- var name = r.matched(1);
- var pos = p.pos - posAcc;
- posAcc += p.len;
- #if macro
- markers.push(macro $v{Std.parseInt(name)} => $v{pos});
- #else
- markers.set(Std.parseInt(name), pos);
- #end
- return "";
- });
- return {source: src, markers: markers};
- }
- }
|