Package: LexNameTokenAssistant

LexNameTokenAssistant

nameinstructionbranchcomplexitylinemethod
LexNameTokenAssistant(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%
isEqual(ILexNameToken, Object)
M: 0 C: 45
100%
M: 2 C: 14
88%
M: 2 C: 7
78%
M: 0 C: 12
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;
23:
24: import org.overture.ast.assistant.IAstAssistant;
25: import org.overture.ast.intf.lex.ILexNameToken;
26: import org.overture.typechecker.assistant.ITypeCheckerAssistantFactory;
27:
28: public class LexNameTokenAssistant implements IAstAssistant
29: {
30:         public ITypeCheckerAssistantFactory af;
31:
32:         public LexNameTokenAssistant(ITypeCheckerAssistantFactory af)
33:         {
34:                 this.af = af;
35:         }
36:
37:         public boolean isEqual(ILexNameToken token, Object other)
38:         {
39:•                if (!(other instanceof ILexNameToken))
40:                 {
41:                         return false;
42:                 }
43:
44:                 ILexNameToken lother = (ILexNameToken) other;
45:
46: //                if (token.getTypeQualifier() != null
47: //                                && lother.getTypeQualifier() != null)
48: //                {
49: //                        if (!af.getTypeComparator().compatible(token.getTypeQualifier(), lother.getTypeQualifier()))
50: //                        {
51: //                                return false;
52: //                        }
53: //                } else if (token.getTypeQualifier() != null
54: //                                && lother.getTypeQualifier() == null
55: //                                || token.getTypeQualifier() == null
56: //                                && lother.getTypeQualifier() != null)
57: //                {
58: //                        return false;
59: //                }
60: //
61: //                return token.matches(lother);
62:
63:•                if (!token.matches(lother))
64:                 {
65:                         return false;
66:                 }
67:•                else if (token.getTypeQualifier() != null
68:•                                && lother.getTypeQualifier() != null)
69:                 {
70:                         return af.getTypeComparator().compatible(token.getTypeQualifier(), lother.getTypeQualifier());
71:                 }
72:                 else
73:                 {
74:•                        return !(token.getTypeQualifier() != null
75:•                                        && lother.getTypeQualifier() == null
76:•                                        || token.getTypeQualifier() == null
77:•                                        && lother.getTypeQualifier() != null);
78:                 }
79:         }
80: }