Represents a block.
<init>(int line, org.jruby.ast.Node args, org.jruby.parser.StaticScope scope, org.jruby.ast.Node body, int endLine)Used by ForNode only. This is to support 1.8-style assignments which only 'for' expressions use.
<init>(int line, org.jruby.ast.ArgsNode args, org.jruby.ast.Node body, org.jruby.parser.StaticScope scope, int endLine)Used for all non-for types of blocks.
Accept for the visitor pattern.
| name | type | description |
|---|---|---|
| i_visitor | org.jruby.ast.visitor.NodeVisitor<T> | the visitor |
Gets the bodyNode.
Returns: Returns a Node
getEndLine() · also: get_end_lineGets the varNode.
Returns: Returns a Node
containsVariableAssignment()Does this node or one of its children contain an assignment?
executesOnce()Returns: is it possible this node will execute only once. Note: This is not comprehensive. It is used to look from root node down to class/module nodes to make sure that narrow case can execute once. It is possible much deeper down the tree some nodes can only execute once but it will be marked as false because that case is not what this is for.
getFile() · also: get_filegetLine() · also: get_linesetLine(int line) · also: set_lineneedsDefinitionCheck()Check whether the given node is considered always "defined" or whether it has some form of definition check.
Returns: Whether the type of node represents a possibly undefined construct
isNewline() · also: is_newlineisNil() · also: is_nilWhether the node evaluates to nil and has no side effects.
Returns: true if nil, false otherwise
setNewline()toString()toString(boolean indent, int indentation)toStringExtraInfo()Not all interesting info in the AST is from Node data. This method will print out anything else of note (e.g. FixnumNode's long value).
Returns: null for no extra info or something otherwise.
unsetNewline()