From 10d07e2c80ee05a9d90131b5b4d1d67990d485f1 Mon Sep 17 00:00:00 2001 From: Parker TenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Thu, 3 Apr 2025 12:11:43 -0400 Subject: [PATCH] made generators have better class names --- src/Examples.java | 11 +++++++++++ src/Main.java | 1 + src/generator/runtime/GeneratorBuilder.java | 1 + src/generator/runtime/GeneratorClassLoader.java | 3 ++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Examples.java b/src/Examples.java index 11ab025..cedbb5d 100644 --- a/src/Examples.java +++ b/src/Examples.java @@ -66,6 +66,17 @@ public class Examples { // } public static Gen test(double[] nyas){ + + var test = 1+switch(nyas[0]){ + case 1.0 -> { + Gen.yield(11); + yield 2; + } + default -> { + Gen.yield(12); + yield 4; + } + }; for(var d : nyas){ Gen.yield(d); } diff --git a/src/Main.java b/src/Main.java index 5e9bc17..190c73b 100644 --- a/src/Main.java +++ b/src/Main.java @@ -9,6 +9,7 @@ public class Main implements Runnable { @Override public void run() { var gen = Lexer.parse("f7(x,y,z,w, u,v, othersIg) = v-(x*y+y+ln(z)^2*sin(z*pi/2))/(w*u)+sqrt(othersIg*120e-1)"); +// var gen = Examples.test(new double[]{1,2,3,4}); while(gen.next() instanceof Gen.Yield(var tok)) { System.out.println(tok); } diff --git a/src/generator/runtime/GeneratorBuilder.java b/src/generator/runtime/GeneratorBuilder.java index c1daee7..5e4ee10 100644 --- a/src/generator/runtime/GeneratorBuilder.java +++ b/src/generator/runtime/GeneratorBuilder.java @@ -99,6 +99,7 @@ public class GeneratorBuilder { } private void generateStateMachine(ClassBuilder clb, CodeBuilder cob, CodeModel com){ + var stateSwitchCases = new ArrayList(); var invalidState = cob.newLabel(); stateSwitchCases.add(SwitchCase.of(0, cob.newLabel())); diff --git a/src/generator/runtime/GeneratorClassLoader.java b/src/generator/runtime/GeneratorClassLoader.java index 79b4d04..8754c72 100644 --- a/src/generator/runtime/GeneratorClassLoader.java +++ b/src/generator/runtime/GeneratorClassLoader.java @@ -77,7 +77,8 @@ public class GeneratorClassLoader extends ClassLoader { if (!mem.flags().has(AccessFlag.STATIC)) { mts = mts.insertParameterTypes(0, clm.thisClass().asSymbol()); } - var gb = new GeneratorBuilder("Gen" + customClazzDefMap.size(), mts.parameterArray()); + var name = "Gen_" + clm.thisClass().name().stringValue() + "_" + mem.methodName().stringValue() + "_" + customClazzDefMap.size(); + var gb = new GeneratorBuilder(name, mts.parameterArray()); mb.withCode(gb::buildGeneratorMethodShim); addGenerator(gb.CD_this_gen.displayName(), gb.buildGenerator(com)); } else mb.with(me);