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.Context;
import haxe.macro.Expr.ImportMode;
using StringTools;
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()
return ['kiss'].iterator();
public function extensions() {
return [extension].iterator();
}
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
trace(context.name);
#end
@@ -29,6 +41,14 @@ class KissFrontend implements FrontendPlugin {
}
}
static function use()
static function use() {
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));
}
}