Package: QuoteRule

QuoteRule

nameinstructionbranchcomplexitylinemethod
QuoteRule(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: 70 C: 0
0%
M: 18 C: 0
0%
M: 10 C: 0
0%
M: 22 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 QuoteRule implements IRule
30: {
31:         public static final int EOF = -1;
32:
33:         IToken fToken = null;
34:
35:
36:         public QuoteRule( IToken token)
37:         {
38:                 fToken = token;
39:         }
40:
41:         public IToken evaluate(ICharacterScanner scanner)
42:         {
43:                 StringBuffer sb = new StringBuffer();
44:                 int c = -1;
45:
46:                 int readCount = 0;
47:                 
48:                 
49:                 c = scanner.read();
50:•                if (c == EOF)
51:                 {
52:                         scanner.unread();
53:                         return Token.EOF;
54:•                }else if(c != '<')
55:                 {
56:                         scanner.unread();
57:                         return Token.UNDEFINED;
58:                 }
59:                 
60:                 
61:                 while (true)
62:                 {
63:                         c = scanner.read();
64:•                        if (c == EOF)
65:                         {
66:                                 scanner.unread();
67:                                 return Token.EOF;
68:                         }
69:                         sb.append((char) c);
70:                         readCount++;
71:•                        if (!Character.isJavaIdentifierStart(c)&& c!='<' && c!='>' && !Character.isDigit(c))
72:                         {
73:
74:•                                for (int j = 0; j < readCount; j++)
75:                                 {
76:                                         scanner.unread();
77:                                 }
78:
79:                                 return Token.UNDEFINED;
80:
81:•                        }else if( c=='>')
82:                         {
83:                                 return fToken;
84:                         }
85:                 }
86:
87:         
88:
89:         }
90: }