@Override public Boolean adapt(Function value) { List<Modifier> mods = value.getModifiers(); if (ModifierType.__kernel.isContainedBy(mods)) return true; if (value.getValueType() == null) return null; mods = value.getValueType().getModifiers(); return ModifierType.__kernel.isContainedBy(mods); } };
public boolean isAnyOf(ModifierKind...kinds) { for (ModifierKind kind : kinds) if (isA(kind)) return true; return false; }
public Object getModifierValue(ModifierType t) { Modifier rt = t.resolveAlias(); if (!t.isAnyOf(ModifierKind.HasArguments, ModifierKind.VCAnnotation1Arg)) throw new RuntimeException("Modifier type " + t + " does not hold any value."); for (Modifier m : getModifiers()) { if (m instanceof ValuedModifier) { ValuedModifier vm = (ValuedModifier)m; Modifier mm = vm.getModifier(); if (mm == null) continue; mm = mm.resolveAlias(); if (rt.equals(mm)) return vm.getValue(); } } return null; } public ModifiableElement reorganizeModifiers() {
@Test public void parseMods() { assertEquals(ModifierType.UUID, ModifierType.parseModifier("uuid"));//, ModifierKind.Extended)); } }
public boolean isContainedBy(Collection<Modifier> modifiers) { Modifier alias = resolveAlias(); for (Modifier modifier : modifiers) if (modifier.resolveAlias().equals(alias)) return true; return false; } public int countIn(Collection<Modifier> modifiers) {
int longCount = ModifierType.Long.countIn(mods); if (valueType instanceof JavaPrimitive) { return ((JavaPrimitive) valueType).getJavaPrim();
@Override public String toString() { return toString(null); } public String toString(ModifierType.Compiler compiler) {
public String toString(ModifierType.Compiler compiler) { String low = name().toLowerCase(); if (!kinds.contains(VCAnnotation1Arg) && !kinds.contains(VCAnnotation2Args) && !kinds.contains(VCAnnotationNoArg)) if (kinds.contains(Declspec))// && (compiler == null || compiler == Compiler.MSVC)) return "__declspec(" + low + ")"; if (kinds.contains(Attribute))// && !kin (compiler == null || compiler == Compiler.GCC)) return "__attribute__((" + low + "))"; return low; }
modifiers.add(new ValuedModifier(ModifierType.parseModifier((m!=null?m.getText():null)), arg)); modifiers.add(ModifierType.parseModifier((m!=null?m.getText():null)));
public int countIn(Collection<Modifier> modifiers) { Modifier alias = resolveAlias(); int c = 0; for (Modifier modifier : modifiers) if (modifier.resolveAlias().equals(alias)) c++; return c; } public Modifier getAlias() {
int longCount = ModifierType.Long.countIn(mods); if (valueType instanceof JavaPrimitive) { return ((JavaPrimitive) valueType).getJavaPrim();
@Override public void visitPrimitive(Primitive primitive) { super.visitPrimitive(primitive); if (ModifierType.Long.isContainedBy(primitive.getModifiers())) { Identifier name = primitive.getName(); if (name == null || name.equals("int") || name.equals("long")) { primitive.setName(ident("long")); if (name == null) { primitive.removeModifiers(ModifierType.Long); } } } else if (ModifierType.Short.isContainedBy(primitive.getModifiers())) { Identifier name = primitive.getName(); if (name == null || name.equals("int")) { primitive.setName(ident("short")); primitive.removeModifiers(ModifierType.Short); } } }
protected Modifier parseModifier(String s, ModifierKind... anyModKind) { Modifier mod = ModifierType.parseModifier(next(), anyModKind); if (mod == null) return null; if (mod.isAllOf(ModifierKind.ObjectiveC, ModifierKind.OnlyInArgDef) && !isObjCArgDef()) return null; if (mod.isA(ModifierKind.Java)) return null; //if (mod.isAnyOf(ModifierKind.Declspec, ModifierKind.Attribute) && !isInExtMod()) // return null; if (!mod.isAnyOf(anyModKind) && !isAllowed(mod)) return null; return mod; } protected boolean next(ModifierKind... anyModKind) {
public boolean isAllOf(ModifierKind...kinds) { for (ModifierKind kind : kinds) if (!isA(kind)) return false; return true; }
@Override public void visitPrimitive(Primitive primitive) { super.visitPrimitive(primitive); if (ModifierType.Long.isContainedBy(primitive.getModifiers())) { Identifier name = primitive.getName(); if (name == null || name.equals("int") || name.equals("long")) { primitive.setName(ident("long")); if (name == null) { primitive.removeModifiers(ModifierType.Long); } } } else if (ModifierType.Short.isContainedBy(primitive.getModifiers())) { Identifier name = primitive.getName(); if (name == null || name.equals("int")) { primitive.setName(ident("short")); primitive.removeModifiers(ModifierType.Short); } } }
retval.modifiers.add(ModifierType.parseModifier((m!=null?m.getText():null))); retval.modifiers.add(new ValuedModifier(ModifierType.parseModifier((m!=null?m.getText():null)), arg)); retval.modifiers.add(ModifierType.parseModifier((m!=null?m.getText():null))); retval.modifiers.add(new ValuedModifier(ModifierType.parseModifier((m!=null?m.getText():null)), x));
modifiers.addAll(preMods); try { if (ModifierType.UUID.isContainedBy(modifiers)) allowKinds(ModifierKind.VCParameterAnnotation); } catch (Throwable th) {
modifier = ModifierType.parseModifier((m!=null?m.getText():null));
&& !(ModifierType.Extern.isContainedBy(modifiers) || ModifierType.Dllexport.isContainedBy(modifiers) || ModifierType.Dllimport.isContainedBy(modifiers)) //|| Modifier.Const.isContainedBy(modifiers) && d.getDefaultValue() != null ) {
type.addModifiers(ModifierType.parseModifier((m!=null?m.getText():null)));