public OperatorData( string name, string group, string description, IClientData clientData, string typeName, Lexeme lexeme, int operands, TypeList types, OperatorFlags flags, IPlugin plugin, long token ) { this.kind = IdentifierKind.OperatorData; this.id = AttributeOps.GetObjectId(this); this.name = name; this.group = group; this.description = description; this.clientData = clientData; this.typeName = typeName; this.lexeme = lexeme; this.operands = operands; this.types = types; this.flags = flags; this.plugin = plugin; this.token = token; }
public static bool Matches(this ExpressionType expressionType, OperatorFlags flags) { return((((flags & OperatorFlags.Addition) != 0) && expressionType.IsAddition()) || (((flags & OperatorFlags.Arithmetic) != 0) && expressionType.IsArithmetic()) || (((flags & OperatorFlags.Bitwise) != 0) && expressionType.IsBitwise()) || (((flags & OperatorFlags.Comparison) != 0) && expressionType.IsComparison()) || (((flags & OperatorFlags.Equality) != 0) && expressionType.IsEquality()) || (((flags & OperatorFlags.Logical) != 0) && expressionType.IsLogical()) || (((flags & OperatorFlags.Relational) != 0) && expressionType.IsRelational()) || (((flags & OperatorFlags.Shift) != 0) && expressionType.IsShift()) || (((flags & OperatorFlags.Subtraction) != 0) && expressionType.IsSubtraction())); }
/////////////////////////////////////////////////////////////////////// public static bool HasFlags( OperatorFlags flags, OperatorFlags hasFlags, bool all ) { if (all) { return((flags & hasFlags) == hasFlags); } else { return((flags & hasFlags) != OperatorFlags.None); } }
public OperatorFlagsAttribute(OperatorFlags flags) { this.flags = flags; }
/////////////////////////////////////////////////////////////////////// public ReturnCode ToList( OperatorFlags hasFlags, OperatorFlags notHasFlags, bool hasAll, bool notHasAll, string pattern, bool noCase, ref StringList list, ref Result error ) { StringList inputList; // // NOTE: If no flags were supplied, we do not bother filtering on // them. // if ((hasFlags == OperatorFlags.None) && (notHasFlags == OperatorFlags.None)) { inputList = new StringList(); foreach (KeyValuePair <string, _Wrappers.Operator> pair in this) { _Wrappers.Operator @operator = pair.Value; if (@operator != null) { inputList.Add(StringList.MakeList( @operator.Lexeme.ToString(), @operator.Operands.ToString(), @operator.Flags.ToString(), pair.Key)); } } } else { inputList = new StringList(); foreach (KeyValuePair <string, _Wrappers.Operator> pair in this) { _Wrappers.Operator @operator = pair.Value; if (@operator != null) { if (((hasFlags == OperatorFlags.None) || FlagOps.HasFlags(@operator.Flags, hasFlags, hasAll)) && ((notHasFlags == OperatorFlags.None) || !FlagOps.HasFlags(@operator.Flags, notHasFlags, notHasAll))) { inputList.Add(StringList.MakeList( @operator.Lexeme.ToString(), @operator.Operands.ToString(), @operator.Flags.ToString(), pair.Key)); } } } } if (list == null) { list = new StringList(); } return(GenericOps <string> .FilterList( inputList, list, Index.Invalid, Index.Invalid, ToStringFlags.None, pattern, noCase, ref error)); }