AcslContractAnalyzer.java
package edu.udel.cis.vsl.abc.analysis.entity;
import edu.udel.cis.vsl.abc.ast.conversion.IF.ConversionFactory;
import edu.udel.cis.vsl.abc.ast.entity.IF.Function;
import edu.udel.cis.vsl.abc.ast.node.IF.SequenceNode;
import edu.udel.cis.vsl.abc.ast.node.IF.acsl.ContractNode;
import edu.udel.cis.vsl.abc.token.IF.SyntaxException;
public class AcslContractAnalyzer {
/**
* The entity analyzer controlling this declaration analyzer.
*/
private EntityAnalyzer entityAnalyzer;
private ConversionFactory conversionFactory;
AcslContractAnalyzer(EntityAnalyzer entityAnalyzer,
ConversionFactory conversionFactory) {
this.entityAnalyzer = entityAnalyzer;
this.conversionFactory = conversionFactory;
}
void processContractNodes(SequenceNode<ContractNode> contract,
Function result) throws SyntaxException {
AcslContractAnalyzerWorker worker = new AcslContractAnalyzerWorker(
this.entityAnalyzer, conversionFactory);
worker.processContractNodes(contract, result);
}
void processLoopContractNodes(SequenceNode<ContractNode> loopContracts)
throws SyntaxException {
AcslContractAnalyzerWorker worker = new AcslContractAnalyzerWorker(
this.entityAnalyzer, conversionFactory);
worker.processLoopContractNodes(loopContracts);
}
}