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()); }
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); }
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()); }
/// <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) { }
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(); }
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(); }
public DataStreamParserType(string name, SequenceParserType baseType) : base(name) { BaseType = baseType; }
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); }
public DataStreamParserType(string name, SequenceParserType baseType) : base(name) { BaseType = baseType; }
/// <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) { }