MCPcopy Create free account
hub / github.com/google/re2j / appendTo

Method appendTo

java/com/google/re2j/Regexp.java:106–269  ·  view source on GitHub ↗
(StringBuilder out)

Source from the content-addressed store, hash-verified

104
105 // appendTo() appends the Perl syntax for |this| regular expression to |out|.
106 private void appendTo(StringBuilder out) {
107 switch (op) {
108 case NO_MATCH:
109 out.append("[^\\x00-\\x{10FFFF}]");
110 break;
111 case EMPTY_MATCH:
112 out.append("(?:)");
113 break;
114 case STAR:
115 case PLUS:
116 case QUEST:
117 case REPEAT:
118 {
119 Regexp sub = subs[0];
120 if (sub.op.ordinal() > Op.CAPTURE.ordinal()
121 || (sub.op == Op.LITERAL && sub.runes.length > 1)) {
122 out.append("(?:");
123 sub.appendTo(out);
124 out.append(')');
125 } else {
126 sub.appendTo(out);
127 }
128 switch (op) {
129 case STAR:
130 out.append('*');
131 break;
132 case PLUS:
133 out.append('+');
134 break;
135 case QUEST:
136 out.append('?');
137 break;
138 case REPEAT:
139 out.append('{').append(min);
140 if (min != max) {
141 out.append(',');
142 if (max >= 0) {
143 out.append(max);
144 }
145 }
146 out.append('}');
147 break;
148 }
149 if ((flags & RE2.NON_GREEDY) != 0) {
150 out.append('?');
151 }
152 break;
153 }
154 case CONCAT:
155 for (Regexp sub : subs) {
156 if (sub.op == Op.ALTERNATE) {
157 out.append("(?:");
158 sub.appendTo(out);
159 out.append(')');
160 } else {
161 sub.appendTo(out);
162 }
163 }

Callers 1

toStringMethod · 0.95

Calls 4

escapeRuneMethod · 0.95
quoteIfHyphenMethod · 0.95
appendMethod · 0.80
isEmptyMethod · 0.80

Tested by

no test coverage detected