Scripted Enums

This commit is contained in:
Jaime Humberto Macias Bustamante
2025-07-23 19:50:36 -07:00
parent 98b97bef66
commit ed78ed79d9
7 changed files with 262 additions and 24 deletions
+13
View File
@@ -81,6 +81,7 @@ enum Expr {
EImport( c : String, ?asname:String, ?isUsing:Bool );
EClass( name:String, fields:Array<Expr>, ?extend:String, interfaces:Array<String>, ?isFinal:Bool, ?isPrivate:Bool );
EEnum( en:EnumDecl, ?isAbstract:Bool );
}
@:structInit
@@ -111,6 +112,18 @@ final class MetadataEntry {
typedef Metadata = Array<MetadataEntry>;
@:structInit
final class EnumDecl {
public var name : String;
public var fields : Array<EnumField>;
}
@:structInit
final class EnumField {
public var name : String;
public var args : Array<Argument>;
}
enum CType {
CTPath( path : Array<String>, ?params : Array<CType> );
CTFun( args : Array<CType>, ret : CType );