Add String.splitLimit API (#666)

* Add String.splitLimit API

* Update stdlib/base.pkl

Co-authored-by: Daniel Chao <daniel.h.chao@gmail.com>

---------

Co-authored-by: Daniel Chao <daniel.h.chao@gmail.com>
This commit is contained in:
Josh B
2024-10-07 07:28:19 -07:00
committed by GitHub
parent 9e7e42eb53
commit 1e63c48ce4
5 changed files with 133 additions and 48 deletions

View File

@@ -739,6 +739,22 @@ public final class StringNodes {
}
}
public abstract static class splitLimit extends ExternalMethod2Node {
@TruffleBoundary
@Specialization
protected VmList eval(String self, String separator, long limit) {
var parts = self.split(Pattern.quote(separator), (int) limit);
return VmList.create(parts);
}
@TruffleBoundary
@Specialization
protected VmList eval(String self, VmRegex separator, long limit) {
var parts = separator.getPattern().split(self, (int) limit);
return VmList.create(parts);
}
}
public abstract static class capitalize extends ExternalMethod0Node {
@TruffleBoundary
@Specialization