Changeset 7055
- Timestamp:
- 11/10/16 10:22:52 (8 years ago)
- Location:
- FCSSimpleEndpoint/trunk/src/main/java/eu/clarin/sru/server/fcs/parser
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
FCSSimpleEndpoint/trunk/src/main/java/eu/clarin/sru/server/fcs/parser/Expression.java
r6935 r7055 132 132 if (regex_flags != null) { 133 133 sb.append("/"); 134 if (regex_flags.contains(RegexFlag.CASE_INSENSIT VE)) {134 if (regex_flags.contains(RegexFlag.CASE_INSENSITIVE)) { 135 135 sb.append("i"); 136 136 } 137 if (regex_flags.contains(RegexFlag.CASE_SENSIT VE)) {137 if (regex_flags.contains(RegexFlag.CASE_SENSITIVE)) { 138 138 sb.append("I"); 139 139 } -
FCSSimpleEndpoint/trunk/src/main/java/eu/clarin/sru/server/fcs/parser/QueryParser.java
r6935 r7055 580 580 /* $FALL-THROUGH$ */ 581 581 case 'c': 582 flags.add(RegexFlag.CASE_INSENSIT VE);582 flags.add(RegexFlag.CASE_INSENSITIVE); 583 583 break; 584 584 case 'I': 585 585 /* $FALL-THROUGH$ */ 586 586 case 'C': 587 flags.add(RegexFlag.CASE_SENSIT VE);587 flags.add(RegexFlag.CASE_SENSITIVE); 588 588 break; 589 589 case 'l': 590 590 flags.add(RegexFlag.LITERAL_MATCHING); 591 break; 591 592 case 'd': 592 593 flags.add(RegexFlag.IGNORE_DIACRITICS); … … 594 595 default: 595 596 throw new ExpressionTreeBuilderException( 596 "un expected regexflag: " + s.charAt(i));597 "unknown regex modifier flag: " + s.charAt(i)); 597 598 } // switch 598 599 } 599 // FIXME: validate flags? most combinations are mutually exclusive 600 601 // validate regex flags 602 if (flags.contains(RegexFlag.CASE_SENSITIVE) && 603 flags.contains(RegexFlag.CASE_INSENSITIVE)) { 604 throw new ExpressionTreeBuilderException( 605 "invalid combination of regex modifier flags: " + 606 "'i' or 'c' and 'I' or 'C' are mutually exclusive"); 607 } 608 if (flags.contains(RegexFlag.LITERAL_MATCHING) && 609 (flags.contains(RegexFlag.CASE_SENSITIVE) || 610 flags.contains(RegexFlag.CASE_INSENSITIVE) || 611 flags.contains(RegexFlag.IGNORE_DIACRITICS))) { 612 throw new ExpressionTreeBuilderException( 613 "invalid combination of regex modifier flags: 'l' " + 614 "is mutually exclusive with 'i', 'c', 'I', 'C' or 'd'"); 615 } 616 600 617 stack.push(flags); 601 618 } else { -
FCSSimpleEndpoint/trunk/src/main/java/eu/clarin/sru/server/fcs/parser/RegexFlag.java
r6935 r7055 25 25 * case insensitive. 26 26 */ 27 CASE_INSENSIT VE,27 CASE_INSENSITIVE, 28 28 /** 29 29 * case sensitive. 30 30 */ 31 CASE_SENSIT VE,31 CASE_SENSITIVE, 32 32 /** 33 33 * match exactly (= literally).
Note: See TracChangeset
for help on using the changeset viewer.