Newer
Older
ResourceDependencyLogic / src / Main.java
@Sakoda2269 Sakoda2269 on 19 Oct 1 KB テストを追加
import lombok.SneakyThrows;
import models.Dependency;
import models.ResourceVariable;
import models.algebra.Expression;
import models.algebra.Type;
import models.algebra.Variable;
import models.dataConstraintModel.DataConstraintModel;
import models.dataFlowModel.DataTransferModel;
import models.meta.MetaDependencyVariable;
import models.meta.MetaRDLTerm;
import models.meta.MetaResourceVariable;
import models.meta.OrderConstraint;
import parser.Parser;
import parser.Parser.TokenStream;

public class Main {

	static TokenStream stream = new Parser.TokenStream();
	static Parser parser = new Parser(stream);
	static DataTransferModel model = new DataTransferModel();
	
	public static void main(String[] args) {

		Type INT = DataConstraintModel.typeInt;
		
		ResourceVariable a = new ResourceVariable("a", INT, 0);
		ResourceVariable b = new ResourceVariable("b", INT, 0);
		Dependency dep = new Dependency(a, b);
		System.out.println(dep.toStringWithOrder());
		
		MetaDependencyVariable d = new MetaDependencyVariable(new Variable("d"), OrderConstraint.EQ, parse("0"));
		MetaResourceVariable x = new MetaResourceVariable(new Variable("x"), OrderConstraint.EQ, parse("x"));
		MetaResourceVariable y = new MetaResourceVariable(new Variable("y"), OrderConstraint.EQ, parse("x"));
		MetaRDLTerm term = new MetaRDLTerm(x, x);
		System.out.println(term.isMatchedBy(dep));
			
	}

	@SneakyThrows
	public static Expression parse(String expr) {
		stream.addLine(expr);
		return parser.parseTerm(stream, model);
	}
	
}