org.mozilla.javascript.ast.Yield Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.apache.servicemix.bundles.rhino
Show all versions of org.apache.servicemix.bundles.rhino
This OSGi bundle wraps rhino and rhino-engine ${pkgVersion} jar files.
The newest version!
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.javascript.ast;
import org.mozilla.javascript.Token;
/**
* AST node for JavaScript 1.7 {@code yield} expression or statement. Node type is {@link
* Token#YIELD}.
*
* Yield :
* yield [no LineTerminator here] [non-paren Expression] ;
*/
public class Yield extends AstNode {
private AstNode value;
public Yield() {
type = Token.YIELD;
}
public Yield(int pos) {
super(pos);
type = Token.YIELD;
}
public Yield(int pos, int len) {
super(pos, len);
type = Token.YIELD;
}
public Yield(int pos, int len, AstNode value, boolean isStar) {
super(pos, len);
type = isStar ? Token.YIELD_STAR : Token.YIELD;
setValue(value);
}
/** Returns yielded expression, {@code null} if none */
public AstNode getValue() {
return value;
}
/**
* Sets yielded expression, and sets its parent to this node.
*
* @param expr the value to yield. Can be {@code null}.
*/
public void setValue(AstNode expr) {
this.value = expr;
if (expr != null) expr.setParent(this);
}
@Override
public String toSource(int depth) {
return value == null ? "yield" : "yield " + value.toSource(0);
}
/** Visits this node, and if present, the yielded value. */
@Override
public void visit(NodeVisitor v) {
if (v.visit(this) && value != null) {
value.visit(v);
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy