diff options
author | Rich Hickey <richhickey@gmail.com> | 2007-07-02 20:00:02 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2007-07-02 20:00:02 +0000 |
commit | 97795e1e3c44870ea715d602fa39ea61163bc3a4 (patch) | |
tree | 35c3de611b3cbd0b5650244acd95af6a4946aa4d /src | |
parent | ee8b13bd2d08c2636e453bd65c599d70e8d7bf0c (diff) |
interim checkin
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 24 | ||||
-rw-r--r-- | src/jvm/clojure/lang/HostMember.java | 18 | ||||
-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{
|