Sha256: 2ab0399fe3b7b379369feab7de6f1f5d867a0a4e179fc5d587f3e5bcd0f826b2

Contents?: true

Size: 1.89 KB

Versions: 135

Compression:

Stored size: 1.89 KB

Contents

/**
 * Copyright 2007 Ye Zheng
 * Distributed under the BSD License
 */

package com.xruby.compiler.codegen;

import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
import org.objectweb.asm.commons.Method;

class ClassGeneratorForNoArgRubyMethod extends ClassGeneratorForRubyMethod {
	public ClassGeneratorForNoArgRubyMethod(String method_name, String fileName, String name, int argc, boolean has_asterisk_parameter, int default_argc, boolean is_singleton_method) {
		super(method_name, fileName, name, argc, has_asterisk_parameter, default_argc,
				is_singleton_method);
	}

	public String getSuperName() {
		return "com/xruby/runtime/lang/RubyNoArgMethod";
	}

	public String getRunMethodName() {
		return "com.xruby.runtime.lang.RubyValue run(com.xruby.runtime.lang.RubyValue, com.xruby.runtime.lang.RubyBlock)";
	}

	public Type getSuperClassType() {
		return Types.RUBY_NOARGMETHOD_TYPE;
	}

	public String getSuperCtorName() {
		return "void <init> ()";
	}

	public void pushBasciArgForSuperArg(MethodGenerator mg, int argc, boolean has_asterisk_parameter, int default_argc) {
	}

	public void loadMethodPrameter(int index) {
		throw new RuntimeException("should not load method paramenter in no argment method");
	}

	public void storeMethodParameter(int index) {
		throw new RuntimeException("should not store method paramenter in no argment method");
	}

	protected MethodGenerator createMethodGenerator() {
		return new MethodGenerator(Opcodes.ACC_PROTECTED,
				Method.getMethod(this.getRunMethodName()),
				cv_,
				null,
				null,
				false) {
			public void loadCurrentBlock() {
				this.loadArg(1);
			}

			public void loadMethodArg() {
			}
		};
	}

	public void callSuperMethod(boolean has_no_arg, boolean has_one_arg) {
		this.getMethodGenerator().RubyAPI_callSuperNoArgMethod();
	}

	public void loadArgOfMethodForBlock() {
		MethodGenerator mg = getMethodGenerator();
		mg.pushNull();
		mg.pushNull();
	}
}

Version data entries

135 entries across 135 versions & 2 rubygems

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