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
+28
View File
@@ -141,6 +141,34 @@ class Printer {
// expr(field);
//}
tabs = tabs.substr(1);
add("}");
case EEnum(en, _): // TODO: enum abstracts
add('enum ${en.name}');
if(en.fields.length == 0) {
add(' {}');
return;
}
tabs += "\t";
add(" {\n");
for(e in en.fields) {
add(tabs);
add(e.name);
if(e.args.length > 0) {
add("(");
var first = true;
for( a in e.args ) {
if( first ) first = false else add(", ");
if( a.opt ) add("?");
add(a.name);
addType(a.t);
}
add(')');
}
add(";\n");
}
tabs = tabs.substr(1);
add("}");
case EConst(c):