feat(muscript): add ExtensibleExpr.optimize in preparation for muscript-optimizer
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
Johannes Frohnmeyer 2024-04-05 17:57:28 +02:00
parent 4205297661
commit f40ed3e4e7
Signed by: Johannes
GPG Key ID: E76429612C2929F4
5 changed files with 19 additions and 1 deletions

View File

@ -3,4 +3,8 @@ package io.gitlab.jfronny.muscript.ast.extensible;
import io.gitlab.jfronny.muscript.ast.BoolExpr;
public non-sealed interface ExtensibleBoolExpr extends BoolExpr, ExtensibleExpr {
@Override
default BoolExpr optimize() {
return this;
}
}

View File

@ -3,4 +3,8 @@ package io.gitlab.jfronny.muscript.ast.extensible;
import io.gitlab.jfronny.muscript.ast.DynamicExpr;
public non-sealed interface ExtensibleDynamicExpr extends DynamicExpr, ExtensibleExpr {
@Override
default DynamicExpr optimize() {
return this;
}
}

View File

@ -1,7 +1,9 @@
package io.gitlab.jfronny.muscript.ast.extensible;
import io.gitlab.jfronny.muscript.ast.Expr;
import io.gitlab.jfronny.muscript.core.ExprWriter;
public interface ExtensibleExpr {
public sealed interface ExtensibleExpr permits ExtensibleBoolExpr, ExtensibleDynamicExpr, ExtensibleNumberExpr, ExtensibleStringExpr {
void decompile(ExprWriter writer);
Expr optimize();
}

View File

@ -3,4 +3,8 @@ package io.gitlab.jfronny.muscript.ast.extensible;
import io.gitlab.jfronny.muscript.ast.NumberExpr;
public non-sealed interface ExtensibleNumberExpr extends NumberExpr, ExtensibleExpr {
@Override
default NumberExpr optimize() {
return this;
}
}

View File

@ -3,4 +3,8 @@ package io.gitlab.jfronny.muscript.ast.extensible;
import io.gitlab.jfronny.muscript.ast.StringExpr;
public non-sealed interface ExtensibleStringExpr extends StringExpr, ExtensibleExpr {
@Override
default StringExpr optimize() {
return this;
}
}