KissFrontEnd.dsl(). Related to #157
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user