EMMA Coverage Report (generated Fri Feb 14 08:28:31 UTC 2014)
[all classes][org.qedeq.kernel.bo.parser]

COVERAGE SUMMARY FOR SOURCE FILE [SimpleMathParser.java]

nameclass, %method, %block, %line, %
SimpleMathParser.java100% (1/1)100% (5/5)98%  (178/182)95%  (37/39)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SimpleMathParser100% (1/1)100% (5/5)98%  (178/182)95%  (37/39)
getOperator (String): Operator 100% (1/1)94%  (31/33)88%  (7/8)
getOperators (String): List 100% (1/1)94%  (33/35)86%  (6/7)
SimpleMathParser (): void 100% (1/1)100% (3/3)100% (2/2)
eot (String): boolean 100% (1/1)100% (10/10)100% (1/1)
readToken (): String 100% (1/1)100% (101/101)100% (21/21)

1/* This file is part of the project "Hilbert II" - http://www.qedeq.org
2 *
3 * Copyright 2000-2014,  Michael Meyling <mime@qedeq.org>.
4 *
5 * "Hilbert II" is free software; you can redistribute
6 * it and/or modify it under the terms of the GNU General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15 
16package org.qedeq.kernel.bo.parser;
17 
18import java.util.ArrayList;
19import java.util.List;
20 
21/**
22 * Parse term or formula data into {@link org.qedeq.kernel.bo.parser.Term}s.
23 * This parser uses simple ASCII text operators.
24 *
25 * @version $Revision: 1.1 $
26 * @author  Michael Meyling
27 */
28public class SimpleMathParser extends MathParser {
29 
30    /** Characters that are always tokens itself. */
31    private static final String SEPARATORS = "()[],{}";
32 
33    /**
34     * Constructor.
35     */
36    public SimpleMathParser() {
37        super();
38/*
39        operators.add(new Operator("~",      "NOT",   110, 1, 1, 1));
40        operators.add(new Operator("-",      "NOT",   110, 1, 1, 1));
41        operators.add(new Operator("&",      "AND",   100, 0, 2));
42        operators.add(new Operator("|",      "OR",     90, 0, 2));
43//        operators.put("v",      new Operator("v",      "OR",     90, 0, 2));
44        operators.add(new Operator("->",     "IMPL",   80, 0, 2, 2));
45        operators.add(new Operator("=>",     "IMPL",   80, 0, 2, 2));
46        operators.add(new Operator("<->",    "EQUI",   80, 0, 2));
47        operators.add(new Operator("<=>",    "EQUI",   80, 0, 2));
48        operators.add(new Operator("all",    "ALL",    40, 1, 2, 3));
49        operators.add(new Operator("exists", "EXISTS", 40, 1, 2, 3));
50        operators.add(new Operator("in",     "IN",    200, 0, 2, 2));
51        operators.add(new Operator("=",      "EQUAL", 200, 0, 2));
52        operators.add(new Operator("{", ",", "}", "SET", 200, 0));
53        operators.add(new Operator("{", ":", "}", "SETPROP", 200, 2, 2));
54*/
55    }
56 
57    protected final String readToken() {
58        int lines = 0;
59        while (getChar() != -1 && Character.isWhitespace((char) getChar())) {
60            if ('\n' == (char) getChar()) {
61                lines++;
62            }
63            readChar();
64        }
65        if (lines > 1) {
66            return "";
67        }
68        if (eof()) {
69            return null;
70        }
71        if (SEPARATORS.indexOf(getChar()) >= 0) {
72            return "" + (char) readChar();
73        }
74        final StringBuffer token = new StringBuffer();
75        while (!eof() && !Character.isWhitespace((char) getChar())
76                && SEPARATORS.indexOf(getChar()) < 0) {
77            token.append((char) readChar());
78            if (null != getOperator(token.toString())) {
79                if (getChar() >= 0) {
80                    final char c = (char) getChar();
81                    if (null != getOperator(token.toString() + c)) {
82                        continue;
83                    }
84                }
85                break;
86            }
87        }
88        return token.toString();
89    }
90 
91    protected final Operator getOperator(final String token) {
92        Operator result = null;
93        if (token == null) {
94            return result;
95        }
96        for (int i = 0; i < getOperators().size(); i++) {
97            if (token.equals(((Operator) getOperators().get(i)).getStartSymbol())) {
98                result = (Operator) getOperators().get(i);
99                break;
100            }
101        }
102        return result;
103    }
104 
105    protected final List getOperators(final String token) {
106        final List result = new ArrayList();
107        if (token == null) {
108            return result;
109        }
110        for (int i = 0; i < getOperators().size(); i++) {
111            if (token.equals(((Operator) getOperators().get(i)).getStartSymbol())) {
112                result.add(getOperators().get(i));
113            }
114        }
115        return result;
116    }
117 
118    protected boolean eot(final String token) {
119        return token == null || token.trim().length() == 0;
120    }
121 
122}

[all classes][org.qedeq.kernel.bo.parser]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov