summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2007-07-02 20:00:02 +0000
committerRich Hickey <richhickey@gmail.com>2007-07-02 20:00:02 +0000
commit97795e1e3c44870ea715d602fa39ea61163bc3a4 (patch)
tree35c3de611b3cbd0b5650244acd95af6a4946aa4d /src
parentee8b13bd2d08c2636e453bd65c599d70e8d7bf0c (diff)
interim checkin
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/Compiler.java24
-rw-r--r--src/jvm/clojure/lang/HostMember.java18
-rw-r--r--src/jvm/clojure/lang/InstanceMemberInvoker.java (renamed from src/jvm/clojure/lang/InstanceMemberSymbol.java)13
-rw-r--r--src/jvm/clojure/lang/StaticMemberInvoker.java (renamed from src/jvm/clojure/lang/StaticMemberSymbol.java)10
4 files changed, 20 insertions, 45 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index 9317bcc6..5f9bab6e 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -417,15 +417,15 @@ private static Expr analyzeSeq(C context, ISeq form) throws Exception{
else
{
PersistentArrayList args = new PersistentArrayList(4);
- for(ISeq s = op instanceof InstanceMemberSymbol ? RT.rrest(form) : RT.rest(form); s != null; s = s.rest())
+ for(ISeq s = op instanceof InstanceMemberInvoker ? RT.rrest(form) : RT.rest(form); s != null; s = s.rest())
args = args.cons(analyze(C.EXPRESSION, macroexpand(s.first())));
if(op instanceof ClassSymbol)
return new InvokeConstructorExpr((ClassSymbol) op, args);
- else if(op instanceof StaticMemberSymbol)
- return new InvokeStaticMethodExpr((StaticMemberSymbol) op, args);
- else if(op instanceof InstanceMemberSymbol)
- return analyzeInstanceInvoke((InstanceMemberSymbol) op,
+ else if(op instanceof StaticMemberInvoker)
+ return new InvokeStaticMethodExpr((StaticMemberInvoker) op, args);
+ else if(op instanceof InstanceMemberInvoker)
+ return analyzeInstanceInvoke((InstanceMemberInvoker) op,
analyze(C.EXPRESSION, macroexpand(RT.second(form))),
args);
@@ -437,7 +437,7 @@ private static Expr analyzeSeq(C context, ISeq form) throws Exception{
}
}
-private static Expr analyzeInstanceInvoke(InstanceMemberSymbol sym, Expr target, PersistentArrayList args)
+private static Expr analyzeInstanceInvoke(InstanceMemberInvoker sym, Expr target, PersistentArrayList args)
throws Exception{
Class targetClass = null;
if(sym.className != null)
@@ -506,14 +506,14 @@ static class InvokeConstructorExpr extends AHostExpr{
}
static class InvokeStaticMethodExpr extends AHostExpr{
- final StaticMemberSymbol sym;
+ final StaticMemberInvoker sym;
final String resolvedClassName;
final Class type;
PersistentArrayList args;
final Method method;
final Class returnType;
- public InvokeStaticMethodExpr(StaticMemberSymbol sym, PersistentArrayList args) throws Exception{
+ public InvokeStaticMethodExpr(StaticMemberInvoker sym, PersistentArrayList args) throws Exception{
this.sym = sym;
this.args = args;
this.resolvedClassName = resolveHostClassname(sym.className);
@@ -1543,8 +1543,8 @@ private static Expr analyzeSymbol(Symbol sym, boolean inFnPosition) throws Excep
return registerKeyword((Keyword) sym);
else if(sym instanceof ClassSymbol)
return new HostClassExpr((ClassSymbol) sym);
- else if(sym instanceof StaticMemberSymbol)
- return new HostStaticFieldExpr((StaticMemberSymbol) sym);
+ else if(sym instanceof StaticMemberInvoker)
+ return new HostStaticFieldExpr((StaticMemberInvoker) sym);
//todo have InstanceMemberSymbol yield accessor when expression
else
{
@@ -1809,12 +1809,12 @@ static class HostClassExpr extends AHostExpr{
}
static class HostStaticFieldExpr extends AHostExpr{
- final StaticMemberSymbol sym;
+ final StaticMemberInvoker sym;
final String resolvedClassName;
final Class type;
final Class fieldType;
- public HostStaticFieldExpr(StaticMemberSymbol sym) throws Exception{
+ public HostStaticFieldExpr(StaticMemberInvoker sym) throws Exception{
this.sym = sym;
this.resolvedClassName = resolveHostClassname(sym.className);
this.type = getTypeNamed(resolvedClassName);
diff --git a/src/jvm/clojure/lang/HostMember.java b/src/jvm/clojure/lang/HostMember.java
deleted file mode 100644
index 5cdc044a..00000000
--- a/src/jvm/clojure/lang/HostMember.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Copyright (c) Rich Hickey. All rights reserved.
- * The use and distribution terms for this software are covered by the
- * Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
- * which can be found in the file CPL.TXT at the root of this distribution.
- * By using this software in any fashion, you are agreeing to be bound by
- * the terms of this license.
- * You must not remove this notice, or any other, from this software.
- **/
-
-package clojure.lang;
-
-public class HostSymbol extends Symbol{
-
-HostSymbol(String name){
- super(name);
-}
-}
diff --git a/src/jvm/clojure/lang/InstanceMemberSymbol.java b/src/jvm/clojure/lang/InstanceMemberInvoker.java
index 015096be..fe6a48c3 100644
--- a/src/jvm/clojure/lang/InstanceMemberSymbol.java
+++ b/src/jvm/clojure/lang/InstanceMemberInvoker.java
@@ -10,18 +10,13 @@
package clojure.lang;
-public class InstanceMemberSymbol extends HostMember implements IFn{
+public class InstanceMemberInvoker implements IFn{
final public String className;
final public String memberName;
-public InstanceMemberSymbol(String name){
- super(name);
- int lastDot = name.lastIndexOf('.');
- if(lastDot == 0)
- this.className = null;
- else
- this.className = name.substring(1, lastDot);
- this.memberName = name.substring(lastDot + 1);
+public InstanceMemberInvoker(String className, String memberName){
+ this.className = className;
+ this.memberName = memberName;
}
public Object invoke() throws Exception{
diff --git a/src/jvm/clojure/lang/StaticMemberSymbol.java b/src/jvm/clojure/lang/StaticMemberInvoker.java
index 7bf0b9ba..305d0319 100644
--- a/src/jvm/clojure/lang/StaticMemberSymbol.java
+++ b/src/jvm/clojure/lang/StaticMemberInvoker.java
@@ -10,15 +10,13 @@
package clojure.lang;
-public class StaticMemberSymbol extends HostMember implements IFn{
+public class StaticMemberInvoker implements IFn{
final public String className;
final public String memberName;
-public StaticMemberSymbol(String name){
- super(name);
- int lastDot = name.lastIndexOf('.');
- this.className = name.substring(0, lastDot);
- this.memberName = name.substring(lastDot + 1);
+public StaticMemberInvoker(String className, String memberName){
+ this.className = className;
+ this.memberName = memberName;
}
public Object invoke() throws Exception{