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 }