Package: UsedMarker

UsedMarker

nameinstructionbranchcomplexitylinemethod
UsedMarker(ITypeCheckerAssistantFactory)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
caseAExternalDefinition(AExternalDefinition)
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
caseAImportedDefinition(AImportedDefinition)
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
caseAInheritedDefinition(AInheritedDefinition)
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
caseARenamedDefinition(ARenamedDefinition)
M: 0 C: 14
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
defaultPDefinition(PDefinition)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%

Coverage

1: /*
2: * #%~
3: * The VDM Type Checker
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.typechecker.utilities;
23:
24: import org.overture.ast.analysis.AnalysisAdaptor;
25: import org.overture.ast.analysis.AnalysisException;
26: import org.overture.ast.definitions.AExternalDefinition;
27: import org.overture.ast.definitions.AImportedDefinition;
28: import org.overture.ast.definitions.AInheritedDefinition;
29: import org.overture.ast.definitions.ARenamedDefinition;
30: import org.overture.ast.definitions.PDefinition;
31: import org.overture.typechecker.assistant.ITypeCheckerAssistantFactory;
32:
33: /**
34: * This class implements a way to Mark used nodes from the AST.
35: *
36: * @author kel
37: */
38:
39: public class UsedMarker extends AnalysisAdaptor
40: {
41:
42:         protected ITypeCheckerAssistantFactory af;
43:
44:         public UsedMarker(ITypeCheckerAssistantFactory af)
45:         {
46:                 this.af = af;
47:         }
48:
49:         @Override
50:         public void caseAExternalDefinition(AExternalDefinition node)
51:                         throws AnalysisException
52:         {
53:
54:                 node.setUsed(true);
55:                 node.getState().apply(THIS);
56:         }
57:
58:         @Override
59:         public void caseAImportedDefinition(AImportedDefinition node)
60:                         throws AnalysisException
61:         {
62:                 node.setUsed(true);
63:                 node.getDef().apply(THIS);
64:         }
65:
66:         @Override
67:         public void caseAInheritedDefinition(AInheritedDefinition node)
68:                         throws AnalysisException
69:         {
70:                 node.setUsed(true);
71:                 node.getSuperdef().apply(THIS);
72:         }
73:
74:         @Override
75:         public void caseARenamedDefinition(ARenamedDefinition node)
76:                         throws AnalysisException
77:         {
78:
79:                 node.setUsed(true);
80:                 node.getDef().apply(THIS);
81:                 node.setUsed(true);
82:         }
83:
84:         @Override
85:         public void defaultPDefinition(PDefinition node) throws AnalysisException
86:         {
87:                 node.setUsed(true);
88:         }
89:
90: }