Ignore:
Timestamp:
2012-01-18T20:19:02+01:00 (12 years ago)
Author:
bastiK
Message:

applied #7178 - Allow plugins to register search operators (patch by joshdoe)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/search/PushbackTokenizer.java

    r4346 r4817  
    4848
    4949    public enum Token {
    50         NOT(marktr("<not>")), OR(marktr("<or>")), LEFT_PARENT(marktr("<left parent>")),
     50        NOT(marktr("<not>")), OR(marktr("<or>")), XOR(marktr("<xor>")), LEFT_PARENT(marktr("<left parent>")),
    5151        RIGHT_PARENT(marktr("<right parent>")), COLON(marktr("<colon>")), EQUALS(marktr("<equals>")),
    5252        KEY(marktr("<key>")), QUESTION_MARK(marktr("<question mark>")),
     
    7474    }
    7575
    76     private static final List<Character> specialChars = Arrays.asList(new Character[] {'"', ':', '(', ')', '|', '=', '?'});
     76    private static final List<Character> specialChars = Arrays.asList(new Character[] {'"', ':', '(', ')', '|', '^', '=', '?'});
    7777    private static final List<Character> specialCharsQuoted = Arrays.asList(new Character[] {'"'});
    7878
     
    102102     * : for an key. The value is the next token
    103103     * | for "OR"
     104     * ^ for "XOR"
    104105     * ' ' for anything else.
    105106     * @return The next token in the stream.
     
    134135            getChar();
    135136            return Token.OR;
     137        case '^':
     138            getChar();
     139            return Token.XOR;
    136140        case '&':
    137141            getChar();
     
    156160            if ("or".equalsIgnoreCase(currentText))
    157161                return Token.OR;
    158             if ("and".equalsIgnoreCase(currentText))
     162            else if ("xor".equalsIgnoreCase(currentText))
     163                return Token.XOR;
     164            else if ("and".equalsIgnoreCase(currentText))
    159165                return nextToken();
    160166            // try parsing number
Note: See TracChangeset for help on using the changeset viewer.