feat(muscript): prepare for extractSideEffects
This commit is contained in:
parent
b15058a8e8
commit
9e6e337843
|
@ -1,10 +1,18 @@
|
|||
package io.gitlab.jfronny.muscript.ast.extensible;
|
||||
|
||||
import io.gitlab.jfronny.muscript.ast.BoolExpr;
|
||||
import io.gitlab.jfronny.muscript.ast.Expr;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public non-sealed interface ExtensibleBoolExpr extends BoolExpr, ExtensibleExpr {
|
||||
@Override
|
||||
default BoolExpr optimize() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
default Stream<Expr> extractSideEffects() {
|
||||
return Stream.of(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,18 @@
|
|||
package io.gitlab.jfronny.muscript.ast.extensible;
|
||||
|
||||
import io.gitlab.jfronny.muscript.ast.DynamicExpr;
|
||||
import io.gitlab.jfronny.muscript.ast.Expr;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public non-sealed interface ExtensibleDynamicExpr extends DynamicExpr, ExtensibleExpr {
|
||||
@Override
|
||||
default DynamicExpr optimize() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
default Stream<Expr> extractSideEffects() {
|
||||
return Stream.of(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,10 @@ package io.gitlab.jfronny.muscript.ast.extensible;
|
|||
import io.gitlab.jfronny.muscript.ast.Expr;
|
||||
import io.gitlab.jfronny.muscript.core.ExprWriter;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public sealed interface ExtensibleExpr permits ExtensibleBoolExpr, ExtensibleDynamicExpr, ExtensibleNumberExpr, ExtensibleStringExpr {
|
||||
void decompile(ExprWriter writer);
|
||||
Expr optimize();
|
||||
Stream<Expr> extractSideEffects();
|
||||
}
|
||||
|
|
|
@ -1,10 +1,18 @@
|
|||
package io.gitlab.jfronny.muscript.ast.extensible;
|
||||
|
||||
import io.gitlab.jfronny.muscript.ast.Expr;
|
||||
import io.gitlab.jfronny.muscript.ast.NumberExpr;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public non-sealed interface ExtensibleNumberExpr extends NumberExpr, ExtensibleExpr {
|
||||
@Override
|
||||
default NumberExpr optimize() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
default Stream<Expr> extractSideEffects() {
|
||||
return Stream.of(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,18 @@
|
|||
package io.gitlab.jfronny.muscript.ast.extensible;
|
||||
|
||||
import io.gitlab.jfronny.muscript.ast.Expr;
|
||||
import io.gitlab.jfronny.muscript.ast.StringExpr;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public non-sealed interface ExtensibleStringExpr extends StringExpr, ExtensibleExpr {
|
||||
@Override
|
||||
default StringExpr optimize() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
default Stream<Expr> extractSideEffects() {
|
||||
return Stream.of(this);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue