Mono.Cxxi.CppModifiers.Remove C# (CSharp) Method

Remove() public static method

public static Remove ( string input ) : string
input string
return string
		public static string Remove (string input)
		{
			foreach (var token in Tokenize)
				input = Regex.Replace (input, token.Key, "");

			return input;
		}

Usage Example

Example #1
0
        // FIXME: This makes no attempt to actually verify that the parts compose a valid C++ type.
        private void Parse(object [] parts)
        {
            foreach (object part in parts)
            {
                if (part is CppModifiers)
                {
                    Modifiers.Add((CppModifiers)part);
                    continue;
                }

                if (part is CppModifiers [] || part is IEnumerable <CppModifiers> )
                {
                    Modifiers.AddRange((IEnumerable <CppModifiers>)part);
                    continue;
                }

                if (part is CppTypes)
                {
                    ElementType = (CppTypes)part;
                    continue;
                }

                Type managedType = part as Type;
                if (managedType != null)
                {
                    CppType mapped = CppType.ForManagedType(managedType);
                    CopyTypeFrom(mapped);
                    continue;
                }

                string strPart = part as string;
                if (strPart != null)
                {
                    var parsed = CppModifiers.Parse(strPart);
                    if (parsed.Count > 0)
                    {
                        if (internalModifiers == null)
                        {
                            internalModifiers = parsed;
                        }
                        else
                        {
                            internalModifiers.AddRange(parsed);
                        }

                        strPart = CppModifiers.Remove(strPart);
                    }

                    // if we have something left, it must be a type name
                    strPart = strPart.Trim();
                    if (strPart != "")
                    {
                        string [] qualifiedName = strPart.Split(new string [] { "::" }, StringSplitOptions.RemoveEmptyEntries);
                        int       numNamespaces = qualifiedName.Length - 1;
                        if (numNamespaces > 0)
                        {
                            Namespaces = new string [numNamespaces];
                            for (int i = 0; i < numNamespaces; i++)
                            {
                                Namespaces [i] = qualifiedName [i];
                            }
                        }
                        strPart = qualifiedName [numNamespaces];

                        // FIXME: Fix this mess
                        switch (strPart)
                        {
                        case "void":
                            ElementType = CppTypes.Void;
                            break;

                        case "bool":
                            ElementType = CppTypes.Bool;
                            break;

                        case "char":
                            ElementType = CppTypes.Char;
                            break;

                        case "int":
                            ElementType = CppTypes.Int;
                            break;

                        case "float":
                            ElementType = CppTypes.Float;
                            break;

                        case "double":
                            ElementType = CppTypes.Double;
                            break;

                        default:
                            // otherwise it is the element type name...
                            ElementTypeName = strPart;
                            break;
                        }
                    }
                }
            }
        }