
org.jruby.prism.builder.LazyMethodDefinitionPrism Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jruby-prism Show documentation
Show all versions of jruby-prism Show documentation
Java portion of JRuby Prism parser support.
The newest version!
package org.jruby.prism.builder;
import org.jcodings.Encoding;
import org.jruby.ir.IRManager;
import org.jruby.ir.IRMethod;
import org.jruby.ir.builder.IRBuilder;
import org.jruby.ir.builder.LazyMethodDefinition;
import org.jruby.prism.builder.IRBuilderPrism;
import org.prism.AbstractNodeVisitor;
import org.prism.Nodes;
import org.prism.Nodes.ConstantPathNode;
import org.prism.Nodes.DefNode;
import org.prism.Nodes.InstanceVariableReadNode;
import org.prism.Nodes.InstanceVariableWriteNode;
import org.prism.Nodes.Node;
import org.prism.Nodes.RescueNode;
import org.prism.Nodes.WhenNode;
import java.util.ArrayList;
import java.util.List;
public class LazyMethodDefinitionPrism implements LazyMethodDefinition {
private final Nodes.Source nodeSource;
private DefNode node;
private byte[] source;
final private Encoding encoding;
public LazyMethodDefinitionPrism(byte[] source, Nodes.Source nodeSource, Encoding encoding, DefNode node) {
this.source = source;
this.node = node;
this.nodeSource = nodeSource;
this.encoding = encoding;
}
@Override
public int getEndLine() {
return nodeSource.line(node.endOffset()) - 1;
}
@Override
public List getMethodData() {
List ivarNames = new ArrayList<>();
if (node.body != null) {
node.body.accept(new AbstractNodeVisitor
© 2015 - 2025 Weber Informatics LLC | Privacy Policy