Changeset 232718 in webkit for trunk/Source/JavaScriptCore/yarr/YarrInterpreter.cpp
- Timestamp:
- Jun 11, 2018, 9:32:21 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/yarr/YarrInterpreter.cpp
r229125 r232718 2066 2066 ASSERT(currentCountAlreadyChecked >= term.inputPosition); 2067 2067 unsigned delegateEndInputOffset = currentCountAlreadyChecked - term.inputPosition; 2068 atomParenthesesTerminalBegin(term.parentheses.subpatternId, term.capture(), disjunctionAlreadyCheckedCount + delegateEndInputOffset, term.frameLocation, term.frameLocation + YarrStackSpaceForBackTrackInfoParentheses Once);2068 atomParenthesesTerminalBegin(term.parentheses.subpatternId, term.capture(), disjunctionAlreadyCheckedCount + delegateEndInputOffset, term.frameLocation, term.frameLocation + YarrStackSpaceForBackTrackInfoParenthesesTerminal); 2069 2069 emitDisjunction(term.parentheses.disjunction, currentCountAlreadyChecked, disjunctionAlreadyCheckedCount); 2070 2070 atomParenthesesTerminalEnd(delegateEndInputOffset, term.frameLocation, term.quantityMinCount, term.quantityMaxCount, term.quantityType); … … 2163 2163 }; 2164 2164 2165 auto dumpFrameLocation = [&](ByteTerm& term) { 2166 out.printf(" frameLocation %u", term.frameLocation); 2167 }; 2168 2165 2169 auto dumpCharacter = [&](ByteTerm& term) { 2166 2170 out.print(" "); … … 2184 2188 if (term.alternative.onceThrough) 2185 2189 out.print(" onceThrough"); 2190 dumpFrameLocation(term); 2186 2191 break; 2187 2192 case ByteTerm::TypeBodyAlternativeDisjunction: 2188 2193 outputTermIndexAndNest(idx, nesting - 1); 2189 2194 out.print("BodyAlternativeDisjunction"); 2195 dumpFrameLocation(term); 2190 2196 break; 2191 2197 case ByteTerm::TypeBodyAlternativeEnd: 2192 2198 outputTermIndexAndNest(idx, --nesting); 2193 2199 out.print("BodyAlternativeEnd"); 2200 dumpFrameLocation(term); 2194 2201 break; 2195 2202 case ByteTerm::TypeAlternativeBegin: 2196 2203 outputTermIndexAndNest(idx, nesting++); 2197 2204 out.print("AlternativeBegin"); 2205 dumpFrameLocation(term); 2198 2206 break; 2199 2207 case ByteTerm::TypeAlternativeDisjunction: 2200 2208 outputTermIndexAndNest(idx, nesting - 1); 2201 2209 out.print("AlternativeDisjunction"); 2210 dumpFrameLocation(term); 2202 2211 break; 2203 2212 case ByteTerm::TypeAlternativeEnd: 2204 2213 outputTermIndexAndNest(idx, --nesting); 2205 2214 out.print("AlternativeEnd"); 2215 dumpFrameLocation(term); 2206 2216 break; 2207 2217 case ByteTerm::TypeSubpatternBegin: … … 2230 2240 dumpInverted(term); 2231 2241 dumpInputPosition(term); 2242 dumpFrameLocation(term); 2232 2243 dumpCharacter(term); 2233 2244 dumpQuantity(term); … … 2238 2249 dumpInverted(term); 2239 2250 dumpInputPosition(term); 2251 dumpFrameLocation(term); 2240 2252 dumpCharacter(term); 2241 2253 out.print(" {", term.atom.quantityMinCount, "}"); … … 2246 2258 dumpInverted(term); 2247 2259 dumpInputPosition(term); 2260 dumpFrameLocation(term); 2248 2261 dumpCharacter(term); 2249 2262 dumpQuantity(term); … … 2254 2267 dumpInverted(term); 2255 2268 dumpInputPosition(term); 2269 dumpFrameLocation(term); 2256 2270 dumpCharacter(term); 2257 2271 dumpQuantity(term); … … 2278 2292 dumpInverted(term); 2279 2293 dumpInputPosition(term); 2294 dumpFrameLocation(term); 2280 2295 dumpCharClass(term); 2281 2296 dumpQuantity(term); … … 2292 2307 dumpInverted(term); 2293 2308 dumpInputPosition(term); 2309 dumpFrameLocation(term); 2294 2310 dumpQuantity(term); 2295 2311 out.print("\n"); … … 2303 2319 dumpInverted(term); 2304 2320 dumpInputPosition(term); 2321 dumpFrameLocation(term); 2305 2322 break; 2306 2323 case ByteTerm::TypeParenthesesSubpatternOnceEnd: 2307 2324 outputTermIndexAndNest(idx, --nesting); 2308 2325 out.print("ParenthesesSubpatternOnceEnd"); 2326 dumpFrameLocation(term); 2309 2327 break; 2310 2328 case ByteTerm::TypeParenthesesSubpatternTerminalBegin: … … 2313 2331 dumpInverted(term); 2314 2332 dumpInputPosition(term); 2333 dumpFrameLocation(term); 2315 2334 break; 2316 2335 case ByteTerm::TypeParenthesesSubpatternTerminalEnd: 2317 2336 outputTermIndexAndNest(idx, --nesting); 2318 2337 out.print("ParenthesesSubpatternTerminalEnd"); 2338 dumpFrameLocation(term); 2319 2339 break; 2320 2340 case ByteTerm::TypeParentheticalAssertionBegin: … … 2323 2343 dumpInverted(term); 2324 2344 dumpInputPosition(term); 2345 dumpFrameLocation(term); 2325 2346 break; 2326 2347 case ByteTerm::TypeParentheticalAssertionEnd: 2327 2348 outputTermIndexAndNest(idx, --nesting); 2328 2349 out.print("ParentheticalAssertionEnd"); 2350 dumpFrameLocation(term); 2329 2351 break; 2330 2352 case ByteTerm::TypeCheckInput:
Note:
See TracChangeset
for help on using the changeset viewer.