Ejemplo n.º 1
0
        public void ToString(StringBuilder stringBuilder)
        {
            if (Modifier == CorElementType.ELEMENT_TYPE_CMOD_OPT)
            {
                stringBuilder.Insert(0, string.Format("modopt({0})", TokenObject));
            }
            else
            {
                stringBuilder.Insert(0, string.Format("modreq({0})", TokenObject));
            }

            if (NextItem != null)
            {
                Type nextItemType = NextItem.GetType();

                if (nextItemType == typeof(NuGenTypeSignatureItem))
                {
                    stringBuilder.Insert(0, " ");
                    stringBuilder.Insert(0, NextItem);
                }
                else if (nextItemType == typeof(NuGenCustomModifier))
                {
                    stringBuilder.Insert(0, " ");
                    ((NuGenCustomModifier)NextItem).ToString(stringBuilder);
                }
            }
        }
Ejemplo n.º 2
0
 //CalcCount returns the number of parameters for the chain of factors
 public override int CalcCount()
 {
     if (NextItem != null)
     {
         return(NextItem.CalcCount() * Parameters.Count);
     }
     return(Parameters.Count);
 }
Ejemplo n.º 3
0
 public override void Process(Component Simulation, string prefix, SortedDictionary <string, string> factorsToMatch)
 {
     foreach (string par in Parameters)
     {
         if (factorsToMatch.Contains(new KeyValuePair <string, string>((Builder.useFQKeys ? pfx(prefix) + FactorComponent.Name + "." : "") + Variable.Name, par)))
         {
             //replace each target that is within the provided simulation with the child's xml
             foreach (string target in Targets)
             {
                 string    sRelativeTarget = target.Substring(target.IndexOf(Simulation.Name) + Simulation.Name.Length + 1);
                 Component targetComp      = Simulation.Find(sRelativeTarget);
                 if (targetComp != null)
                 {
                     //find name of var in ui or CustomUI nodes
                     XmlNode variablesNode = targetComp.ContentsAsXML;
                     XmlNode varNode       = variablesNode.SelectSingleNode("//ui/" + Variable.Name + " | " + "//CustomUI/" + Variable.Name);
                     if (varNode != null)
                     {
                         varNode.InnerText = par;
                     }
                     else
                     {
                         string sSelect = "//property[@name='" + Variable.Name + "']";
                         varNode = variablesNode.SelectSingleNode(sSelect);
                         if (varNode == null)
                         {
                             sSelect = "//" + Variable.Name;
                             varNode = variablesNode.SelectSingleNode(sSelect);
                         }
                         if (varNode != null)
                         {
                             varNode.InnerText = par;
                         }//TODO if else then record as an error
                     }
                     targetComp.Contents = variablesNode.OuterXml;
                 }
                 else
                 {
                     throw new Exception("target " + target + ", rel path" + sRelativeTarget + " was not found in factor " + (Builder.useFQKeys ? pfx(prefix) + FactorComponent.Name + "." : "") + Variable.Name);
                 }
             }
         }
     }
     if (NextItem != null)
     {
         //call next factor in the list
         NextItem.Process(Simulation, prefix, factorsToMatch);
     }
 }
