checkpoint
authoradam <adam@megacz.com>
Wed, 5 Jul 2006 04:56:08 +0000 (00:56 -0400)
committeradam <adam@megacz.com>
Wed, 5 Jul 2006 04:56:08 +0000 (00:56 -0400)
darcs-hash:20060705045608-5007d-3cf39883d5b740146a8fb99d953b94a858091b9e.gz

src/edu/berkeley/sbp/bind/Bindable.java
src/edu/berkeley/sbp/bind/bind.java
src/edu/berkeley/sbp/misc/MetaGrammar.java

index d045e16..0e2da13 100644 (file)
@@ -52,7 +52,7 @@ public abstract class Bindable implements ToJava {
         private final Constructor _constructor;
         public String toString() { return "BindableConstructor["+_constructor+"]"; }
         public BindableConstructor(Constructor _constructor) { this._constructor = _constructor; }
-        public String getSimpleName() { return _constructor.getName(); }
+        public String getSimpleName() { return _constructor.getDeclaringClass().getSimpleName(); }
         public <A extends Annotation> A getAnnotation(Class<A> c) { return _constructor.getAnnotation(c); }
         public Object impose(Object[] fields) { return Reflection.impose(_constructor, fields); }
         public Annotation[][] getArgAnnotations() { return _constructor.getParameterAnnotations(); }
@@ -70,12 +70,7 @@ public abstract class Bindable implements ToJava {
         private final Class _class;
         public String toString() { return "BindableClass["+_class+"]"; }
         public BindableClass(Class _class) { this._class = _class; }
-        public String getSimpleName() {
-            String s = _class.getSimpleName();
-            if (s.indexOf('$') != -1)
-                return s.substring(s.indexOf('$')+1);
-            return s;
-        }
+        public String getSimpleName() { return _class.getSimpleName(); }
         public <A extends Annotation> A getAnnotation(Class<A> c) { return (A)_class.getAnnotation(c); }
         public Object impose(Object[] fields) { return Reflection.impose(_class, fields); }
         public Annotation[][] getArgAnnotations() {
index 4441ee1..47fe91b 100644 (file)
@@ -9,6 +9,7 @@ import java.lang.annotation.*;
 import java.lang.reflect.*;
 import java.io.*;
 
+@Retention(RetentionPolicy.RUNTIME)
 public @interface bind {    
     /**
      *  Constructors, classes, and methods with this attribute will
@@ -20,7 +21,8 @@ public @interface bind {
       @Retention(RetentionPolicy.RUNTIME) public static @interface nonterminal { String value() default ""; }
     */
 
-    @Retention(RetentionPolicy.RUNTIME) public static @interface raw { }
+    @Retention(RetentionPolicy.RUNTIME)
+        public static @interface raw { }
 
     /**
      *  Constructors, classes, and methods with this attribute will
@@ -29,7 +31,8 @@ public @interface bind {
      *  name is used.
      */ 
 
-    @Retention(RetentionPolicy.RUNTIME) public static @interface as         { String value() default ""; }
+    @Retention(RetentionPolicy.RUNTIME)
+        public static @interface as         { String value() default ""; }
 
 
     /**
@@ -52,5 +55,6 @@ public @interface bind {
      *  arg-compatible, or if one of its constructors is arg-compatible.
      *
      */
-    @Retention(RetentionPolicy.RUNTIME) public static @interface arg         { String value() default ""; }
+    @Retention(RetentionPolicy.RUNTIME)
+        public static @interface arg         { String value() default ""; }
 }
index 2007dd1..2917f7b 100644 (file)
@@ -184,6 +184,7 @@ public class MetaGrammar {
                 return buildSequence(p)!=null;
 
             bind b = getBind();
+            System.out.println(_bindable.getClass().getSimpleName() + ": " + _bindable.getSimpleName());
             if (b != null && getName().equals(p.tag))
                 return buildSequence(p)!=null;
 
@@ -312,7 +313,7 @@ public class MetaGrammar {
 
 
     public static class MG {
-        public static @bind.as class Grammar {
+        public static @bind class Grammar {
             public NonTerminal get(String s) {
                 for(NonTerminal nt : nonterminals)
                     if (nt.name.equals(s))