Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
Rhino JavaScript Java Library Source Code
Rhino JavaScript Java Library is an open-source implementation of JavaScript
written entirely in Java.
Rhino JavaScript Java Library Source Code files are provided in binary package (rhino-1.7.14.zip).
You can also browse the source code below:
✍: FYIcenter.com
⏎ org/mozilla/javascript/ast/UpdateExpression.java
/* -*- 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 representing update operators such as {@code ++}. The type field is set to the
* appropriate Token type for the operator. The node length spans from the operator to the end of
* the operand (for prefix operators) or from the start of the operand to the operator (for
* postfix).
*/
public class UpdateExpression extends AstNode {
private AstNode operand;
private boolean isPostfix;
public UpdateExpression() {}
public UpdateExpression(int pos) {
super(pos);
}
/** Constructs a new postfix UpdateExpression. */
public UpdateExpression(int pos, int len) {
super(pos, len);
}
/** Constructs a new prefix UpdateExpression. */
public UpdateExpression(int operator, int operatorPosition, AstNode operand) {
this(operator, operatorPosition, operand, false);
}
/**
* Constructs a new UpdateExpression with the specified operator and operand. It sets the parent
* of the operand, and sets its own bounds to encompass the operator and operand.
*
* @param operator the node type
* @param operatorPosition the absolute position of the operator.
* @param operand the operand expression
* @param postFix true if the operator follows the operand. Int
* @throws IllegalArgumentException} if {@code operand} is {@code null}
*/
public UpdateExpression(int operator, int operatorPosition, AstNode operand, boolean postFix) {
assertNotNull(operand);
int beg = postFix ? operand.getPosition() : operatorPosition;
// JavaScript only has ++ and -- postfix operators, so length is 2
int end = postFix ? operatorPosition + 2 : operand.getPosition() + operand.getLength();
setBounds(beg, end);
setOperator(operator);
setOperand(operand);
isPostfix = postFix;
}
/** Returns operator token – alias for {@link #getType} */
public int getOperator() {
return type;
}
/**
* Sets operator – same as {@link #setType}, but throws an exception if the operator is
* invalid
*
* @throws IllegalArgumentException if operator is not a valid Token code
*/
public void setOperator(int operator) {
if (!Token.isValidToken(operator))
throw new IllegalArgumentException("Invalid token: " + operator);
setType(operator);
}
public AstNode getOperand() {
return operand;
}
/**
* Sets the operand, and sets its parent to be this node.
*
* @throws IllegalArgumentException} if {@code operand} is {@code null}
*/
public void setOperand(AstNode operand) {
assertNotNull(operand);
this.operand = operand;
operand.setParent(this);
}
/** Returns whether the operator is postfix */
public boolean isPostfix() {
return isPostfix;
}
/** Returns whether the operator is prefix */
public boolean isPrefix() {
return !isPostfix;
}
/** Sets whether the operator is postfix */
public void setIsPostfix(boolean isPostfix) {
this.isPostfix = isPostfix;
}
@Override
public String toSource(int depth) {
StringBuilder sb = new StringBuilder();
sb.append(makeIndent(depth));
int type = getType();
if (!isPostfix) {
sb.append(operatorToString(type));
}
sb.append(operand.toSource());
if (isPostfix) {
sb.append(operatorToString(type));
}
return sb.toString();
}
/** Visits this node, then the operand. */
@Override
public void visit(NodeVisitor v) {
if (v.visit(this)) {
operand.visit(v);
}
}
}
⏎ org/mozilla/javascript/ast/UpdateExpression.java
Or download all of them as a single archive file:
File name: rhino-1.7.14-sources.jar File size: 1029165 bytes Release date: 2022-01-06 Download
⇒ Example code to Test rhino-runtime-1.7.14.jar
⇐ Download Rhino JavaScript Binary Package
2022-05-03, ≈180🔥, 1💬
Popular Posts:
What JAR files are required to run sax\Counter.java provided in the Apache Xerces package? You can f...
What Is ojdbc5.jar for Oracle 11g R1? ojdbc5.jar for Oracle 11g R1 is the JAR files of ojdbc.jar, JD...
What is the dom\ElementPrinter.java provided in the Apache Xerces package? I have Apache Xerces 2.11...
What Is poi-scratchpad-5.2.3.jar ?poi-scratchpad-5.2.3.jar is one of the JAR files for Apache POI 5....
What Is junit-3.8.1.jar? junit-3.8.1.jar is the version 3.8.1 of JUnit JAR library file. JUnit is a ...