package org.overture.interpreter.assistant; import java.util.List; import org.overture.ast.analysis.QuestionAnswerAdaptor; import org.overture.ast.analysis.intf.IAnswer; import org.overture.ast.analysis.intf.IQuestionAnswer; import org.overture.ast.expressions.PExp; import org.overture.ast.lex.LexNameList; import org.overture.ast.patterns.AIdentifierPattern; import org.overture.ast.statements.PStm; import org.overture.ast.types.PType; import org.overture.interpreter.assistant.definition.ACpuClassDefinitionAssistantInterpreter; import org.overture.interpreter.assistant.definition.AExplicitFunctionDefinitionAssistantInterpreter; import org.overture.interpreter.assistant.definition.ANamedTraceDefinitionAssistantInterpreter; import org.overture.interpreter.assistant.definition.AStateDefinitionAssistantInterpreter; import org.overture.interpreter.assistant.definition.PDefinitionAssistantInterpreter; import org.overture.interpreter.assistant.definition.PDefinitionListAssistantInterpreter; import org.overture.interpreter.assistant.definition.SClassDefinitionAssistantInterpreter; import org.overture.interpreter.assistant.expression.AFieldExpAssistantInterpreter; import org.overture.interpreter.assistant.expression.APostOpExpAssistantInterpreter; import org.overture.interpreter.assistant.expression.PExpAssistantInterpreter; import org.overture.interpreter.assistant.module.AModuleModulesAssistantInterpreter; import org.overture.interpreter.assistant.module.ModuleListAssistantInterpreter; import org.overture.interpreter.assistant.pattern.AMapPatternMapletAssistantInterpreter; import org.overture.interpreter.assistant.pattern.PBindAssistantInterpreter; import org.overture.interpreter.assistant.pattern.PMultipleBindAssistantInterpreter; import org.overture.interpreter.assistant.pattern.PPatternAssistantInterpreter; import org.overture.interpreter.assistant.statement.PStmAssistantInterpreter; import org.overture.interpreter.assistant.type.PTypeAssistantInterpreter; import org.overture.interpreter.assistant.type.SInvariantTypeAssistantInterpreter; import org.overture.interpreter.eval.BindState; import org.overture.interpreter.runtime.Context; import org.overture.interpreter.runtime.ObjectContext; import org.overture.interpreter.traces.TraceNode; import org.overture.interpreter.utilities.pattern.AllNamedValuesLocator; import org.overture.interpreter.values.NameValuePairList; import org.overture.interpreter.values.ValueList; import org.overture.typechecker.assistant.ITypeCheckerAssistantFactory; public interface IInterpreterAssistantFactory extends ITypeCheckerAssistantFactory { // definition // AApplyExpressionTraceCoreDefinitionAssistantInterpreter createAApplyExpressionTraceCoreDefinitionAssistant(); // AAssignmentDefinitionAssistantInterpreter createAAssignmentDefinitionAssistant(); // ABracketedExpressionTraceCoreDefinitionAssitantInterpreter // createABracketedExpressionTraceCoreDefinitionAssitant(); //ABusClassDefinitionAssistantInterpreter createABusClassDefinitionAssitant(); // AClassClassDefinitionAssistantInterpreter createAClassClassDefinitionAssistant(); // AConcurrentExpressionTraceCoreDefinitionAssistantInterpreter // createAConcurrentExpressionTraceCoreDefinitionAssistant(); ACpuClassDefinitionAssistantInterpreter createACpuClassDefinitionAssistant(); // AEqualsDefinitionAssistantInterpreter createAEqualsDefinitionAssistant(); // AErrorCaseAssistantInterpreter createAErrorCaseAssistant(); AExplicitFunctionDefinitionAssistantInterpreter createAExplicitFunctionDefinitionAssistant(); // AExplicitOperationDefinitionAssistantInterpreter createAExplicitOperationDefinitionAssistant(); //AImplicitFunctionDefinitionAssistantInterpreter createAImplicitFunctionDefinitionAssistant(); // AImplicitOperationDefinitionAssistantInterpreter createAImplicitOperationDefinitionAssistant(); // AImportedDefinitionAssistantInterpreter createAImportedDefinitionAssistant(); // AInheritedDefinitionAssistantInterpreter createAInheritedDefinitionAssistant(); // AInstanceVariableDefinitionAssistantInterpreter createAInstanceVariableDefinitionAssistant(); // ALetBeStBindingTraceDefinitionAssistantInterpreter createALetBeStBindingTraceDefinitionAssistant(); // ALetDefBindingTraceDefinitionAssistantInterpreter createALetDefBindingTraceDefinitionAssistant(); // ALocalDefinitionAssistantInterpreter createALocalDefinitionAssistant(); // AMutexSyncDefinitionAssistantInterpreter createAMutexSyncDefinitionAssistant(); ANamedTraceDefinitionAssistantInterpreter createANamedTraceDefinitionAssistant(); // APerSyncDefinitionAssistantInterpreter createAPerSyncDefinitionAssistant(); // ARenamedDefinitionAssistantInterpreter createARenamedDefinitionAssistant(); // ARepeatTraceDefinitionAssistantInterpreter createARepeatTraceDefinitionAssistant(); AStateDefinitionAssistantInterpreter createAStateDefinitionAssistant(); // ASystemClassDefinitionAssistantInterpreter createASystemClassDefinitionAssistant(); // AThreadDefinitionAssistantInterpreter createAThreadDefinitionAssistant(); // ATraceDefinitionTermAssistantInterpreter createATraceDefinitionTermAssistant(); // ATypeDefinitionAssistantInterpreter createATypeDefinitionAssistant(); // /AUntypedDefinitionAssistantInterpreter createAUntypedDefinitionAssistant(); // AValueDefinitionAssistantInterpreter createAValueDefinitionAssistant(); PDefinitionAssistantInterpreter createPDefinitionAssistant(); PDefinitionListAssistantInterpreter createPDefinitionListAssistant(); //PTraceCoreDefinitionAssistantInterpreter createPTraceCoreDefinitionAssistant(); SClassDefinitionAssistantInterpreter createSClassDefinitionAssistant(); // expression // AApplyExpAssistantInterpreter createAApplyExpAssistant(); // ACaseAlternativeAssistantInterpreter createACaseAlternativeAssistant(); // ACasesExpAssistantInterpreter createACasesExpAssistant(); // ADefExpAssistantInterpreter createADefExpAssistant(); // AElseIfExpAssistantInterpreter createAElseIfExpAssistant(); // AExists1ExpAssistantInterpreter createAExists1ExpAssistant(); // AExistsExpAssistantInterpreter createAExistsExpAssistant(); AFieldExpAssistantInterpreter createAFieldExpAssistant(); // AFieldNumberExpAssistantInterpreter createAFieldNumberExpAssistant(); // AForAllExpAssistantInterpreter createAForAllExpAssistant(); // AFuncInstatiationExpAssistantInterpreter createAFuncInstatiationExpAssistant(); // AIfExpAssistantInterpreter createAIfExpAssistant(); // AIotaExpAssistantInterpreter createAIotaExpAssistant(); // AIsExpAssistantInterpreter createAIsExpAssistant(); // AIsOfBaseClassExpAssistantInterpreter createAIsOfBaseClassExpAssistant(); // AIsOfClassExpAssistantInterpreter createAIsOfClassExpAssistant(); // ALambdaExpAssistantInterpreter createALambdaExpAssistant(); // ALetBeStExpAssistantInterpreter createALetBeStExpAssistant(); // ALetDefExpAssistantInterpreter createALetDefExpAssistant(); // AMapCompMapExpAssistantInterpreter createAMapCompMapExpAssistant(); // // AMapEnumMapExpAssistantInterpreter createAMapEnumMapExpAssistant(); // // AMapletExpAssistantInterpreter createAMapletExpAssistant(); // // AMkBasicExpAssistantInterpreter createAMkBasicExpAssistant(); // // AMkTypeExpAssistantInterpreter createAMkTypeExpAssistant(); // // AMuExpAssistantInterpreter createAMuExpAssistant(); // ANarrowExpAssistantInterpreter createANarrowExpAssistant(); // // ANewExpAssistantInterpreter createANewExpAssistant(); APostOpExpAssistantInterpreter createAPostOpExpAssistant(); // ARecordModifierAssistantInterpreter createARecordModifierAssistant(); // // ASameBaseClassExpAssistantInterpreter createASameBaseClassExpAssistant(); // // ASameClassExpAssistantInterpreter createASameClassExpAssistant(); // ASeqCompSeqExpAssistantInterpreter createASeqCompSeqExpAssistant(); // ASeqEnumSeqExpAssistantInterpreter createASeqEnumSeqExpAssistant(); // // ASetCompSetExpAssistantInterpreter createASetCompSetExpAssistant(); // // ASetEnumSetExpAssistantInterpreter createASetEnumSetExpAssistant(); // // ASetRangeSetExpAssistantInterpreter createASetRangeSetExpAssistant(); // // ASubseqExpAssistantInterpreter createASubseqExpAssistant(); // // ATupleExpAssistantInterpreter createATupleExpAssistant(); // // AVariableExpAssistantInterpreter createAVariableExpAssistant(); PExpAssistantInterpreter createPExpAssistant(); // SBinaryExpAssistantInterpreter createSBinaryExpAssistant(); // // SMapExpAssistantInterpreter createSMapExpAssistant(); // // SSeqExpAssistantInterpreter createSSeqExpAssistant(); // // SSetExpAssistantInterpreter createSSetExpAssistant(); // // SUnaryExpAssistantInterpreter createSUnaryExpAssistant(); // module AModuleModulesAssistantInterpreter createAModuleModulesAssistant(); ModuleListAssistantInterpreter createModuleListAssistant(); // pattern // ABooleanPatternAssistantInterpreter createABooleanPatternAssistant(); // // ACharacterPatternAssistantInterpreter createACharacterPatternAssistant(); // // AConcatenationPatternAssistantInterpreter createAConcatenationPatternAssistant(); // // AExpressionPatternAssistantInterpreter createAExpressionPatternAssistant(); // // AIdentifierPatternAssistantInterpreter createAIdentifierPatternAssistant(); // // AIgnorePatternAssistantInterpreter createAIgnorePatternAssistant(); // // AIntegerPatternAssistantInterpreter createAIntegerPatternAssistant(); // // AMapPatternAssistantInterpreter createAMapPatternAssistant(); // AMapPatternMapletAssistantInterpreter createAMapPatternMapletAssistant(); // // AMapUnionPatternAssistantInterpreter createAMapUnionPatternAssistant(); // ANilPatternAssistantInterpreter createANilPatternAssistant(); // ARealPatternAssistantInterpreter createARealPatternAssistant(); // ARecordPatternAssistantInterpreter createARecordPatternAssistant(); // ASeqPatternAssistantInterpreter createASeqPatternAssistant(); // ASetBindAssistantInterpreter createASetBindAssistant(); // ASetMultipleBindAssistantInterpreter createASetMultipleBindAssistant(); // ASetPatternAssistantInterpreter createASetPatternAssistant(); // AStringPatternAssistantInterpreter createAStringPatternAssistant(); // ATuplePatternAssistantInterpreter createATuplePatternAssistant(); // ATypeBindAssistantInterpreter createATypeBindAssistant(); // ATypeMultipleBindAssistantInterpreter createATypeMultipleBindAssistant(); // AUnionPatternAssistantInterpreter createAUnionPatternAssistant(); PBindAssistantInterpreter createPBindAssistant(); PMultipleBindAssistantInterpreter createPMultipleBindAssistant(); PPatternAssistantInterpreter createPPatternAssistant(); //PPatternListAssistantInterpreter createPPatternListAssistant(); // statement // AAlwaysStmAssistantInterpreter createAAlwaysStmAssistant(); // // AAssignmentStmAssistantInterpreter createAAssignmentStmAssistant(); // // AAtomicStmAssistantInterpreter createAAtomicStmAssistant(); // // ACallObjectStatementAssistantInterpreter createACallObjectStatementAssistant(); // // ACallStmAssistantInterpreter createACallStmAssistant(); // ACaseAlternativeStmAssistantInterpreter createACaseAlternativeStmAssistant(); // ACasesStmAssistantInterpreter createACasesStmAssistant(); // // ACyclesStmAssistantInterpreter createACyclesStmAssistant(); // // ADurationStmAssistantInterpreter createADurationStmAssistant(); // // AElseIfStmAssistantInterpreter createAElseIfStmAssistant(); // // AExitStmAssistantInterpreter createAExitStmAssistant(); // // AForAllStmAssistantInterpreter createAForAllStmAssistant(); // // AForIndexStmAssistantInterpreter createAForIndexStmAssistant(); // // AForPatternBindStmAssitantInterpreter createAForPatternBindStmAssitant(); // // AIfStmAssistantInterpreter createAIfStmAssistant(); // // ALetBeStStmAssistantInterpreter createALetBeStStmAssistant(); // // AReturnStmAssistantInterpreter createAReturnStmAssistant(); // AStartStmAssistantInterpreter createAStartStmAssistant(); // ATixeStmAssistantInterpreter createATixeStmAssistant(); //ATixeStmtAlternativeAssistantInterpreter createATixeStmtAlternativeAssistant(); // ATrapStmAssistantInterpreter createATrapStmAssistant(); // AWhileStmAssistantInterpreter createAWhileStmAssistant(); PStmAssistantInterpreter createPStmAssistant(); // SLetDefStmAssistantInterpreter createSLetDefStmAssistant(); // type // ABooleanBasicTypeAssistantInterpreter createABooleanBasicTypeAssistant(); // // AInMapMapTypeAssistantInterpreter createAInMapMapTypeAssistant(); // // ANamedInvariantTypeAssistantInterpreter createANamedInvariantTypeAssistant(); // // AOptionalTypeAssistantInterpreter createAOptionalTypeAssistant(); // // AParameterTypeAssistantInterpreter createAParameterTypeAssistant(); // // AProductTypeAssistantInterpreter createAProductTypeAssistant(); // // AQuoteTypeAssistantInterpreter createAQuoteTypeAssistant(); // // ARecordInvariantTypeAssistantInterpreter createARecordInvariantTypeAssistant(); // // ASetTypeAssistantInterpreter createASetTypeAssistant(); // // AUnionTypeAssistantInterpreter createAUnionTypeAssistant(); PTypeAssistantInterpreter createPTypeAssistant(); // PTypeListAssistant createPTypeListAssistant(); // SBasicTypeAssistantInterpreter createSBasicTypeAssistant(); SInvariantTypeAssistantInterpreter createSInvariantTypeAssistant(); // SMapTypeAssistantInterpreter createSMapTypeAssistant(); /* visitors */ IAnswer<LexNameList> getOldNameCollector(); QuestionAnswerAdaptor<BindState, ValueList> getBindValuesCollector(); QuestionAnswerAdaptor<ObjectContext, ValueList> getValueCollector(); IAnswer<List<AIdentifierPattern>> getIdentifierPatternFinder(); IAnswer<Integer> getLengthFinder(); IAnswer<Boolean> getConstrainedPatternChecker(); QuestionAnswerAdaptor<AllNamedValuesLocator.Newquestion, List<NameValuePairList>> getAllNamedValuesLocator(); IQuestionAnswer<Context, NameValuePairList> getNamedValueLister(); IQuestionAnswer<Integer, PExp> getExpressionFinder(); IQuestionAnswer<ObjectContext, ValueList> getValuesDefinitionLocator(); IAnswer<Boolean> getTypeDefinitionChecker(); IAnswer<Boolean> getDefinitionRunTimeChecker(); IAnswer<Boolean> getDefintionValueChecker(); IAnswer<Boolean> getInstanceVariableChecker(); IQuestionAnswer<Integer, PStm> getDefinitionStatementFinder(); IQuestionAnswer<Context, TraceNode> getTraceExpander(); IQuestionAnswer<Integer, PExp> getStatementExpressionFinder(); IQuestionAnswer<Integer, PStm> getStatementFinder(); IQuestionAnswer<ObjectContext, ValueList> getExpressionValueCollector(); IQuestionAnswer<Integer, PExp> getExpExpressionFinder(); IAnswer<List<PExp>> getSubExpressionsLocator(); IQuestionAnswer<BindState, ValueList> getSingleBindValuesCollector(); IQuestionAnswer<ObjectContext, ValueList> getBindValueCollector(); IQuestionAnswer<Context, ValueList> getAllValuesCollector(); IQuestionAnswer<Context, PType> getAllConcreteTypeInstantiator(); }