Mercurial > hg > Members > kono > jpf-core
comparison src/classes/java/util/regex/Matcher.java @ 0:61d41facf527
initial v8 import (history reset)
author | Peter Mehlitz <Peter.C.Mehlitz@nasa.gov> |
---|---|
date | Fri, 23 Jan 2015 10:14:01 -0800 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:61d41facf527 |
---|---|
1 /* | |
2 * Copyright (C) 2014, United States Government, as represented by the | |
3 * Administrator of the National Aeronautics and Space Administration. | |
4 * All rights reserved. | |
5 * | |
6 * The Java Pathfinder core (jpf-core) platform is licensed under the | |
7 * Apache License, Version 2.0 (the "License"); you may not use this file except | |
8 * in compliance with the License. You may obtain a copy of the License at | |
9 * | |
10 * http://www.apache.org/licenses/LICENSE-2.0. | |
11 * | |
12 * Unless required by applicable law or agreed to in writing, software | |
13 * distributed under the License is distributed on an "AS IS" BASIS, | |
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
15 * See the License for the specific language governing permissions and | |
16 * limitations under the License. | |
17 */ | |
18 | |
19 package java.util.regex; | |
20 | |
21 /** | |
22 * model of a regular expression matcher, to save memory and execution time | |
23 */ | |
24 public class Matcher { | |
25 | |
26 // this is the same trick like java.text.Format - avoiding a native | |
27 // memory leak by means of overwriting a JPF state tracked index value | |
28 // (well, it's still a leak since it never gets recycled unless we add a | |
29 // finalizer, but it should be much less serious) | |
30 static int nInstances; | |
31 private int id = nInstances++; // just for peer implementation purposes | |
32 | |
33 Pattern pattern; | |
34 String input; // that's an approximation (don't use CharSequence on the native side) | |
35 | |
36 Matcher() { | |
37 } | |
38 | |
39 Matcher (Pattern pattern, CharSequence inp){ | |
40 this.pattern = pattern; | |
41 this.input = inp.toString(); | |
42 | |
43 register(); | |
44 } | |
45 | |
46 public Pattern pattern() { | |
47 return pattern; | |
48 } | |
49 | |
50 native void register(); | |
51 | |
52 public native Matcher reset(); | |
53 | |
54 public String group() { | |
55 return group(0); | |
56 } | |
57 | |
58 public native String group(int group); | |
59 | |
60 public native int groupCount(); | |
61 | |
62 public Matcher reset(CharSequence inp) { | |
63 this.input = inp.toString(); | |
64 return reset(); | |
65 } | |
66 | |
67 public native boolean matches(); | |
68 | |
69 public native boolean find(); | |
70 | |
71 public native boolean lookingAt(); | |
72 | |
73 public int start() { | |
74 return start(0); | |
75 } | |
76 | |
77 public native int start(int group); | |
78 | |
79 public int end() { | |
80 return end(0); | |
81 } | |
82 | |
83 public native int end(int group); | |
84 | |
85 public native boolean hasTransparentBounds(); | |
86 | |
87 public native Matcher useTransparentBounds(boolean b); | |
88 | |
89 public native boolean hasAnchoringBounds(); | |
90 | |
91 public native Matcher useAnchoringBounds(boolean b); | |
92 | |
93 public native int regionStart(); | |
94 | |
95 public native int regionEnd(); | |
96 | |
97 public native Matcher region(int start, int end); | |
98 | |
99 public static native String quoteReplacement(String abc); | |
100 | |
101 public native String replaceAll(String replacement); | |
102 | |
103 public native String replaceFirst(String replacement); | |
104 | |
105 @Override | |
106 public native String toString(); | |
107 | |
108 public native boolean hitEnd(); | |
109 | |
110 public native boolean requireEnd(); | |
111 | |
112 // TODO public native MatchResult toMatchResult(); | |
113 // TODO public native StringBuffer appendTail(StringBuffer sb); | |
114 // TODO public native Matcher appendReplacement(StringBuffer sb, String replacement); | |
115 } |