001    /**
002     * This class adds some JML-specific modifiers to the usual Java set.
003     *
004     * @author David R. Cok
005     */
006    
007    package escjava.ast;
008    
009    public class Modifiers extends javafe.ast.Modifiers {
010      /** helper method, model or not */
011      public static final int ACC_HELPER = 0x20000;
012      /** model fields and methods */
013      public static final int ACC_MODEL = 0x80000;
014      /** set if desugaring of routine specs is complete */
015      public static final int ACC_DESUGARED = 0x400000;
016    
017      public static boolean isModel(int modifiers) {
018            return (modifiers&ACC_MODEL) != 0;
019      }
020      public static boolean isHelper(int modifiers) {
021            return (modifiers&ACC_HELPER) != 0;
022      }
023    
024      //@ ensures \result != null;
025      public static /*@non_null*/ String toString(int modifiers) {
026        String s = javafe.ast.Modifiers.toString(modifiers);
027        if (isModel(modifiers)) s = "model " + s;
028        // FIXME if (Utils.isPure(modifiers)) s = "pure " + s;
029        if (isHelper(modifiers)) s = "helper " + s;
030        return s;
031      }
032    }