aboutsummaryrefslogtreecommitdiff
path: root/src/jdk/nashorn/internal/runtime/regexp/RegExp.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jdk/nashorn/internal/runtime/regexp/RegExp.java')
-rw-r--r--src/jdk/nashorn/internal/runtime/regexp/RegExp.java163
1 files changed, 0 insertions, 163 deletions
diff --git a/src/jdk/nashorn/internal/runtime/regexp/RegExp.java b/src/jdk/nashorn/internal/runtime/regexp/RegExp.java
deleted file mode 100644
index ac57c9fb..00000000
--- a/src/jdk/nashorn/internal/runtime/regexp/RegExp.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package jdk.nashorn.internal.runtime.regexp;
-
-import java.util.regex.MatchResult;
-import jdk.nashorn.internal.runtime.BitVector;
-import jdk.nashorn.internal.runtime.ECMAErrors;
-import jdk.nashorn.internal.runtime.ParserException;
-
-/**
- * This is the base class for representing a parsed regular expression.
- *
- * Instances of this class are created by a {@link RegExpFactory}.
- */
-public abstract class RegExp {
-
- /** Pattern string. */
- private final String source;
-
- /** Global search flag for this regexp.*/
- private boolean global;
-
- /** Case insensitive flag for this regexp */
- private boolean ignoreCase;
-
- /** Multi-line flag for this regexp */
- private boolean multiline;
-
- /** BitVector that keeps track of groups in negative lookahead */
- protected BitVector groupsInNegativeLookahead;
-
- /**
- * Constructor.
- *
- * @param source the source string
- * @param flags the flags string
- */
- protected RegExp(final String source, final String flags) {
- this.source = source.length() == 0 ? "(?:)" : source;
- for (int i = 0; i < flags.length(); i++) {
- final char ch = flags.charAt(i);
- switch (ch) {
- case 'g':
- if (this.global) {
- throwParserException("repeated.flag", "g");
- }
- this.global = true;
- break;
- case 'i':
- if (this.ignoreCase) {
- throwParserException("repeated.flag", "i");
- }
- this.ignoreCase = true;
- break;
- case 'm':
- if (this.multiline) {
- throwParserException("repeated.flag", "m");
- }
- this.multiline = true;
- break;
- default:
- throwParserException("unsupported.flag", Character.toString(ch));
- }
- }
- }
-
- /**
- * Get the source pattern of this regular expression.
- *
- * @return the source string
- */
- public String getSource() {
- return source;
- }
-
- /**
- * Set the global flag of this regular expression to {@code global}.
- *
- * @param global the new global flag
- */
- public void setGlobal(final boolean global) {
- this.global = global;
- }
-
- /**
- * Get the global flag of this regular expression.
- *
- * @return the global flag
- */
- public boolean isGlobal() {
- return global;
- }
-
- /**
- * Get the ignore-case flag of this regular expression.
- *
- * @return the ignore-case flag
- */
- public boolean isIgnoreCase() {
- return ignoreCase;
- }
-
- /**
- * Get the multiline flag of this regular expression.
- *
- * @return the multiline flag
- */
- public boolean isMultiline() {
- return multiline;
- }
-
- /**
- * Get a bitset indicating which of the groups in this regular expression are inside a negative lookahead.
- *
- * @return the groups-in-negative-lookahead bitset
- */
- public BitVector getGroupsInNegativeLookahead() {
- return groupsInNegativeLookahead;
- }
-
- /**
- * Match this regular expression against {@code str}, starting at index {@code start}
- * and return a {@link MatchResult} with the result.
- *
- * @param str the string
- * @return the matcher
- */
- public abstract RegExpMatcher match(String str);
-
- /**
- * Throw a regexp parser exception.
- *
- * @param key the message key
- * @param str string argument
- * @throws jdk.nashorn.internal.runtime.ParserException unconditionally
- */
- protected static void throwParserException(final String key, final String str) throws ParserException {
- throw new ParserException(ECMAErrors.getMessage("parser.error.regex." + key, str));
- }
-}