Example #1
0
        private static Guid[] GetChainFromStrings(SequenceParserType parent, string[] strings)
        {
            List <Guid> reference = new List <Guid>();

            if (parent != null)
            {
                if (strings.Length == 0)
                {
                    throw new ArgumentException(CANAPE.Parser.Properties.Resources.MemberEntryReference_InvalidChain);
                }

                foreach (string s in strings)
                {
                    MemberEntry entry = parent.FindMember(s);

                    if (entry != null)
                    {
                        reference.Add(entry.Uuid);
                    }
                    else
                    {
                        // Could not find entry
                        throw new ArgumentException(String.Format(CANAPE.Parser.Properties.Resources.MemberEntryReference_CouldNotFindMember, s));
                    }
                }
            }
            else
            {
                throw new ArgumentNullException("parent");
            }

            return(reference.ToArray());
        }
Example #2
0
        internal ParserType GetReference(string reference)
        {
            ParserType ret = null;

            string[] vals = reference.Split('/');
            if (Parent != null)
            {
                SequenceParserType currParent = Parent;

                for (int i = 0; i < vals.Length - 1; ++i)
                {
                    MemberEntry ent = currParent.FindMember(vals[i]);

                    SequenceParserType s = ent.BaseType as SequenceParserType;
                    if (s == null)
                    {
                        currParent = null;
                        break;
                    }
                    else
                    {
                        currParent = s;
                    }
                }

                if (currParent != null)
                {
                    MemberEntry ent = currParent.FindMember(vals[vals.Length - 1]);
                }
            }

            return(ret);
        }
Example #3
0
        private MemberEntry[] GetEntries(SequenceParserType parent, Guid[] reference)
        {
            List <MemberEntry> entries = new List <MemberEntry>();

            if (parent != null)
            {
                if (reference.Length == 0)
                {
                    throw new ArgumentException(CANAPE.Parser.Properties.Resources.MemberEntryReference_InvalidChain);
                }

                for (int i = 0; i < reference.Length; ++i)
                {
                    MemberEntry entry = parent.FindMember(reference[i]);

                    if (entry != null)
                    {
                        entries.Add(entry);

                        if (entry.BaseType is SequenceParserType)
                        {
                            if (i < (reference.Length - 1))
                            {
                                parent = (SequenceParserType)((SequenceMemberEntry)entry).BaseType;
                            }
                            else
                            {
                                throw new ArgumentException(CANAPE.Parser.Properties.Resources.MemberEntryReference_InvalidChainMustStartWithSequences);
                            }
                        }
                        else if ((i != reference.Length - 1) || !IsValidType(entry))
                        {
                            throw new ArgumentException(CANAPE.Parser.Properties.Resources.MemberEntryReference_InvalidChainMustEndWithTypes);
                        }
                    }
                    else
                    {
                        // Could not find entry
                        throw new ArgumentException(String.Format(CANAPE.Parser.Properties.Resources.MemberEntryReference_CouldNotFindMember, reference[i]));
                    }
                }
            }
            else
            {
                throw new ArgumentNullException("parent");
            }

            return(entries.ToArray());
        }
Example #4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">Name of the entry</param>
 /// <param name="baseType">The base type</param>
 public SequenceMemberEntry(string name, SequenceParserType baseType)
     : base(name, baseType)
 {
 }
Example #5
0
        private MemberEntry[] GetEntries(SequenceParserType parent, Guid[] reference)
        {
            List<MemberEntry> entries = new List<MemberEntry>();

            if (parent != null)
            {
                if (reference.Length == 0)
                {
                    throw new ArgumentException(CANAPE.Parser.Properties.Resources.MemberEntryReference_InvalidChain);
                }

                for (int i = 0; i < reference.Length; ++i)
                {
                    MemberEntry entry = parent.FindMember(reference[i]);

                    if (entry != null)
                    {
                        entries.Add(entry);

                        if (entry.BaseType is SequenceParserType)
                        {
                            if (i < (reference.Length - 1))
                            {
                                parent = (SequenceParserType)((SequenceMemberEntry)entry).BaseType;
                            }
                            else
                            {
                                throw new ArgumentException(CANAPE.Parser.Properties.Resources.MemberEntryReference_InvalidChainMustStartWithSequences);
                            }
                        }
                        else if ((i != reference.Length - 1) || !IsValidType(entry))
                        {
                            throw new ArgumentException(CANAPE.Parser.Properties.Resources.MemberEntryReference_InvalidChainMustEndWithTypes);
                        }
                    }
                    else
                    {
                        // Could not find entry
                        throw new ArgumentException(String.Format(CANAPE.Parser.Properties.Resources.MemberEntryReference_CouldNotFindMember, reference[i]));
                    }
                }
            }
            else
            {
                throw new ArgumentNullException("parent");
            }

            return entries.ToArray();
        }
Example #6
0
        private static Guid[] GetChainFromStrings(SequenceParserType parent, string[] strings)
        {
            List<Guid> reference = new List<Guid>();

            if (parent != null)
            {
                if (strings.Length == 0)
                {
                    throw new ArgumentException(CANAPE.Parser.Properties.Resources.MemberEntryReference_InvalidChain);
                }

                foreach (string s in strings)
                {
                    MemberEntry entry = parent.FindMember(s);

                    if (entry != null)
                    {
                        reference.Add(entry.Uuid);
                    }
                    else
                    {
                        // Could not find entry
                        throw new ArgumentException(String.Format(CANAPE.Parser.Properties.Resources.MemberEntryReference_CouldNotFindMember, s));
                    }
                }
            }
            else
            {
                throw new ArgumentNullException("parent");
            }

            return reference.ToArray();
        }
Example #7
0
 public DataStreamParserType(string name, SequenceParserType baseType)
     : base(name)
 {
     BaseType = baseType;
 }
Example #8
0
        private void addSequenceToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SequenceParserType type = new SequenceParserType(GenerateName("Sequence"));
            type.DefaultEndian = Endian.BigEndian;

            _document.AddParserType(type);

            treeViewTypes.SelectedNode = AddTreeNode(_sequenceNode, type, true);
        }
Example #9
0
 public DataStreamParserType(string name, SequenceParserType baseType)
     : base(name)
 {
     BaseType = baseType;
 }
Example #10
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">Name of the entry</param>
 /// <param name="baseType">The base type</param>
 public SequenceMemberEntry(string name, SequenceParserType baseType)
     : base(name, baseType)
 {
 }