KissFrontEnd.dsl(). Related to #157

This commit is contained in:
2022-12-11 21:51:01 +00:00
parent b5748832fe
commit 0a38f65991

View File

@@ -5,17 +5,29 @@ import tink.syntaxhub.*;
import haxe.macro.Expr; import haxe.macro.Expr;
import haxe.macro.Context; import haxe.macro.Context;
import haxe.macro.Expr.ImportMode; import haxe.macro.Expr.ImportMode;
using StringTools;
class KissFrontend implements FrontendPlugin { class KissFrontend implements FrontendPlugin {
public function new() {} var extension:String;
var dslFile:String;
public function new(extension = "kiss", dslFile = "") {
this.extension = extension;
this.dslFile = dslFile;
}
public function extensions() public function extensions() {
return ['kiss'].iterator(); return [extension].iterator();
}
public function parse(file:String, context:FrontendContext):Void { public function parse(file:String, context:FrontendContext):Void {
final fields = Kiss.build(file,null,false,context); var files = [file];
if (dslFile.length > 0) {
files.unshift(dslFile);
}
final fields = Kiss.buildAll(files,null,false,context);
#if debug #if debug
trace(context.name); trace(context.name);
#end #end
@@ -29,6 +41,14 @@ class KissFrontend implements FrontendPlugin {
} }
} }
static function use() static function use() {
tink.SyntaxHub.frontends.whenever(new KissFrontend()); tink.SyntaxHub.frontends.whenever(new KissFrontend());
}
static function dsl(extension:String, dslFile:String) {
if (extension.startsWith(".")) {
extension = extension.substr(1);
}
tink.SyntaxHub.frontends.whenever(new KissFrontend(extension, dslFile));
}
} }