1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
package org.qedeq.kernel.bo.parser; |
17 |
|
|
18 |
|
import java.util.ArrayList; |
19 |
|
import java.util.List; |
20 |
|
|
21 |
|
|
22 |
|
@link |
23 |
|
|
24 |
|
|
25 |
|
@version |
26 |
|
@author |
27 |
|
|
|
|
| 93.2% |
Uncovered Elements: 5 (73) |
Complexity: 23 |
Complexity Density: 0.61 |
|
28 |
|
public class SimpleMathParser extends MathParser { |
29 |
|
|
30 |
|
|
31 |
|
private static final String SEPARATORS = "()[],{}"; |
32 |
|
|
33 |
|
|
34 |
|
|
35 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
36 |
30
|
public SimpleMathParser() {... |
37 |
30
|
super(); |
38 |
|
|
39 |
|
|
40 |
|
|
41 |
|
|
42 |
|
|
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
47 |
|
|
48 |
|
|
49 |
|
|
50 |
|
|
51 |
|
|
52 |
|
|
53 |
|
|
54 |
|
|
55 |
|
} |
56 |
|
|
|
|
| 97.4% |
Uncovered Elements: 1 (39) |
Complexity: 13 |
Complexity Density: 0.62 |
|
57 |
1537
|
protected final String readToken() {... |
58 |
1537
|
int lines = 0; |
59 |
2575
|
while (getChar() != -1 && Character.isWhitespace((char) getChar())) { |
60 |
1038
|
if ('\n' == (char) getChar()) { |
61 |
218
|
lines++; |
62 |
|
} |
63 |
1038
|
readChar(); |
64 |
|
} |
65 |
1537
|
if (lines > 1) { |
66 |
13
|
return ""; |
67 |
|
} |
68 |
1524
|
if (eof()) { |
69 |
132
|
return null; |
70 |
|
} |
71 |
1392
|
if (SEPARATORS.indexOf(getChar()) >= 0) { |
72 |
265
|
return "" + (char) readChar(); |
73 |
|
} |
74 |
1127
|
final StringBuffer token = new StringBuffer(); |
75 |
2172
|
while (!eof() && !Character.isWhitespace((char) getChar()) |
76 |
|
&& SEPARATORS.indexOf(getChar()) < 0) { |
77 |
1267
|
token.append((char) readChar()); |
78 |
1267
|
if (null != getOperator(token.toString())) { |
79 |
252
|
if (getChar() >= 0) { |
80 |
252
|
final char c = (char) getChar(); |
81 |
252
|
if (null != getOperator(token.toString() + c)) { |
82 |
30
|
continue; |
83 |
|
} |
84 |
|
} |
85 |
222
|
break; |
86 |
|
} |
87 |
|
} |
88 |
1127
|
return token.toString(); |
89 |
|
} |
90 |
|
|
|
|
| 85.7% |
Uncovered Elements: 2 (14) |
Complexity: 4 |
Complexity Density: 0.5 |
|
91 |
1840
|
protected final Operator getOperator(final String token) {... |
92 |
1840
|
Operator result = null; |
93 |
1840
|
if (token == null) { |
94 |
0
|
return result; |
95 |
|
} |
96 |
22964
|
for (int i = 0; i < getOperators().size(); i++) { |
97 |
21596
|
if (token.equals(((Operator) getOperators().get(i)).getStartSymbol())) { |
98 |
472
|
result = (Operator) getOperators().get(i); |
99 |
472
|
break; |
100 |
|
} |
101 |
|
} |
102 |
1840
|
return result; |
103 |
|
} |
104 |
|
|
|
|
| 84.6% |
Uncovered Elements: 2 (13) |
Complexity: 4 |
Complexity Density: 0.57 |
|
105 |
256
|
protected final List getOperators(final String token) {... |
106 |
256
|
final List result = new ArrayList(); |
107 |
256
|
if (token == null) { |
108 |
0
|
return result; |
109 |
|
} |
110 |
3840
|
for (int i = 0; i < getOperators().size(); i++) { |
111 |
3584
|
if (token.equals(((Operator) getOperators().get(i)).getStartSymbol())) { |
112 |
32
|
result.add(getOperators().get(i)); |
113 |
|
} |
114 |
|
} |
115 |
256
|
return result; |
116 |
|
} |
117 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
118 |
320
|
protected boolean eot(final String token) {... |
119 |
320
|
return token == null || token.trim().length() == 0; |
120 |
|
} |
121 |
|
|
122 |
|
} |