Sha256: 4a349cb93069b2c43bfe2f6df7491a07d8ffb59047986249a892dc887238c440

Contents?: true

Size: 1.49 KB

Versions: 135

Compression:

Stored size: 1.49 KB

Contents

/** 
 * Copyright 2005-2007 Xue Yong Zhi
 * Distributed under the BSD License
 */

package com.xruby.compiler.codedom;

import java.util.*;

public class ArrayExpression extends Expression {
	private ArrayList<Expression> elements_;
	private Expression asterisk_element_;

	int rhs_size_;
	boolean has_single_asterisk_;
	
	public ArrayExpression() {
		elements_ = new ArrayList<Expression>();
		asterisk_element_ = null;

		rhs_size_ = 0;
		has_single_asterisk_ = false;
	}

	ArrayExpression(ArrayList<Expression> elements, Expression asterisk_element) {
		elements_ = elements;
		asterisk_element_ = asterisk_element;

		rhs_size_ = elements.size();
		has_single_asterisk_ = (null != asterisk_element);
	}
	
	public void addElement(Expression e) {
		elements_.add(e);
	}

	public void setAsteriskElement(Expression e) {
		asterisk_element_ = e;
	}

	public ArrayList<Expression> getElements() {
		return elements_;
	}
	
	public void accept(CodeVisitor visitor) {
		visitor.visitArrayBegin(elements_.size(), rhs_size_, has_single_asterisk_);
		
		for (Expression e : elements_) {
			e.accept(visitor);
			visitor.visitArrayElement(false, e instanceof MethodCallExpression || e instanceof YieldExpression);
		}

		if (null != asterisk_element_) {
			asterisk_element_.accept(visitor);
			visitor.visitArrayElement(true, asterisk_element_ instanceof MethodCallExpression || asterisk_element_ instanceof YieldExpression);
		}
		
		visitor.visitArrayEnd();
	}
	
}

Version data entries

135 entries across 135 versions & 2 rubygems

Version Path
rhodes-7.6.0 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-7.5.1 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-7.4.1 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-7.1.17 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-6.2.0 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-6.0.11 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-5.5.18 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-5.5.17 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-5.5.15 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-5.5.0.22 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-5.5.2 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-5.5.0.7 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-5.5.0.3 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-5.5.0 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
tauplatform-1.0.3 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
tauplatform-1.0.2 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
tauplatform-1.0.1 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-3.5.1.12 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-3.3.5 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java
rhodes-3.4.2 platform/shared/xruby/src/com/xruby/compiler/codedom/ArrayExpression.java