Reusable KissState
This commit is contained in:
@@ -27,16 +27,9 @@ typedef KissState = {
|
||||
};
|
||||
|
||||
class Kiss {
|
||||
/**
|
||||
Build a Haxe class from a corresponding .kiss file
|
||||
**/
|
||||
macro static public function build(kissFile:String):Array<Field> {
|
||||
try {
|
||||
var classFields = Context.getBuildFields();
|
||||
public static function defaultKissState():KissState {
|
||||
var className = Context.getLocalClass().get().name;
|
||||
|
||||
var stream = new Stream(kissFile);
|
||||
|
||||
var k = {
|
||||
className: className,
|
||||
readTable: Reader.builtins(),
|
||||
@@ -55,6 +48,20 @@ class Kiss {
|
||||
k.defAlias("has", Symbol("Lambda.has"));
|
||||
k.defAlias("count", Symbol("Lambda.count"));
|
||||
|
||||
return k;
|
||||
}
|
||||
|
||||
/**
|
||||
Build a Haxe class from a corresponding .kiss file
|
||||
**/
|
||||
macro static public function build(kissFile:String, ?k:KissState):Array<Field> {
|
||||
try {
|
||||
var classFields = Context.getBuildFields();
|
||||
var stream = new Stream(kissFile);
|
||||
|
||||
if (k == null)
|
||||
k = defaultKissState();
|
||||
|
||||
while (true) {
|
||||
stream.dropWhitespace();
|
||||
if (stream.isEmpty())
|
||||
|
Reference in New Issue
Block a user