Sha256: 11531e00e3faa074e21ec403ea24142479193626a3f5b122975f2d3f1749615e

Contents?: true

Size: 1.6 KB

Versions: 135

Compression:

Stored size: 1.6 KB

Contents

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

package com.xruby.compiler.codedom;

public class ClassDefinitionExpression extends Expression {
    private Expression scope_exp_;//e.g. class A::B
	private String className_;
	private Expression exp_;//e.g. class << self
	private Expression superClass_;
	private BodyStatement bodyStatement_;
	
	public ClassDefinitionExpression(Expression scope, String className, Expression superClass, BodyStatement bodyStatement) {
        scope_exp_ = scope;
        className_ = className;
		exp_ = null;
		superClass_ = superClass;
		bodyStatement_ = bodyStatement;
	}

	public ClassDefinitionExpression(Expression exp, Expression superClass, BodyStatement bodyStatement) {
		scope_exp_ = null;
        className_ = null;
		exp_ = exp;
		superClass_ = superClass;
		bodyStatement_ = bodyStatement;
	}

	public void accept(CodeVisitor visitor) {
		if (null != className_) {
            if (null != scope_exp_) {
                scope_exp_.accept(visitor);
            }
			visitor.visitClassDefinition1(className_, null != scope_exp_);
			if (null != superClass_) {
				superClass_.accept(visitor);
            } else {
				visitor.visitNoSuperClass();
			}
			visitor.visitClassDefinition2(className_, null != scope_exp_);
		} else {
			exp_.accept(visitor);
			visitor.visitSingletonClassDefinition();
		}
		
		if (null != bodyStatement_) {
			bodyStatement_.accept(visitor);
		}
		
		visitor.visitClassDefinitionEnd((null == bodyStatement_) ? false : bodyStatement_.lastStatementHasReturnValue());
	}

}

Version data entries

135 entries across 135 versions & 2 rubygems

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