Ejemplo n.º 4
0
        public override void CalcFactorialList(List <string> factorials, string prefix, SortedDictionary <string, string> scratch)
        {
            foreach (string par in Parameters)
            {
                SortedDictionary <string, string> s = scratch;
                s[(Builder.useFQKeys ? pfx(prefix) + FactorComponent.Name + "." : "") + Variable.Name] = par;

                if (NextItem != null)
                {
                    NextItem.CalcFactorialList(factorials, prefix, s);
                }
                else
                {
                    factorials.Add(ToKVString(s));
                }
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Invokes the NextItem event
 /// </summary>
 protected void OnNextItem(string item)
 => NextItem?.Invoke(this, item);
Ejemplo n.º 6
0
        private void BuildTreeView()
        {
            treeView1.Nodes.Clear();
            TreeNode node;
            int      CharCount = charCountTrb.Value;

            Stream stream = File.OpenRead(CSVFilename);

            if (CSVFilename.EndsWith("gz"))
            {
                stream = new GZipStream(stream, System.IO.Compression.CompressionMode.Decompress);
            }
            using (var reader = new StreamReader(stream))
            {
                var data   = CsvParser.ParseHeadAndTail(reader, ',', '"');
                var header = data.Item1;
                var lines  = data.Item2;
                node = treeView1.Nodes.Add(header[0]);

                string Start;
                string Item = header[0];
                string ItemStart;
                string NextItem;
                string NextItemStart;

                Start = Item.Substring(0, Item.Length > CharCount ? CharCount : Item.Length);

                for (var i = 1; i < header.Count; i++)
                {
                    Item      = header[i];
                    ItemStart = Item.Substring(0, Item.Length > CharCount ? CharCount : Item.Length);

                    if (i < header.Count - 1)
                    {
                        NextItem      = header[i + 1];
                        NextItemStart = NextItem.Substring(0, NextItem.Length > CharCount ? CharCount : NextItem.Length);
                    }
                    else
                    {
                        NextItem      = "";
                        NextItemStart = "";
                    }

                    if (Item.Substring(0, Item.Length > CharCount ? CharCount : Item.Length) == Start)
                    {
                        node.Nodes.Add(Item);
                    }
                    else
                    {
                        if (NextItemStart == ItemStart)
                        {
                            node = treeView1.Nodes.Add(Item.Substring(0, Item.Length > CharCount ? CharCount : Item.Length));
                            node.Nodes.Add(Item);
                        }
                        else
                        {
                            node = treeView1.Nodes.Add(Item);
                        }
                        Start = Item.Substring(0, Item.Length > CharCount ? CharCount : Item.Length);
                    }
                }

                // if (selectionList.Count > 0)
                SetCheckStatus();

                SearchTreeView(false, SearchTb.Text);
            }
        }
Ejemplo n.º 7
0
 public bool Equals(NextItem <T> other) => EqualityComparer <T> .Default.Equals(Item, other.Item) && Equals(Token, other.Token);
        private string NativeTypeToString()
        {
            string result      = string.Empty;
            bool   addNextItem = true;

            switch (NativeType)
            {
            case CorNativeType.NATIVE_TYPE_INT:
                result = "int";
                break;

            case CorNativeType.NATIVE_TYPE_UINT:
                result = "unsigned int";
                break;

            case CorNativeType.NATIVE_TYPE_U1:
                result = "unsigned int8";
                break;

            case CorNativeType.NATIVE_TYPE_U2:
                result = "unsigned int16";
                break;

            case CorNativeType.NATIVE_TYPE_U4:
                result = "unsigned int32";
                break;

            case CorNativeType.NATIVE_TYPE_U8:
                result = "unsigned int64";
                break;

            case CorNativeType.NATIVE_TYPE_I1:
                result = "int8";
                break;

            case CorNativeType.NATIVE_TYPE_I2:
                result = "int16";
                break;

            case CorNativeType.NATIVE_TYPE_I4:
                result = "int32";
                break;

            case CorNativeType.NATIVE_TYPE_I8:
                result = "int64";
                break;

            case CorNativeType.NATIVE_TYPE_R4:
                result = "float32";
                break;

            case CorNativeType.NATIVE_TYPE_R8:
                result = "float64";
                break;

            case CorNativeType.NATIVE_TYPE_BSTR:
                result = "bstr";
                break;

            case CorNativeType.NATIVE_TYPE_IDISPATCH:
                result = "idispatch";
                break;

            case CorNativeType.NATIVE_TYPE_IUNKNOWN:
                result = "iunknown";
                break;

            case CorNativeType.NATIVE_TYPE_INTF:
                result = "interface";
                break;

            case CorNativeType.NATIVE_TYPE_SAFEARRAY:
                result = "safearray";
                break;

            case CorNativeType.NATIVE_TYPE_STRUCT:
                result = "struct";
                break;

            case CorNativeType.NATIVE_TYPE_CUSTOMMARSHALER:
                StringBuilder resultBuilder  = new StringBuilder();
                bool          parameterFound = false;

                parameterFound = CreateParameterText(resultBuilder, Guid, parameterFound);
                parameterFound = CreateParameterText(resultBuilder, UnmanagedType, parameterFound);
                parameterFound = CreateParameterText(resultBuilder, ManagedType, parameterFound);
                parameterFound = CreateParameterText(resultBuilder, Cookie, parameterFound);

                resultBuilder.Insert(0, "custom(");
                resultBuilder.Append(")");
                result = resultBuilder.ToString();
                break;

            case CorNativeType.NATIVE_TYPE_LPSTR:
                result = "lpstr";
                break;

            case CorNativeType.NATIVE_TYPE_LPTSTR:
                result = "lptstr";
                break;

            case CorNativeType.NATIVE_TYPE_LPWSTR:
                result = "lpwstr";
                break;

            case CorNativeType.NATIVE_TYPE_LPSTRUCT:
                result = "lpstruct";
                break;

            case CorNativeType.NATIVE_TYPE_ASANY:
                result = "as any";
                break;

            case CorNativeType.NATIVE_TYPE_ARRAY:
                addNextItem   = false;
                resultBuilder = new StringBuilder();

                resultBuilder.Append(NextItem);
                resultBuilder.Append("[");

                if (ParamNumber >= 0)
                {
                    resultBuilder.Append(" + ");
                    resultBuilder.Append(ParamNumber);
                }
                resultBuilder.Append("]");

                result = resultBuilder.ToString();
                break;

            case CorNativeType.NATIVE_TYPE_MAX:
                break;

            case CorNativeType.NATIVE_TYPE_BOOLEAN:
                result = "bool";
                break;

            case CorNativeType.NATIVE_TYPE_VARIANTBOOL:
                result = "variant bool";
                break;

            case CorNativeType.NATIVE_TYPE_FUNC:
                result = "method";
                break;

            case CorNativeType.NATIVE_TYPE_BYVALSTR:
                result = "byvalstr";
                break;

            case CorNativeType.NATIVE_TYPE_FIXEDSYSSTRING:
                result = string.Format("fixed sysstring [{0}]", NumberElem);
                break;

            case CorNativeType.NATIVE_TYPE_FIXEDARRAY:
                result      = string.Format("fixed array [{0}]", NumberElem);
                addNextItem = false;
                break;

            case CorNativeType.NATIVE_TYPE_ERROR:
                result = "error";
                break;

            case CorNativeType.NATIVE_TYPE_CURRENCY:
                result = "currency";
                break;

            case CorNativeType.NATIVE_TYPE_DATE:
                result = "date";
                break;

            case CorNativeType.NATIVE_TYPE_DECIMAL:
                result = "decimal";
                break;

            case CorNativeType.NATIVE_TYPE_OBJECTREF:
                result = "objectref";
                break;

            case CorNativeType.NATIVE_TYPE_SYSCHAR:
                result = "syschar";
                break;

            case CorNativeType.NATIVE_TYPE_TBSTR:
                result = "tbstr";
                break;

            case CorNativeType.NATIVE_TYPE_VARIANT:
                result = "variant";
                break;

            case CorNativeType.NATIVE_TYPE_VOID:
                result = "void";
                break;

            default:
                throw new NotImplementedException(string.Format("Unknown native type ('{0}').", NativeType));
            }

            if (addNextItem && NextItem != null)
            {
                result += " " + NextItem.ToString();
            }

            return(result);
        }