Skip to content

Commit bcae490

Browse files
committed
[truffle] Implement nqp::codepointfromname
1 parent 3c84804 commit bcae490

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

src/vm/jvm/Truffle.nqp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ class QAST::OperationsTruffle {
221221
add_simple_op('x', $STR, [$STR, $INT]);
222222

223223
add_simple_op('chr', $STR, [$INT]);
224+
add_simple_op('codepointfromname', $INT, [$STR]);
224225

225226
for <postinc postdec> -> $op {
226227
add_op($op, sub ($comp, $node, :$want) {
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.perl6.nqp.truffle.nodes.expression;
2+
import com.oracle.truffle.api.frame.VirtualFrame;
3+
import com.oracle.truffle.api.nodes.NodeInfo;
4+
import org.perl6.nqp.truffle.nodes.NQPNode;
5+
import org.perl6.nqp.truffle.nodes.NQPIntNode;
6+
import org.perl6.nqp.truffle.runtime.StringOps;
7+
import org.perl6.nqp.dsl.Deserializer;
8+
9+
@NodeInfo(shortName = "codepointfromname")
10+
public final class NQPCodepointfromnameNode extends NQPIntNode {
11+
@Child private NQPNode argNode;
12+
13+
@Deserializer
14+
public NQPCodepointfromnameNode(NQPNode argNode) {
15+
this.argNode = argNode;
16+
}
17+
18+
@Override
19+
public long executeInt(VirtualFrame frame) {
20+
return StringOps.codepointfromname(argNode.executeStr(frame));
21+
}
22+
}

0 commit comments

Comments
 (0)