scripts
This commit is contained in:
@@ -0,0 +1,904 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Xml
|
||||
{
|
||||
// Token: 0x020000BD RID: 189
|
||||
[CLSCompliant(false)]
|
||||
public class MiniParser
|
||||
{
|
||||
// Token: 0x060006C5 RID: 1733 RVA: 0x00025DEC File Offset: 0x00023FEC
|
||||
public MiniParser()
|
||||
{
|
||||
this.twoCharBuff = new int[2];
|
||||
this.splitCData = false;
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x060006C7 RID: 1735 RVA: 0x00025E8C File Offset: 0x0002408C
|
||||
public void Reset()
|
||||
{
|
||||
this.line = 0;
|
||||
this.col = 0;
|
||||
}
|
||||
|
||||
// Token: 0x060006C8 RID: 1736 RVA: 0x00025E9C File Offset: 0x0002409C
|
||||
protected static bool StrEquals(string str, StringBuilder sb, int sbStart, int len)
|
||||
{
|
||||
if (len != str.Length)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < len; i++)
|
||||
{
|
||||
if (str[i] != sb[sbStart + i])
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x060006C9 RID: 1737 RVA: 0x00025EE4 File Offset: 0x000240E4
|
||||
protected void FatalErr(string descr)
|
||||
{
|
||||
throw new MiniParser.XMLError(descr, this.line, this.col);
|
||||
}
|
||||
|
||||
// Token: 0x060006CA RID: 1738 RVA: 0x00025EF8 File Offset: 0x000240F8
|
||||
protected static int Xlat(int charCode, int state)
|
||||
{
|
||||
int num = state * MiniParser.INPUT_RANGE;
|
||||
int num2 = Math.Min(MiniParser.tbl.Length - num, MiniParser.INPUT_RANGE);
|
||||
while (--num2 >= 0)
|
||||
{
|
||||
ushort num3 = MiniParser.tbl[num];
|
||||
if (charCode == num3 >> 12)
|
||||
{
|
||||
return (int)(num3 & 4095);
|
||||
}
|
||||
num++;
|
||||
}
|
||||
return 4095;
|
||||
}
|
||||
|
||||
// Token: 0x060006CB RID: 1739 RVA: 0x00025F54 File Offset: 0x00024154
|
||||
public void Parse(MiniParser.IReader reader, MiniParser.IHandler handler)
|
||||
{
|
||||
if (reader == null)
|
||||
{
|
||||
throw new ArgumentNullException("reader");
|
||||
}
|
||||
if (handler == null)
|
||||
{
|
||||
handler = new MiniParser.HandlerAdapter();
|
||||
}
|
||||
MiniParser.AttrListImpl attrListImpl = new MiniParser.AttrListImpl();
|
||||
string text = null;
|
||||
Stack stack = new Stack();
|
||||
string text2 = null;
|
||||
this.line = 1;
|
||||
this.col = 0;
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
bool flag = false;
|
||||
bool flag2 = false;
|
||||
bool flag3 = false;
|
||||
int num3 = 0;
|
||||
handler.OnStartParsing(this);
|
||||
for (;;)
|
||||
{
|
||||
this.col++;
|
||||
num = reader.Read();
|
||||
if (num == -1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
int num4 = "<>/?=&'\"![ ]\t\r\n".IndexOf((char)num) & 15;
|
||||
if (num4 != 13)
|
||||
{
|
||||
if (num4 == 12)
|
||||
{
|
||||
num4 = 10;
|
||||
}
|
||||
if (num4 == 14)
|
||||
{
|
||||
this.col = 0;
|
||||
this.line++;
|
||||
num4 = 10;
|
||||
}
|
||||
int num5 = MiniParser.Xlat(num4, num2);
|
||||
num2 = num5 & 255;
|
||||
if (num != 10 || (num2 != 14 && num2 != 15))
|
||||
{
|
||||
num5 >>= 8;
|
||||
if (num2 >= 128)
|
||||
{
|
||||
if (num2 == 255)
|
||||
{
|
||||
this.FatalErr("State dispatch error.");
|
||||
}
|
||||
else
|
||||
{
|
||||
this.FatalErr(MiniParser.errors[num2 ^ 128]);
|
||||
}
|
||||
}
|
||||
switch (num5)
|
||||
{
|
||||
case 0:
|
||||
goto IL_19F;
|
||||
case 1:
|
||||
{
|
||||
text2 = stringBuilder.ToString();
|
||||
stringBuilder = new StringBuilder();
|
||||
string text3 = null;
|
||||
if (stack.Count == 0 || text2 != (text3 = stack.Pop() as string))
|
||||
{
|
||||
if (text3 == null)
|
||||
{
|
||||
this.FatalErr("Tag stack underflow");
|
||||
}
|
||||
else
|
||||
{
|
||||
this.FatalErr(string.Format("Expected end tag '{0}' but found '{1}'", text2, text3));
|
||||
}
|
||||
}
|
||||
handler.OnEndElement(text2);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
text2 = stringBuilder.ToString();
|
||||
stringBuilder = new StringBuilder();
|
||||
if (num == 47 || num == 62)
|
||||
{
|
||||
goto IL_19F;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
text = stringBuilder.ToString();
|
||||
stringBuilder = new StringBuilder();
|
||||
break;
|
||||
case 4:
|
||||
if (text == null)
|
||||
{
|
||||
this.FatalErr("Internal error.");
|
||||
}
|
||||
attrListImpl.Add(text, stringBuilder.ToString());
|
||||
stringBuilder = new StringBuilder();
|
||||
text = null;
|
||||
break;
|
||||
case 5:
|
||||
handler.OnChars(stringBuilder.ToString());
|
||||
stringBuilder = new StringBuilder();
|
||||
break;
|
||||
case 6:
|
||||
{
|
||||
string text4 = "CDATA[";
|
||||
flag2 = false;
|
||||
flag3 = false;
|
||||
if (num == 45)
|
||||
{
|
||||
num = reader.Read();
|
||||
if (num != 45)
|
||||
{
|
||||
this.FatalErr("Invalid comment");
|
||||
}
|
||||
this.col++;
|
||||
flag2 = true;
|
||||
this.twoCharBuff[0] = -1;
|
||||
this.twoCharBuff[1] = -1;
|
||||
}
|
||||
else if (num != 91)
|
||||
{
|
||||
flag3 = true;
|
||||
num3 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < text4.Length; i++)
|
||||
{
|
||||
if (reader.Read() != (int)text4[i])
|
||||
{
|
||||
this.col += i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.col += text4.Length;
|
||||
flag = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
int num6 = 0;
|
||||
num = 93;
|
||||
while (num == 93)
|
||||
{
|
||||
num = reader.Read();
|
||||
num6++;
|
||||
}
|
||||
if (num != 62)
|
||||
{
|
||||
for (int j = 0; j < num6; j++)
|
||||
{
|
||||
stringBuilder.Append(']');
|
||||
}
|
||||
stringBuilder.Append((char)num);
|
||||
num2 = 18;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int k = 0; k < num6 - 2; k++)
|
||||
{
|
||||
stringBuilder.Append(']');
|
||||
}
|
||||
flag = false;
|
||||
}
|
||||
this.col += num6;
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
this.FatalErr(string.Format("Error {0}", num2));
|
||||
break;
|
||||
case 9:
|
||||
break;
|
||||
case 10:
|
||||
stringBuilder = new StringBuilder();
|
||||
if (num != 60)
|
||||
{
|
||||
goto IL_465;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
goto IL_465;
|
||||
case 12:
|
||||
if (flag2)
|
||||
{
|
||||
if (num == 62 && this.twoCharBuff[0] == 45 && this.twoCharBuff[1] == 45)
|
||||
{
|
||||
flag2 = false;
|
||||
num2 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.twoCharBuff[0] = this.twoCharBuff[1];
|
||||
this.twoCharBuff[1] = num;
|
||||
}
|
||||
}
|
||||
else if (flag3)
|
||||
{
|
||||
if (num == 60 || num == 62)
|
||||
{
|
||||
num3 ^= 1;
|
||||
}
|
||||
if (num == 62 && num3 != 0)
|
||||
{
|
||||
flag3 = false;
|
||||
num2 = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.splitCData && stringBuilder.Length > 0 && flag)
|
||||
{
|
||||
handler.OnChars(stringBuilder.ToString());
|
||||
stringBuilder = new StringBuilder();
|
||||
}
|
||||
flag = false;
|
||||
stringBuilder.Append((char)num);
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
{
|
||||
num = reader.Read();
|
||||
int num7 = this.col + 1;
|
||||
if (num == 35)
|
||||
{
|
||||
int num8 = 10;
|
||||
int num9 = 0;
|
||||
int num10 = 0;
|
||||
num = reader.Read();
|
||||
num7++;
|
||||
if (num == 120)
|
||||
{
|
||||
num = reader.Read();
|
||||
num7++;
|
||||
num8 = 16;
|
||||
}
|
||||
NumberStyles numberStyles = ((num8 != 16) ? NumberStyles.Integer : NumberStyles.HexNumber);
|
||||
for (;;)
|
||||
{
|
||||
int num11 = -1;
|
||||
if (char.IsNumber((char)num))
|
||||
{
|
||||
goto IL_5D9;
|
||||
}
|
||||
if ("abcdef".IndexOf(char.ToLower((char)num)) != -1)
|
||||
{
|
||||
goto Block_43;
|
||||
}
|
||||
IL_5F9:
|
||||
if (num11 == -1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
num9 *= num8;
|
||||
num9 += num11;
|
||||
num10++;
|
||||
num = reader.Read();
|
||||
num7++;
|
||||
continue;
|
||||
Block_43:
|
||||
try
|
||||
{
|
||||
IL_5D9:
|
||||
num11 = int.Parse(new string((char)num, 1), numberStyles);
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
num11 = -1;
|
||||
}
|
||||
goto IL_5F9;
|
||||
}
|
||||
if (num == 59 && num10 > 0)
|
||||
{
|
||||
stringBuilder.Append((char)num9);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.FatalErr("Bad char ref");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string text5 = "aglmopqstu";
|
||||
string text6 = "&'\"><";
|
||||
int num12 = 0;
|
||||
int num13 = 15;
|
||||
int num14 = 0;
|
||||
int length = stringBuilder.Length;
|
||||
for (;;)
|
||||
{
|
||||
if (num12 != 15)
|
||||
{
|
||||
num12 = text5.IndexOf((char)num) & 15;
|
||||
}
|
||||
if (num12 == 15)
|
||||
{
|
||||
this.FatalErr(MiniParser.errors[7]);
|
||||
}
|
||||
stringBuilder.Append((char)num);
|
||||
int num15 = (int)"U㾏侏ཟク\ue1f4⊙\ueeff\ueeffo"[num12];
|
||||
int num16 = (num15 >> 4) & 15;
|
||||
int num17 = num15 & 15;
|
||||
int num18 = num15 >> 12;
|
||||
int num19 = (num15 >> 8) & 15;
|
||||
num = reader.Read();
|
||||
num7++;
|
||||
num12 = 15;
|
||||
if (num16 != 15 && num == (int)text5[num16])
|
||||
{
|
||||
if (num18 < 14)
|
||||
{
|
||||
num13 = num18;
|
||||
}
|
||||
num14 = 12;
|
||||
}
|
||||
else if (num17 != 15 && num == (int)text5[num17])
|
||||
{
|
||||
if (num19 < 14)
|
||||
{
|
||||
num13 = num19;
|
||||
}
|
||||
num14 = 8;
|
||||
}
|
||||
else if (num == 59)
|
||||
{
|
||||
if (num13 != 15 && num14 != 0 && ((num15 >> num14) & 15) == 14)
|
||||
{
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
num12 = 0;
|
||||
}
|
||||
int num20 = num7 - this.col - 1;
|
||||
if (num20 > 0 && num20 < 5 && (MiniParser.StrEquals("amp", stringBuilder, length, num20) || MiniParser.StrEquals("apos", stringBuilder, length, num20) || MiniParser.StrEquals("quot", stringBuilder, length, num20) || MiniParser.StrEquals("lt", stringBuilder, length, num20) || MiniParser.StrEquals("gt", stringBuilder, length, num20)))
|
||||
{
|
||||
stringBuilder.Length = length;
|
||||
stringBuilder.Append(text6[num13]);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.FatalErr(MiniParser.errors[7]);
|
||||
}
|
||||
}
|
||||
this.col = num7;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
this.FatalErr(string.Format("Unexpected action code - {0}.", num5));
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
IL_19F:
|
||||
handler.OnStartElement(text2, attrListImpl);
|
||||
if (num != 47)
|
||||
{
|
||||
stack.Push(text2);
|
||||
}
|
||||
else
|
||||
{
|
||||
handler.OnEndElement(text2);
|
||||
}
|
||||
attrListImpl.Clear();
|
||||
continue;
|
||||
IL_465:
|
||||
stringBuilder.Append((char)num);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (num2 != 0)
|
||||
{
|
||||
this.FatalErr("Unexpected EOF");
|
||||
}
|
||||
handler.OnEndParsing(this);
|
||||
}
|
||||
|
||||
// Token: 0x04000331 RID: 817
|
||||
private static readonly int INPUT_RANGE = 13;
|
||||
|
||||
// Token: 0x04000332 RID: 818
|
||||
private static readonly ushort[] tbl = new ushort[]
|
||||
{
|
||||
2305, 43264, 63616, 10368, 6272, 14464, 18560, 22656, 26752, 34944,
|
||||
39040, 47232, 30848, 2177, 10498, 6277, 14595, 18561, 22657, 26753,
|
||||
35088, 39041, 43137, 47233, 30849, 64004, 4352, 43266, 64258, 2177,
|
||||
10369, 14465, 18561, 22657, 26753, 34945, 39041, 47233, 30849, 14597,
|
||||
2307, 10499, 6403, 18691, 22787, 26883, 35075, 39171, 43267, 47363,
|
||||
30979, 63747, 64260, 8710, 4615, 41480, 2177, 14465, 18561, 22657,
|
||||
26753, 34945, 39041, 47233, 30849, 6400, 2307, 10499, 14595, 18691,
|
||||
22787, 26883, 35075, 39171, 43267, 47363, 30979, 63747, 6400, 2177,
|
||||
10369, 14465, 18561, 22657, 26753, 34945, 39041, 43137, 47233, 30849,
|
||||
63617, 2561, 23818, 11274, 7178, 15370, 19466, 27658, 35850, 39946,
|
||||
43783, 48138, 31754, 64522, 64265, 8198, 4103, 43272, 2177, 14465,
|
||||
18561, 22657, 26753, 34945, 39041, 47233, 30849, 64265, 17163, 43276,
|
||||
2178, 10370, 6274, 14466, 22658, 26754, 34946, 39042, 47234, 30850,
|
||||
2317, 23818, 11274, 7178, 15370, 19466, 27658, 35850, 39946, 44042,
|
||||
48138, 31754, 64522, 26894, 30991, 43275, 2180, 10372, 6276, 14468,
|
||||
18564, 22660, 34948, 39044, 47236, 63620, 17163, 43276, 2178, 10370,
|
||||
6274, 14466, 22658, 26754, 34946, 39042, 47234, 30850, 63618, 9474,
|
||||
35088, 2182, 6278, 14470, 18566, 22662, 26758, 39046, 43142, 47238,
|
||||
30854, 63622, 25617, 23822, 2830, 11022, 6926, 15118, 19214, 35598,
|
||||
39694, 43790, 47886, 31502, 64270, 29713, 23823, 2831, 11023, 6927,
|
||||
15119, 19215, 27407, 35599, 39695, 43791, 47887, 64271, 38418, 6400,
|
||||
1555, 9747, 13843, 17939, 22035, 26131, 34323, 42515, 46611, 30227,
|
||||
62995, 8198, 4103, 43281, 64265, 2177, 14465, 18561, 22657, 26753,
|
||||
34945, 39041, 47233, 30849, 46858, 3090, 11282, 7186, 15378, 19474,
|
||||
23570, 27666, 35858, 39954, 44050, 31762, 64530, 3091, 11283, 7187,
|
||||
15379, 19475, 23571, 27667, 35859, 39955, 44051, 48147, 31763, 64531,
|
||||
ushort.MaxValue, ushort.MaxValue
|
||||
};
|
||||
|
||||
// Token: 0x04000333 RID: 819
|
||||
protected static string[] errors = new string[] { "Expected element", "Invalid character in tag", "No '='", "Invalid character entity", "Invalid attr value", "Empty tag", "No end tag", "Bad entity ref" };
|
||||
|
||||
// Token: 0x04000334 RID: 820
|
||||
protected int line;
|
||||
|
||||
// Token: 0x04000335 RID: 821
|
||||
protected int col;
|
||||
|
||||
// Token: 0x04000336 RID: 822
|
||||
protected int[] twoCharBuff;
|
||||
|
||||
// Token: 0x04000337 RID: 823
|
||||
protected bool splitCData;
|
||||
|
||||
// Token: 0x020000BE RID: 190
|
||||
public interface IReader
|
||||
{
|
||||
// Token: 0x060006CC RID: 1740
|
||||
int Read();
|
||||
}
|
||||
|
||||
// Token: 0x020000BF RID: 191
|
||||
public interface IAttrList
|
||||
{
|
||||
// Token: 0x170001A4 RID: 420
|
||||
// (get) Token: 0x060006CD RID: 1741
|
||||
int Length { get; }
|
||||
|
||||
// Token: 0x170001A5 RID: 421
|
||||
// (get) Token: 0x060006CE RID: 1742
|
||||
bool IsEmpty { get; }
|
||||
|
||||
// Token: 0x060006CF RID: 1743
|
||||
string GetName(int i);
|
||||
|
||||
// Token: 0x060006D0 RID: 1744
|
||||
string GetValue(int i);
|
||||
|
||||
// Token: 0x060006D1 RID: 1745
|
||||
string GetValue(string name);
|
||||
|
||||
// Token: 0x060006D2 RID: 1746
|
||||
void ChangeValue(string name, string newValue);
|
||||
|
||||
// Token: 0x170001A6 RID: 422
|
||||
// (get) Token: 0x060006D3 RID: 1747
|
||||
string[] Names { get; }
|
||||
|
||||
// Token: 0x170001A7 RID: 423
|
||||
// (get) Token: 0x060006D4 RID: 1748
|
||||
string[] Values { get; }
|
||||
}
|
||||
|
||||
// Token: 0x020000C0 RID: 192
|
||||
public interface IMutableAttrList : MiniParser.IAttrList
|
||||
{
|
||||
// Token: 0x060006D5 RID: 1749
|
||||
void Clear();
|
||||
|
||||
// Token: 0x060006D6 RID: 1750
|
||||
void Add(string name, string value);
|
||||
|
||||
// Token: 0x060006D7 RID: 1751
|
||||
void CopyFrom(MiniParser.IAttrList attrs);
|
||||
|
||||
// Token: 0x060006D8 RID: 1752
|
||||
void Remove(int i);
|
||||
|
||||
// Token: 0x060006D9 RID: 1753
|
||||
void Remove(string name);
|
||||
}
|
||||
|
||||
// Token: 0x020000C1 RID: 193
|
||||
public interface IHandler
|
||||
{
|
||||
// Token: 0x060006DA RID: 1754
|
||||
void OnStartParsing(MiniParser parser);
|
||||
|
||||
// Token: 0x060006DB RID: 1755
|
||||
void OnStartElement(string name, MiniParser.IAttrList attrs);
|
||||
|
||||
// Token: 0x060006DC RID: 1756
|
||||
void OnEndElement(string name);
|
||||
|
||||
// Token: 0x060006DD RID: 1757
|
||||
void OnChars(string ch);
|
||||
|
||||
// Token: 0x060006DE RID: 1758
|
||||
void OnEndParsing(MiniParser parser);
|
||||
}
|
||||
|
||||
// Token: 0x020000C2 RID: 194
|
||||
public class HandlerAdapter : MiniParser.IHandler
|
||||
{
|
||||
// Token: 0x060006E0 RID: 1760 RVA: 0x00026800 File Offset: 0x00024A00
|
||||
public void OnStartParsing(MiniParser parser)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060006E1 RID: 1761 RVA: 0x00026804 File Offset: 0x00024A04
|
||||
public void OnStartElement(string name, MiniParser.IAttrList attrs)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060006E2 RID: 1762 RVA: 0x00026808 File Offset: 0x00024A08
|
||||
public void OnEndElement(string name)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060006E3 RID: 1763 RVA: 0x0002680C File Offset: 0x00024A0C
|
||||
public void OnChars(string ch)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060006E4 RID: 1764 RVA: 0x00026810 File Offset: 0x00024A10
|
||||
public void OnEndParsing(MiniParser parser)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x020000C3 RID: 195
|
||||
private enum CharKind : byte
|
||||
{
|
||||
// Token: 0x04000339 RID: 825
|
||||
LEFT_BR,
|
||||
// Token: 0x0400033A RID: 826
|
||||
RIGHT_BR,
|
||||
// Token: 0x0400033B RID: 827
|
||||
SLASH,
|
||||
// Token: 0x0400033C RID: 828
|
||||
PI_MARK,
|
||||
// Token: 0x0400033D RID: 829
|
||||
EQ,
|
||||
// Token: 0x0400033E RID: 830
|
||||
AMP,
|
||||
// Token: 0x0400033F RID: 831
|
||||
SQUOTE,
|
||||
// Token: 0x04000340 RID: 832
|
||||
DQUOTE,
|
||||
// Token: 0x04000341 RID: 833
|
||||
BANG,
|
||||
// Token: 0x04000342 RID: 834
|
||||
LEFT_SQBR,
|
||||
// Token: 0x04000343 RID: 835
|
||||
SPACE,
|
||||
// Token: 0x04000344 RID: 836
|
||||
RIGHT_SQBR,
|
||||
// Token: 0x04000345 RID: 837
|
||||
TAB,
|
||||
// Token: 0x04000346 RID: 838
|
||||
CR,
|
||||
// Token: 0x04000347 RID: 839
|
||||
EOL,
|
||||
// Token: 0x04000348 RID: 840
|
||||
CHARS,
|
||||
// Token: 0x04000349 RID: 841
|
||||
UNKNOWN = 31
|
||||
}
|
||||
|
||||
// Token: 0x020000C4 RID: 196
|
||||
private enum ActionCode : byte
|
||||
{
|
||||
// Token: 0x0400034B RID: 843
|
||||
START_ELEM,
|
||||
// Token: 0x0400034C RID: 844
|
||||
END_ELEM,
|
||||
// Token: 0x0400034D RID: 845
|
||||
END_NAME,
|
||||
// Token: 0x0400034E RID: 846
|
||||
SET_ATTR_NAME,
|
||||
// Token: 0x0400034F RID: 847
|
||||
SET_ATTR_VAL,
|
||||
// Token: 0x04000350 RID: 848
|
||||
SEND_CHARS,
|
||||
// Token: 0x04000351 RID: 849
|
||||
START_CDATA,
|
||||
// Token: 0x04000352 RID: 850
|
||||
END_CDATA,
|
||||
// Token: 0x04000353 RID: 851
|
||||
ERROR,
|
||||
// Token: 0x04000354 RID: 852
|
||||
STATE_CHANGE,
|
||||
// Token: 0x04000355 RID: 853
|
||||
FLUSH_CHARS_STATE_CHANGE,
|
||||
// Token: 0x04000356 RID: 854
|
||||
ACC_CHARS_STATE_CHANGE,
|
||||
// Token: 0x04000357 RID: 855
|
||||
ACC_CDATA,
|
||||
// Token: 0x04000358 RID: 856
|
||||
PROC_CHAR_REF,
|
||||
// Token: 0x04000359 RID: 857
|
||||
UNKNOWN = 15
|
||||
}
|
||||
|
||||
// Token: 0x020000C5 RID: 197
|
||||
public class AttrListImpl : MiniParser.IAttrList, MiniParser.IMutableAttrList
|
||||
{
|
||||
// Token: 0x060006E5 RID: 1765 RVA: 0x00026814 File Offset: 0x00024A14
|
||||
public AttrListImpl()
|
||||
: this(0)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060006E6 RID: 1766 RVA: 0x00026820 File Offset: 0x00024A20
|
||||
public AttrListImpl(int initialCapacity)
|
||||
{
|
||||
if (initialCapacity <= 0)
|
||||
{
|
||||
this.names = new ArrayList();
|
||||
this.values = new ArrayList();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.names = new ArrayList(initialCapacity);
|
||||
this.values = new ArrayList(initialCapacity);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060006E7 RID: 1767 RVA: 0x00026870 File Offset: 0x00024A70
|
||||
public AttrListImpl(MiniParser.IAttrList attrs)
|
||||
: this((attrs == null) ? 0 : attrs.Length)
|
||||
{
|
||||
if (attrs != null)
|
||||
{
|
||||
this.CopyFrom(attrs);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170001A8 RID: 424
|
||||
// (get) Token: 0x060006E8 RID: 1768 RVA: 0x00026898 File Offset: 0x00024A98
|
||||
public int Length
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.names.Count;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170001A9 RID: 425
|
||||
// (get) Token: 0x060006E9 RID: 1769 RVA: 0x000268A8 File Offset: 0x00024AA8
|
||||
public bool IsEmpty
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.Length != 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060006EA RID: 1770 RVA: 0x000268B8 File Offset: 0x00024AB8
|
||||
public string GetName(int i)
|
||||
{
|
||||
string text = null;
|
||||
if (i >= 0 && i < this.Length)
|
||||
{
|
||||
text = this.names[i] as string;
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x060006EB RID: 1771 RVA: 0x000268F0 File Offset: 0x00024AF0
|
||||
public string GetValue(int i)
|
||||
{
|
||||
string text = null;
|
||||
if (i >= 0 && i < this.Length)
|
||||
{
|
||||
text = this.values[i] as string;
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x060006EC RID: 1772 RVA: 0x00026928 File Offset: 0x00024B28
|
||||
public string GetValue(string name)
|
||||
{
|
||||
return this.GetValue(this.names.IndexOf(name));
|
||||
}
|
||||
|
||||
// Token: 0x060006ED RID: 1773 RVA: 0x0002693C File Offset: 0x00024B3C
|
||||
public void ChangeValue(string name, string newValue)
|
||||
{
|
||||
int num = this.names.IndexOf(name);
|
||||
if (num >= 0 && num < this.Length)
|
||||
{
|
||||
this.values[num] = newValue;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170001AA RID: 426
|
||||
// (get) Token: 0x060006EE RID: 1774 RVA: 0x00026978 File Offset: 0x00024B78
|
||||
public string[] Names
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.names.ToArray(typeof(string)) as string[];
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170001AB RID: 427
|
||||
// (get) Token: 0x060006EF RID: 1775 RVA: 0x00026994 File Offset: 0x00024B94
|
||||
public string[] Values
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.values.ToArray(typeof(string)) as string[];
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060006F0 RID: 1776 RVA: 0x000269B0 File Offset: 0x00024BB0
|
||||
public void Clear()
|
||||
{
|
||||
this.names.Clear();
|
||||
this.values.Clear();
|
||||
}
|
||||
|
||||
// Token: 0x060006F1 RID: 1777 RVA: 0x000269C8 File Offset: 0x00024BC8
|
||||
public void Add(string name, string value)
|
||||
{
|
||||
this.names.Add(name);
|
||||
this.values.Add(value);
|
||||
}
|
||||
|
||||
// Token: 0x060006F2 RID: 1778 RVA: 0x000269E4 File Offset: 0x00024BE4
|
||||
public void Remove(int i)
|
||||
{
|
||||
if (i >= 0)
|
||||
{
|
||||
this.names.RemoveAt(i);
|
||||
this.values.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060006F3 RID: 1779 RVA: 0x00026A08 File Offset: 0x00024C08
|
||||
public void Remove(string name)
|
||||
{
|
||||
this.Remove(this.names.IndexOf(name));
|
||||
}
|
||||
|
||||
// Token: 0x060006F4 RID: 1780 RVA: 0x00026A1C File Offset: 0x00024C1C
|
||||
public void CopyFrom(MiniParser.IAttrList attrs)
|
||||
{
|
||||
if (attrs != null && this == attrs)
|
||||
{
|
||||
this.Clear();
|
||||
int length = attrs.Length;
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
this.Add(attrs.GetName(i), attrs.GetValue(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0400035A RID: 858
|
||||
protected ArrayList names;
|
||||
|
||||
// Token: 0x0400035B RID: 859
|
||||
protected ArrayList values;
|
||||
}
|
||||
|
||||
// Token: 0x020000C6 RID: 198
|
||||
public class XMLError : Exception
|
||||
{
|
||||
// Token: 0x060006F5 RID: 1781 RVA: 0x00026A6C File Offset: 0x00024C6C
|
||||
public XMLError()
|
||||
: this("Unknown")
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060006F6 RID: 1782 RVA: 0x00026A7C File Offset: 0x00024C7C
|
||||
public XMLError(string descr)
|
||||
: this(descr, -1, -1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060006F7 RID: 1783 RVA: 0x00026A88 File Offset: 0x00024C88
|
||||
public XMLError(string descr, int line, int column)
|
||||
: base(descr)
|
||||
{
|
||||
this.descr = descr;
|
||||
this.line = line;
|
||||
this.column = column;
|
||||
}
|
||||
|
||||
// Token: 0x170001AC RID: 428
|
||||
// (get) Token: 0x060006F8 RID: 1784 RVA: 0x00026AA8 File Offset: 0x00024CA8
|
||||
public int Line
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.line;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170001AD RID: 429
|
||||
// (get) Token: 0x060006F9 RID: 1785 RVA: 0x00026AB0 File Offset: 0x00024CB0
|
||||
public int Column
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.column;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060006FA RID: 1786 RVA: 0x00026AB8 File Offset: 0x00024CB8
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("{0} @ (line = {1}, col = {2})", this.descr, this.line, this.column);
|
||||
}
|
||||
|
||||
// Token: 0x0400035C RID: 860
|
||||
protected string descr;
|
||||
|
||||
// Token: 0x0400035D RID: 861
|
||||
protected int line;
|
||||
|
||||
// Token: 0x0400035E RID: 862
|
||||
protected int column;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Security;
|
||||
|
||||
namespace Mono.Xml
|
||||
{
|
||||
// Token: 0x020000C7 RID: 199
|
||||
[CLSCompliant(false)]
|
||||
public class SecurityParser : MiniParser, MiniParser.IReader, MiniParser.IHandler
|
||||
{
|
||||
// Token: 0x060006FB RID: 1787 RVA: 0x00026AEC File Offset: 0x00024CEC
|
||||
public SecurityParser()
|
||||
{
|
||||
this.stack = new Stack();
|
||||
}
|
||||
|
||||
// Token: 0x060006FC RID: 1788 RVA: 0x00026B00 File Offset: 0x00024D00
|
||||
public void LoadXml(string xml)
|
||||
{
|
||||
this.root = null;
|
||||
this.xmldoc = xml;
|
||||
this.pos = 0;
|
||||
this.stack.Clear();
|
||||
base.Parse(this, this);
|
||||
}
|
||||
|
||||
// Token: 0x060006FD RID: 1789 RVA: 0x00026B38 File Offset: 0x00024D38
|
||||
public SecurityElement ToXml()
|
||||
{
|
||||
return this.root;
|
||||
}
|
||||
|
||||
// Token: 0x060006FE RID: 1790 RVA: 0x00026B40 File Offset: 0x00024D40
|
||||
public int Read()
|
||||
{
|
||||
if (this.pos >= this.xmldoc.Length)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
return (int)this.xmldoc[this.pos++];
|
||||
}
|
||||
|
||||
// Token: 0x060006FF RID: 1791 RVA: 0x00026B84 File Offset: 0x00024D84
|
||||
public void OnStartParsing(MiniParser parser)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000700 RID: 1792 RVA: 0x00026B88 File Offset: 0x00024D88
|
||||
public void OnStartElement(string name, MiniParser.IAttrList attrs)
|
||||
{
|
||||
SecurityElement securityElement = new SecurityElement(name);
|
||||
if (this.root == null)
|
||||
{
|
||||
this.root = securityElement;
|
||||
this.current = securityElement;
|
||||
}
|
||||
else
|
||||
{
|
||||
SecurityElement securityElement2 = (SecurityElement)this.stack.Peek();
|
||||
securityElement2.AddChild(securityElement);
|
||||
}
|
||||
this.stack.Push(securityElement);
|
||||
this.current = securityElement;
|
||||
int length = attrs.Length;
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
this.current.AddAttribute(attrs.GetName(i), SecurityElement.Escape(attrs.GetValue(i)));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000701 RID: 1793 RVA: 0x00026C1C File Offset: 0x00024E1C
|
||||
public void OnEndElement(string name)
|
||||
{
|
||||
this.current = (SecurityElement)this.stack.Pop();
|
||||
}
|
||||
|
||||
// Token: 0x06000702 RID: 1794 RVA: 0x00026C34 File Offset: 0x00024E34
|
||||
public void OnChars(string ch)
|
||||
{
|
||||
this.current.Text = SecurityElement.Escape(ch);
|
||||
}
|
||||
|
||||
// Token: 0x06000703 RID: 1795 RVA: 0x00026C48 File Offset: 0x00024E48
|
||||
public void OnEndParsing(MiniParser parser)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400035F RID: 863
|
||||
private SecurityElement root;
|
||||
|
||||
// Token: 0x04000360 RID: 864
|
||||
private string xmldoc;
|
||||
|
||||
// Token: 0x04000361 RID: 865
|
||||
private int pos;
|
||||
|
||||
// Token: 0x04000362 RID: 866
|
||||
private SecurityElement current;
|
||||
|
||||
// Token: 0x04000363 RID: 867
|
||||
private Stack stack;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user