make Result.usedByNonDoomedNode() more efficient
[sbp.git] / src / edu / berkeley / sbp / bind / bind.java
index 4441ee1..1aed596 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
+
 package edu.berkeley.sbp.bind;
 
 import edu.berkeley.sbp.util.*;
@@ -9,48 +11,15 @@ 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
-     *  match every production of the nonterminal called "value()"
-     *  that is arg-compatible.  If value() is undefined, then the
-     *  class/constructor/method name is used.
-     */ 
-    /*
-      @Retention(RetentionPolicy.RUNTIME) public static @interface nonterminal { String value() default ""; }
-    */
-
-    @Retention(RetentionPolicy.RUNTIME) public static @interface raw { }
-
-    /**
-     *  Constructors, classes, and methods with this attribute will
-     *  match every tree tagged with "value()" that is arg-compatible.
-     *  If value() is undefined, then the class/constructor/method
-     *  name is used.
-     */ 
 
-    @Retention(RetentionPolicy.RUNTIME) public static @interface as         { String value() default ""; }
+    @Retention(RetentionPolicy.RUNTIME)
+        public static @interface raw { }
 
+    @Retention(RetentionPolicy.RUNTIME)
+        public static @interface as         { String value() default ""; }
 
-    /**
-     *  If any parameter to a method or field in a class has a named
-     *  arg-tag, that parameter/field matches the child of the tree
-     *  which either has that label or else is a reference to a
-     *  nonterminal with the corresponding name.
-     *  
-     *  The remaining non-named arg-tags match the remaining children
-     *  of the tree in sequential order.
-     *
-     *  If any arg-tagged parameters/fields remain, the match fails.
-     *  If there were no arg-tagged parameters-fields, it is as if all
-     *  of them were non-named and arg-tagged.
-     *
-     *  A method/constructor is arg-compatible if all of its arguments
-     *  are arg-compatible.
-     *
-     *  A class is arg-compatible if all of its fields are
-     *  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 ""; }
 }