mirror of
https://github.com/ParkerTenBroeck/coroutines.git
synced 2026-06-06 21:00:35 -04:00
organized, added futures
This commit is contained in:
parent
13d9ba7363
commit
6424548e75
8 changed files with 29 additions and 6 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
import generator.Gen;
|
import generator.gen.Gen;
|
||||||
|
|
||||||
public class Examples {
|
public class Examples {
|
||||||
// public static Gen<String, Void> parse(String str){
|
// public static Gen<String, Void> parse(String str){
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import generator.Gen;
|
import generator.gen.Gen;
|
||||||
|
|
||||||
public class Lexer {
|
public class Lexer {
|
||||||
public sealed interface Token{}
|
public sealed interface Token{}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import generator.Fun;
|
import generator.Fun;
|
||||||
import generator.Gen;
|
import generator.gen.Gen;
|
||||||
|
|
||||||
public class Main implements Runnable {
|
public class Main implements Runnable {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
|
||||||
18
src/generator/future/Future.java
Normal file
18
src/generator/future/Future.java
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
package generator.future;
|
||||||
|
|
||||||
|
public interface Future<R> {
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
default R poll(Waker waker){
|
||||||
|
return (R) Pending.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
default R await(){
|
||||||
|
throw new RuntimeException();
|
||||||
|
}
|
||||||
|
|
||||||
|
final class Pending{
|
||||||
|
private static final Pending INSTANCE = new Pending();
|
||||||
|
private Pending(){}
|
||||||
|
}
|
||||||
|
}
|
||||||
5
src/generator/future/Waker.java
Normal file
5
src/generator/future/Waker.java
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
package generator.future;
|
||||||
|
|
||||||
|
public interface Waker {
|
||||||
|
void wake();
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package generator;
|
package generator.gen;
|
||||||
|
|
||||||
public interface Gen<Y, R> {
|
public interface Gen<Y, R> {
|
||||||
Res<Y, R> next();
|
Res<Y, R> next();
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package generator.runtime;
|
package generator.runtime;
|
||||||
|
|
||||||
import generator.Gen;
|
import generator.gen.Gen;
|
||||||
|
|
||||||
import java.lang.classfile.*;
|
import java.lang.classfile.*;
|
||||||
import java.lang.classfile.attribute.InnerClassInfo;
|
import java.lang.classfile.attribute.InnerClassInfo;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package generator.runtime;
|
package generator.runtime;
|
||||||
|
|
||||||
import generator.Fun;
|
import generator.Fun;
|
||||||
import generator.Gen;
|
import generator.gen.Gen;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.classfile.*;
|
import java.lang.classfile.*;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue