Skip to content

Commit

Permalink
Refactoring for conventions
Browse files Browse the repository at this point in the history
  • Loading branch information
RipplB committed Mar 7, 2024
1 parent a05eeb5 commit 55492d7
Show file tree
Hide file tree
Showing 10 changed files with 152 additions and 98 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ protected MultiAnalysis(Function<MState, MultiSourceSide> defineNextSide, Side<L
this.dataInitFunc = dataInitFunc;
}

abstract MState createInitialState(LBlank leftState, RBlank rightState, DataState dataState);
protected abstract MState createInitialState(LBlank leftState, RBlank rightState, DataState dataState);

abstract MState createState(LBlank leftState, RBlank rightState, DataState dataState, MultiSourceSide sourceSide);
protected abstract MState createState(LBlank leftState, RBlank rightState, DataState dataState, MultiSourceSide sourceSide);

@Override
public PartialOrd<MState> getPartialOrd() {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,29 @@ public static class BothSidesDone<LState extends State, RState extends State, Da

}

@FunctionalInterface
public interface MultiAnalysisBuilderFunc<LState extends State, RState extends State, DataState extends State, LBlank extends State, RBlank extends State,
LAction extends Action, RAction extends Action,
LPrec extends Prec, RPrec extends Prec, DataPrec extends Prec, LBlankPrec extends Prec, RBlankPrec extends Prec,
MState extends MultiState<LBlank, RBlank, DataState>, MAction extends MultiAction<LAction, RAction>,
MAnalysis extends MultiAnalysis<LState, RState, DataState, LBlank, RBlank, LAction, RAction, LPrec, RPrec, DataPrec, LBlankPrec, RBlankPrec, MState, MAction>> {

MAnalysis build(MultiAnalysis.Side<LState, DataState, LBlank, LAction, LPrec, LBlankPrec> leftSide,
MultiAnalysis.Side<RState, DataState, RBlank, RAction, RPrec, RBlankPrec> rightSide,
Function<MState, MultiSourceSide> defineNextSide,
InitFunc<DataState, DataPrec> dataInitFunc);

}

@FunctionalInterface
public interface MultiLtsBuilderFunc<LState extends State, RState extends State, DataState extends State, LBlank extends State, RBlank extends State,
LAction extends Action, RAction extends Action, MState extends MultiState<LBlank, RBlank, DataState>, MAction extends MultiAction<LAction, RAction>,
MLts extends MultiLts<LState, RState, DataState, LBlank, RBlank, LAction, RAction, MState, MAction>> {

MLts build(LTS<? super LState, LAction> leftLts, BiFunction<LBlank, DataState, LState> combineLeftState,
LTS<? super RState, RAction> rightLts, BiFunction<RBlank, DataState, RState> combineRightState,
Function<MState, MultiSourceSide> defineNextSide);

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ protected MultiLts(Function<MState, MultiSourceSide> defineNextSide, Side<LState
this.right = right;
}

abstract MAction wrapLeftAction(LAction action);
protected abstract MAction wrapLeftAction(LAction action);

abstract MAction wrapRightAction(RAction action);
protected abstract MAction wrapRightAction(RAction action);

@Override
public Collection<MAction> getEnabledActionsFor(MState state) {
Expand All @@ -61,7 +61,7 @@ public Function<MState, MultiSourceSide> getDefineNextSide() {
return defineNextSide;
}

protected record Side<S extends State, Data extends State, Blank extends State, A extends Action>(
public record Side<S extends State, Data extends State, Blank extends State, A extends Action>(
LTS<? super S, A> lts, BiFunction<Blank, Data, S> combineStates) {
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package hu.bme.mit.theta.analysis.multi;
package hu.bme.mit.theta.analysis.multi.stmt;

import hu.bme.mit.theta.analysis.expr.ExprState;
import hu.bme.mit.theta.analysis.multi.MultiSourceSide;
import hu.bme.mit.theta.analysis.multi.MultiState;
import hu.bme.mit.theta.core.type.Expr;
import hu.bme.mit.theta.core.type.booltype.BoolType;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package hu.bme.mit.theta.analysis.multi;
package hu.bme.mit.theta.analysis.multi.stmt;

import hu.bme.mit.theta.analysis.expr.StmtAction;
import hu.bme.mit.theta.analysis.multi.MultiAction;
import hu.bme.mit.theta.core.stmt.Stmt;

import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,41 +13,43 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package hu.bme.mit.theta.analysis.multi;
package hu.bme.mit.theta.analysis.multi.stmt;

import hu.bme.mit.theta.analysis.InitFunc;
import hu.bme.mit.theta.analysis.Prec;
import hu.bme.mit.theta.analysis.expr.ExprState;
import hu.bme.mit.theta.analysis.expr.StmtAction;
import hu.bme.mit.theta.analysis.multi.MultiAnalysis;
import hu.bme.mit.theta.analysis.multi.MultiSourceSide;

import java.util.function.Function;

public final class ExprMultiAnalysis<LState extends ExprState, RState extends ExprState, DataState extends ExprState, LBlank extends ExprState, RBlank extends ExprState,
public final class StmtMultiAnalysis<LState extends ExprState, RState extends ExprState, DataState extends ExprState, LBlank extends ExprState, RBlank extends ExprState,
LAction extends StmtAction, RAction extends StmtAction,
LPrec extends Prec, RPrec extends Prec, DataPrec extends Prec, LBlankPrec extends Prec, RBlankPrec extends Prec>
extends MultiAnalysis<LState, RState, DataState, LBlank, RBlank, LAction, RAction, LPrec, RPrec, DataPrec, LBlankPrec, RBlankPrec, ExprMultiState<LBlank, RBlank, DataState>, StmtMultiAction<LAction, RAction>> {

private ExprMultiAnalysis(Function<ExprMultiState<LBlank, RBlank, DataState>, MultiSourceSide> defineNextSide, Side<LState, DataState, LBlank, LAction, LPrec, LBlankPrec> leftSide, Side<RState, DataState, RBlank, RAction, RPrec, RBlankPrec> rightSide, InitFunc<DataState, DataPrec> dataInitFunc) {
private StmtMultiAnalysis(Function<ExprMultiState<LBlank, RBlank, DataState>, MultiSourceSide> defineNextSide, Side<LState, DataState, LBlank, LAction, LPrec, LBlankPrec> leftSide, Side<RState, DataState, RBlank, RAction, RPrec, RBlankPrec> rightSide, InitFunc<DataState, DataPrec> dataInitFunc) {
super(defineNextSide, leftSide, rightSide, dataInitFunc);
}

public static <LState extends ExprState, RState extends ExprState, DataState extends ExprState, LBlank extends ExprState, RBlank extends ExprState,
LAction extends StmtAction, RAction extends StmtAction,
LPrec extends Prec, RPrec extends Prec, DataPrec extends Prec, LBlankPrec extends Prec, RBlankPrec extends Prec>
ExprMultiAnalysis<LState, RState, DataState, LBlank, RBlank, LAction, RAction, LPrec, RPrec, DataPrec, LBlankPrec, RBlankPrec>
StmtMultiAnalysis<LState, RState, DataState, LBlank, RBlank, LAction, RAction, LPrec, RPrec, DataPrec, LBlankPrec, RBlankPrec>
of(Side<LState, DataState, LBlank, LAction, LPrec, LBlankPrec> leftSide, Side<RState, DataState, RBlank, RAction, RPrec, RBlankPrec> rightSide,
Function<ExprMultiState<LBlank, RBlank, DataState>, MultiSourceSide> defineNextSide,
InitFunc<DataState, DataPrec> dataInitFunc) {
return new ExprMultiAnalysis<>(defineNextSide, leftSide, rightSide, dataInitFunc);
return new StmtMultiAnalysis<>(defineNextSide, leftSide, rightSide, dataInitFunc);
}

@Override
ExprMultiState<LBlank, RBlank, DataState> createInitialState(LBlank leftState, RBlank rightState, DataState dataState) {
public ExprMultiState<LBlank, RBlank, DataState> createInitialState(LBlank leftState, RBlank rightState, DataState dataState) {
return ExprMultiState.createInitial(leftState, rightState, dataState);
}

@Override
ExprMultiState<LBlank, RBlank, DataState> createState(LBlank leftState, RBlank rightState, DataState dataState, MultiSourceSide sourceSide) {
public ExprMultiState<LBlank, RBlank, DataState> createState(LBlank leftState, RBlank rightState, DataState dataState, MultiSourceSide sourceSide) {
return ExprMultiState.create(leftState, rightState, dataState, sourceSide, true);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,37 +13,39 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package hu.bme.mit.theta.analysis.multi;
package hu.bme.mit.theta.analysis.multi.stmt;

import hu.bme.mit.theta.analysis.LTS;
import hu.bme.mit.theta.analysis.expr.ExprState;
import hu.bme.mit.theta.analysis.expr.StmtAction;
import hu.bme.mit.theta.analysis.multi.MultiLts;
import hu.bme.mit.theta.analysis.multi.MultiSourceSide;

import java.util.function.BiFunction;
import java.util.function.Function;

public final class ExprMultiLts<LState extends ExprState, RState extends ExprState, DataState extends ExprState, LBlank extends ExprState, RBlank extends ExprState, LAction extends StmtAction, RAction extends StmtAction>
public final class StmtMultiLts<LState extends ExprState, RState extends ExprState, DataState extends ExprState, LBlank extends ExprState, RBlank extends ExprState, LAction extends StmtAction, RAction extends StmtAction>
extends MultiLts<LState, RState, DataState, LBlank, RBlank, LAction, RAction, ExprMultiState<LBlank, RBlank, DataState>, StmtMultiAction<LAction, RAction>> {

private ExprMultiLts(Function<ExprMultiState<LBlank, RBlank, DataState>, MultiSourceSide> defineNextSide, Side<LState, DataState, LBlank, LAction> left, Side<RState, DataState, RBlank, RAction> right) {
private StmtMultiLts(Function<ExprMultiState<LBlank, RBlank, DataState>, MultiSourceSide> defineNextSide, Side<LState, DataState, LBlank, LAction> left, Side<RState, DataState, RBlank, RAction> right) {
super(defineNextSide, left, right);
}

public static <LState extends ExprState, RState extends ExprState, DataState extends ExprState, LBlank extends ExprState, RBlank extends ExprState, LAction extends StmtAction, RAction extends StmtAction>
ExprMultiLts<LState, RState, DataState, LBlank, RBlank, LAction, RAction> of(
StmtMultiLts<LState, RState, DataState, LBlank, RBlank, LAction, RAction> of(
LTS<? super LState, LAction> leftLts, BiFunction<LBlank, DataState, LState> wrapLeftState,
LTS<? super RState, RAction> rightLts, BiFunction<RBlank, DataState, RState> wrapRightState,
Function<ExprMultiState<LBlank, RBlank, DataState>, MultiSourceSide> defineNextSide) {
return new ExprMultiLts<>(defineNextSide, new Side<>(leftLts, wrapLeftState), new Side<>(rightLts, wrapRightState));
return new StmtMultiLts<>(defineNextSide, new Side<>(leftLts, wrapLeftState), new Side<>(rightLts, wrapRightState));
}

@Override
StmtMultiAction<LAction, RAction> wrapLeftAction(LAction action) {
protected StmtMultiAction<LAction, RAction> wrapLeftAction(LAction action) {
return StmtMultiAction.ofLeftStmtAction(action);
}

@Override
StmtMultiAction<LAction, RAction> wrapRightAction(RAction action) {
protected StmtMultiAction<LAction, RAction> wrapRightAction(RAction action) {
return StmtMultiAction.ofRightStmtAction(action);
}
}
Loading

0 comments on commit 55492d7

Please sign in to comment.