public static string DisplayText(CharacterSet CharSet, bool ReplaceSpaceChar = true, int MaxSize = 0x400, string OversizeMessage = "", short BreakWidth = -1) { int num; string str2 = ""; NumberRangeList list = CharSet.RangeList(); bool flag = true; for (num = 0; (num < list.Count) & flag; num++) { if (!IsDisplayRange(list[num].First, list[num].Last)) { flag = false; } } if (flag) { int num2 = CharSet.Count() - 1; for (num = 0; num <= num2; num++) { str2 = str2 + DisplayChar(CharSet[num], true); } return(str2); } return(DisplayRangeListText(CharSet.RangeList())); }
public static string DisplayRangeListText(NumberRangeList Ranges) { string str2 = ""; str2 = DisplayRangeText(Ranges[0]); int num2 = Ranges.Count - 1; for (int i = 1; i <= num2; i++) { NumberRange range = Ranges[i]; str2 = str2 + ", " + DisplayRangeText(Ranges[i]); range = null; } return(str2); }
public NumberRangeList RangeList() { NumberRangeList list2 = new NumberRangeList(); if (m_count >= 1) { int first = m_list[0]; int last = first; int num5 = m_count - 1; for (int i = 1; i <= num5; i++) { int num4 = m_list[i]; if (num4 != (last + 1)) { list2.Add(new NumberRange(first, last)); first = num4; } last = num4; } list2.Add(new NumberRange(first, last)); } return(list2); }
internal bool SaveVer5(string Path) { bool flag2; SimpleDB.Writer writer = new SimpleDB.Writer(); try { short num; short num2; writer.Open(Path, "GOLD Parser Tables/v5.0"); writer.NewRecord(); writer.StoreByte(0x70); writer.StoreInt16(0); string name = "Name"; writer.StoreString(name); writer.StoreString(this.Properties["Name"].Value); writer.NewRecord(); writer.StoreByte(0x70); writer.StoreInt16(1); name = "Version"; writer.StoreString(name); writer.StoreString(this.Properties["Version"].Value); writer.NewRecord(); writer.StoreByte(0x70); writer.StoreInt16(2); name = "Author"; writer.StoreString(name); writer.StoreString(this.Properties["Author"].Value); writer.NewRecord(); writer.StoreByte(0x70); writer.StoreInt16(3); name = "About"; writer.StoreString(name); writer.StoreString(this.Properties["About"].Value); writer.NewRecord(); writer.StoreByte(0x70); writer.StoreInt16(4); name = "Character Set"; writer.StoreString(name); writer.StoreString(this.Properties["Character Set"].Value); writer.NewRecord(); writer.StoreByte(0x70); writer.StoreInt16(5); name = "Character Mapping"; writer.StoreString(name); writer.StoreString(this.Properties["Character Mapping"].Value); writer.NewRecord(); writer.StoreByte(0x70); writer.StoreInt16(6); name = "Generated By"; writer.StoreString(name); writer.StoreString(this.Properties["Generated By"].Value); writer.NewRecord(); writer.StoreByte(0x70); writer.StoreInt16(7); name = "Generated Date"; writer.StoreString(name); writer.StoreString(this.Properties["Generated Date"].Value); writer.NewRecord(); writer.StoreByte(0x74); writer.StoreInt16(this.m_Symbol.Count()); writer.StoreInt16(this.m_CharSet.Count); writer.StoreInt16(this.m_Production.Count()); writer.StoreInt16(this.m_DFA.Count); writer.StoreInt16(this.m_LALR.Count); writer.StoreInt16(this.m_Group.Count); writer.NewRecord(); writer.StoreByte(0x49); writer.StoreInt16(this.m_DFA.InitialState); writer.StoreInt16(this.m_LALR.InitialState); short num3 = (short)(this.m_CharSet.Count - 1); for (num2 = 0; num2 <= num3; num2 = (short)(num2 + 1)) { NumberRangeList list = this.m_CharSet[num2].RangeList(); writer.NewRecord(); writer.StoreByte(0x63); writer.StoreInt16(num2); writer.StoreInt16(0); writer.StoreInt16(list.Count); writer.StoreEmpty(); short num4 = (short)(list.Count - 1); num = 0; while (num <= num4) { writer.StoreInt16(list[num].First); writer.StoreInt16(list[num].Last); num = (short)(num + 1); } } short num5 = (short)(this.m_Symbol.Count() - 1); for (num2 = 0; num2 <= num5; num2 = (short)(num2 + 1)) { writer.NewRecord(); writer.StoreByte(0x53); writer.StoreInt16(num2); Symbol symbol = this.m_Symbol[num2]; Symbol symbol2 = symbol; name = symbol2.Name; writer.StoreString(name); symbol2.Name = name; writer.StoreInt16((int)symbol.Type); symbol = null; } short num6 = (short)(this.m_Group.Count - 1); for (num2 = 0; num2 <= num6; num2 = (short)(num2 + 1)) { writer.NewRecord(); writer.StoreByte(0x67); Group group = this.m_Group[num2]; writer.StoreInt16(num2); writer.StoreString(group.Name); writer.StoreInt16(group.Container.TableIndex); writer.StoreInt16(group.Start.TableIndex); writer.StoreInt16(group.End.TableIndex); writer.StoreInt16((int)group.Advance); writer.StoreInt16((int)group.Ending); writer.StoreEmpty(); writer.StoreInt16(group.Nesting.Count); short num7 = (short)(group.Nesting.Count - 1); num = 0; while (num <= num7) { writer.StoreInt16(group.Nesting[num]); num = (short)(num + 1); } group = null; } short num8 = (short)(this.m_Production.Count() - 1); for (num2 = 0; num2 <= num8; num2 = (short)(num2 + 1)) { writer.NewRecord(); writer.StoreByte(0x52); writer.StoreInt16(num2); writer.StoreInt16(this.m_Production[num2].Head.TableIndex); writer.StoreEmpty(); short num9 = (short)(this.m_Production[num2].Handle().Count() - 1); num = 0; while (num <= num9) { writer.StoreInt16(this.m_Production[num2].Handle()[num].TableIndex); num = (short)(num + 1); } } short num10 = (short)(this.DFA.Count - 1); for (num2 = 0; num2 <= num10; num2 = (short)(num2 + 1)) { writer.NewRecord(); writer.StoreByte(0x44); writer.StoreInt16(num2); if (this.DFA[num2].Accept != null) { writer.StoreBoolean(true); writer.StoreInt16(this.DFA[num2].Accept.TableIndex); } else { writer.StoreBoolean(false); writer.StoreInt16(0); } writer.StoreEmpty(); short num11 = (short)(this.DFA[num2].Edges().Count() - 1); num = 0; while (num <= num11) { writer.StoreInt16(this.DFA[num2].Edges()[num].Characters.TableIndex); writer.StoreInt16(this.DFA[num2].Edges()[num].Target); writer.StoreEmpty(); num = (short)(num + 1); } } short num12 = (short)(this.LALR.Count - 1); for (num2 = 0; num2 <= num12; num2 = (short)(num2 + 1)) { writer.NewRecord(); writer.StoreByte(0x4c); writer.StoreInt16(num2); writer.StoreEmpty(); short num13 = (short)(this.LALR[num2].Count - 1); for (num = 0; num <= num13; num = (short)(num + 1)) { writer.StoreInt16(this.LALR[num2][num].SymbolIndex()); writer.StoreInt16((int)this.LALR[num2][num].Type()); writer.StoreInt16(this.LALR[num2][num].Value()); writer.StoreEmpty(); } } writer.Close(); flag2 = true; } catch (Exception exception1) { Exception exception = exception1; flag2 = false; } return(flag2); }