Package: AbstractLanguageIterator

AbstractLanguageIterator

nameinstructionbranchcomplexitylinemethod
AbstractLanguageIterator(TransAssistantIR, IterationVarPrefixes)
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%

Coverage

1: /*
2: * #%~
3: * VDM Code Generator
4: * %%
5: * Copyright (C) 2008 - 2014 Overture
6: * %%
7: * This program is free software: you can redistribute it and/or modify
8: * it under the terms of the GNU General Public License as
9: * published by the Free Software Foundation, either version 3 of the
10: * License, or (at your option) any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public
18: * License along with this program. If not, see
19: * <http://www.gnu.org/licenses/gpl-3.0.html>.
20: * #~%
21: */
22: package org.overture.codegen.trans.iterator;
23:
24: import java.util.List;
25:
26: import org.overture.codegen.ir.SExpIR;
27: import org.overture.codegen.ir.SPatternIR;
28: import org.overture.codegen.ir.analysis.AnalysisException;
29: import org.overture.codegen.ir.declarations.AVarDeclIR;
30: import org.overture.codegen.ir.expressions.AIdentifierVarExpIR;
31: import org.overture.codegen.ir.statements.ALocalPatternAssignmentStmIR;
32: import org.overture.codegen.trans.IterationVarPrefixes;
33: import org.overture.codegen.trans.assistants.TransAssistantIR;
34:
35: public abstract class AbstractLanguageIterator implements ILanguageIterator
36: {
37:         protected TransAssistantIR transAssistant;
38:         protected IterationVarPrefixes iteVarPrefixes;
39:
40:         public AbstractLanguageIterator(TransAssistantIR transformationAssistant,
41:                         IterationVarPrefixes iteVarPrefixes)
42:         {
43:                 this.transAssistant = transformationAssistant;
44:                 this.iteVarPrefixes = iteVarPrefixes;
45:         }
46:
47:         @Override
48:         abstract public AVarDeclIR getForLoopInit(AIdentifierVarExpIR setVar,
49:                         List<SPatternIR> patterns, SPatternIR pattern);
50:
51:         @Override
52:         abstract public SExpIR getForLoopCond(AIdentifierVarExpIR setVar,
53:                         List<SPatternIR> patterns, SPatternIR pattern)
54:                         throws AnalysisException;
55:
56:         @Override
57:         abstract public SExpIR getForLoopInc(AIdentifierVarExpIR setVar,
58:                         List<SPatternIR> patterns, SPatternIR pattern);
59:
60:         @Override
61:         abstract public AVarDeclIR getNextElementDeclared(
62:                         AIdentifierVarExpIR setVar, List<SPatternIR> patterns,
63:                         SPatternIR pattern) throws AnalysisException;
64:
65:         @Override
66:         abstract public ALocalPatternAssignmentStmIR getNextElementAssigned(
67:                         AIdentifierVarExpIR setVar, List<SPatternIR> patterns,
68:                         SPatternIR pattern, AVarDeclIR successVarDecl,
69:                         AVarDeclIR nextElementDecl) throws AnalysisException;
70: }