X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FReflectiveWalker.java;h=f22f4b8583d00a9670874087043708a451e6d374;hp=71e597cd2bf17919f4224ec87008ae0b3d176716;hb=05a1638649b2c25a1eaf26831b1bad48d73f57ef;hpb=5cf6851e385edfdec4955120e03bf7e282dc8a68 diff --git a/src/edu/berkeley/sbp/misc/ReflectiveWalker.java b/src/edu/berkeley/sbp/misc/ReflectiveWalker.java index 71e597c..f22f4b8 100644 --- a/src/edu/berkeley/sbp/misc/ReflectiveWalker.java +++ b/src/edu/berkeley/sbp/misc/ReflectiveWalker.java @@ -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 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;