-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Truffle] Shim regexps with modifiers.
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
- 9.1.14.0
- 9.1.13.0
- 9.1.12.0
- 9.1.11.0
- 9.1.10.0
- 9.1.9.0
- 9.1.8.0
- 9.1.7.0
- 9.1.6.0
- 9.1.5.0
- 9.1.4.0
- 9.1.3.0
- 9.1.2.0
- 9.1.1.0
- 9.1.0.0
- 9.0.5.0
1 parent
81c658a
commit 1150491
Showing
3 changed files
with
38 additions
and
5 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/* | ||
* Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved. This | ||
* Copyright (c) 2013, 2016 Oracle and/or its affiliates. All rights reserved. This | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
chrisseaton
Author
Contributor
|
||
* code is released under a tri EPL/GPL/LGPL license. You can use it, | ||
* redistribute it and/or modify it under the terms of the: | ||
* | ||
|
@@ -198,8 +198,42 @@ private static void setLocalVariable(Frame frame, String name, Object value) { | |
} | ||
} | ||
|
||
public static ByteList shimModifiers(ByteList bytes) { | ||
// Joni doesn't support (?u) etc but we can shim some common cases | ||
|
||
String bytesString = bytes.toString(); | ||
|
||
if (bytesString.startsWith("(?u)") || bytesString.startsWith("(?d)") || bytesString.startsWith("(?a)")) { | ||
final char modifier = (char) bytes.get(2); | ||
bytesString = bytesString.substring(4); | ||
|
||
switch (modifier) { | ||
case 'u': { | ||
bytesString = bytesString.replace("\\w", "[[:alpha:]]"); | ||
} break; | ||
|
||
case 'd': { | ||
|
||
} break; | ||
|
||
case 'a': { | ||
bytesString = bytesString.replace("[[:alpha:]]", "[a-zA-Z]"); | ||
} break; | ||
|
||
default: | ||
throw new UnsupportedOperationException(); | ||
} | ||
|
||
bytes = ByteList.create(bytesString); | ||
} | ||
|
||
return bytes; | ||
} | ||
|
||
@TruffleBoundary | ||
public static Regex compile(Node currentNode, RubyContext context, ByteList bytes, RegexpOptions options) { | ||
bytes = shimModifiers(bytes); | ||
|
||
try { | ||
/* | ||
// This isn't quite right - we shouldn't be looking up by name, we need a real reference to this constants | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@chrisseaton is this change from 2015 to 2016 has to throughout codebase ?
If thats true, then I can do that.