generalization

This commit is contained in:
ParkerTenBroeck 2025-04-26 10:07:57 -04:00
parent 9b0a9b7ad2
commit 95e7f6a59e
8 changed files with 174 additions and 104 deletions

View file

@ -1,4 +1,5 @@
import generator.RT;
import generator.future.Future;
import generator.gen.Gen;
import java.util.function.Supplier;
@ -10,47 +11,45 @@ public class Main implements Runnable {
@Override
public void run() {
// await();
lexer();
await();
// lexer();
// lambda();
}
void lambda(){
var gen = ((Supplier<Gen<Integer, String>>)() -> {
Gen.yield(12);
return Gen.ret("hello");
}).get();
while(true) {
var next = gen.next();
if(next instanceof Gen.Yield(var e)) System.out.println(e);
else if(next instanceof Gen.Ret(var ret)){
System.out.println(ret);
break;
}
}
}
// void lambda(){
// var gen = ((Supplier<Gen<Integer, String>>)() -> {
// Gen.yield(12);
// return Gen.ret("hello");
// }).get();
//
// while(true) {
// var next = gen.next();
// if(next instanceof Gen.Yield(var e)) System.out.println(e);
// else if(next instanceof Gen.Ret(var ret)){
// System.out.println(ret);
// break;
// }
// }
// }
void await(){
var gen = Examples.awaitTest(10);
while(true) {
var next = gen.next();
if(next instanceof Gen.Yield(var e)) System.out.println(e);
else if(next instanceof Gen.Ret(var ret)){
System.out.println(ret);
var next = (Object)gen.poll(() -> {});
if(!(next instanceof Future.Pending)){
System.out.println(next);
break;
}
}
Runnable meow = () -> {};
}
void lexer(){
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);
System.out.println("Pending");
}
}
// void lexer(){
// 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);
// }
// }
}