new checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / ReflectiveWalker.java
index 71e597c..f22f4b8 100644 (file)
@@ -5,6 +5,7 @@ import java.io.*;
 import java.util.*;
 import java.lang.reflect.*;
 
+/** use of this class is not recommended; it can handle only S-attributed grammars */
 public class ReflectiveWalker extends StringWalker {
     public ReflectiveWalker()              { this.target = this; }
     public ReflectiveWalker(Object target) { this.target = target; }
@@ -53,12 +54,19 @@ public class ReflectiveWalker extends StringWalker {
         }
         return ret.toString();
     }
+    /*
     public Object walk(Tree<String> tree) {
         if (tree.head()!=null) {
             Member m = member("$"+normalize(tree.head()), 0, false);
+            if (m!=null) {
+                if ((m instanceof Method) && ((Method)m).getReturnType()==Void.TYPE) {
+                    Reflection.fuzzyInvoke(target, m, new Object[0]);
+                }
+            }
         }
         return super.walk(tree);
     }
+    */
     public Object walk(String tag, Object[] argo) {
         if (argo.length==0) return super.walk(tag, argo);
         if (argo==null) return tag;