Package: TupleSelectRule

TupleSelectRule

nameinstructionbranchcomplexitylinemethod
TupleSelectRule(IToken)
M: 9 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
evaluate(ICharacterScanner)
M: 60 C: 0
0%
M: 14 C: 0
0%
M: 8 C: 0
0%
M: 23 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*
2: * #%~
3: * org.overture.ide.ui
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.ide.ui.editor.syntax;
23:
24: import org.eclipse.jface.text.rules.ICharacterScanner;
25: import org.eclipse.jface.text.rules.IRule;
26: import org.eclipse.jface.text.rules.IToken;
27: import org.eclipse.jface.text.rules.Token;
28:
29: public class TupleSelectRule implements IRule
30: {
31:
32:         public static final int EOF = -1;
33:
34:         IToken fToken = null;
35:
36:         public TupleSelectRule(IToken token)
37:         {
38:                 fToken = token;
39:         }
40:
41:         public IToken evaluate(ICharacterScanner scanner)
42:         {
43:                 int c = scanner.read();
44:•                if (c == EOF)
45:                 {
46:                         scanner.unread();
47:                         return Token.EOF;
48:                 }
49:
50:•                if (c == '.')
51:                 {
52:                         c = scanner.read();
53:•                        if (c == EOF)
54:                         {
55:                                 scanner.unread();
56:                                 return Token.EOF;
57:•                        } else if (c != '#')
58:                         {
59:                                 scanner.unread();
60:                                 return Token.UNDEFINED;
61:                         }
62:                         int digitCount = 0;
63:•                        while (Character.isDigit((c = scanner.read())))
64:                         {
65:                                 digitCount++;
66:                         }
67:                         
68:                         boolean followedBySpace = Character.isWhitespace((char)c);
69:                         
70:                         
71:                         scanner.unread(); //last one read in while
72:•                        if(digitCount==0)
73:                         {
74:                                 scanner.unread();// #
75:•                        }else if(followedBySpace)
76:                         {
77:                                 return fToken;
78:                         }
79:                 }
80:
81:                 scanner.unread();// .
82:                 return Token.UNDEFINED;
83:         }
84: }
85: