// Token: 0x0600004D RID: 77 RVA: 0x000051D4 File Offset: 0x000033D4 public static void ShowTokens(TextReader Input, TextWriter Output) { DTAParser dtaparser = new DTAParser(Input); for (;;) { DTAParserToken token = dtaparser.GetToken(); if (token.Status == DTAParserStatus.EOF) { break; } Output.WriteLine("Token Status: " + token.Status.ToString()); Output.WriteLine("Token Type: " + token.Type.ToString()); Output.WriteLine("Token Line: " + token.Line.ToString()); Output.WriteLine("Token Position: " + token.Position.ToString()); Output.WriteLine("Token Text: \"" + token.Text + "\""); Output.WriteLine(); } }
// Token: 0x06000018 RID: 24 RVA: 0x00002E60 File Offset: 0x00001060 private static DTBTreeItem ReadNode(DTAParser Parser, DTAParserStatus BreakAt) { DTAParserToken token = Parser.GetToken(); if (token.Status == BreakAt) { return(null); } if (token.Status != DTAParserStatus.OK) { throw new DTBException(string.Concat(new string[] { "Unexpected end character (at line ", token.Line.ToString(), ", position ", token.Position.ToString(), ")." })); } DTBType type = token.Type; switch (type) { case DTBType.Integer: { DTBTreeInteger dtbtreeInteger = new DTBTreeInteger(); dtbtreeInteger.Type = token.Type; if (token.Text.StartsWith("0x") || token.Text.StartsWith("0X")) { dtbtreeInteger.Integer = Convert.ToInt32(token.Text, 16); } else { dtbtreeInteger.Integer = Convert.ToInt32(token.Text, 10); } return(dtbtreeInteger); } case DTBType.Float: return(new DTBTreeFloat { Type = token.Type, Float = Convert.ToSingle(token.Text, CultureInfo.InvariantCulture) }); case DTBType.Variable: case DTBType.Keyword: case DTBType.String: return(new DTBTreeString { Type = token.Type, String = token.Text }); case (DTBType)3: case (DTBType)4: case (DTBType)10: case (DTBType)11: case (DTBType)12: case (DTBType)13: case (DTBType)14: case (DTBType)15: goto IL_2F7; case DTBType.kDataUnhandled: case DTBType.Else: case DTBType.EndIf: return(new DTBTreeInteger { Type = token.Type, Integer = 0 }); case DTBType.IfDef: break; case DTBType.InnerNode: case DTBType.ScriptInnerNode: case DTBType.PropertyInnerNode: { DTBTreeInnerNode dtbtreeInnerNode = new DTBTreeInnerNode(); DTAParserStatus breakAt; switch (token.Type) { case DTBType.InnerNode: breakAt = DTAParserStatus.InnerNodeEnd; goto IL_2D0; case DTBType.ScriptInnerNode: breakAt = DTAParserStatus.ScriptInnerNodeEnd; goto IL_2D0; case DTBType.PropertyInnerNode: breakAt = DTAParserStatus.PropertyInnerNodeEnd; goto IL_2D0; } throw new DTBException("Internal error (DTA Reader: Unknown type)."); IL_2D0: dtbtreeInnerNode.Type = token.Type; dtbtreeInnerNode.LineNumber = token.Line; DTAReader.ReadNodeList(dtbtreeInnerNode, Parser, breakAt); return(dtbtreeInnerNode); } default: switch (type) { case DTBType.Define: case DTBType.Include: case DTBType.Merge: case DTBType.IfNDef: break; default: goto IL_2F7; } break; } DTBTreeString dtbtreeString = new DTBTreeString(); DTAParserToken token2 = Parser.GetToken(); if (token2.Status != DTAParserStatus.OK) { throw new DTBException(string.Concat(new string[] { "Invalid format found in a macro declaration (at line ", token.Line.ToString(), ", position ", token.Position.ToString(), ")." })); } if (token2.Type != DTBType.Keyword) { throw new DTBException(string.Concat(new string[] { "Macro name not followed by a keyword (at line ", token.Line.ToString(), ", position ", token.Position.ToString(), ")." })); } dtbtreeString.Type = token.Type; dtbtreeString.String = token2.Text; return(dtbtreeString); IL_2F7: throw new DTBException("Unknown type \"" + token.Type.ToString() + "\""); }
// Token: 0x06000055 RID: 85 RVA: 0x000052F8 File Offset: 0x000034F8 public DTAParserToken GetToken() { DTAParserToken dtaparserToken = new DTAParserToken(); for (;;) { if (this.IsEndOfLine()) { if (!this.GetNextLine()) { break; } } else if (char.IsWhiteSpace(this.Line[this.LinePos])) { this.LinePos++; } else { char c = this.Line[this.LinePos]; if (c <= ';') { switch (c) { case '"': case '\'': goto IL_1B7; case '#': case '%': case '&': break; case '$': goto IL_22D; case '(': case ')': goto IL_D4; default: if (c == ';') { if (!this.GetNextLine()) { goto Block_9; } continue; } break; } } else { switch (c) { case '[': case ']': goto IL_D4; case '\\': break; default: switch (c) { case '{': case '}': goto IL_D4; } break; } } dtaparserToken.Line = this.LineCount; dtaparserToken.Position = this.LinePos; dtaparserToken.Text = this.GetSimpleKeywordToken(); if (!(dtaparserToken.Text == "")) { goto Block_15; } } } dtaparserToken.Status = DTAParserStatus.EOF; return(dtaparserToken); Block_9: dtaparserToken.Status = DTAParserStatus.EOF; return(dtaparserToken); IL_D4: char c2 = this.Line[this.LinePos]; switch (c2) { case '(': dtaparserToken.Type = DTBType.InnerNode; break; case ')': dtaparserToken.Status = DTAParserStatus.InnerNodeEnd; dtaparserToken.Type = DTBType.InnerNode; break; default: switch (c2) { case '[': dtaparserToken.Type = DTBType.PropertyInnerNode; break; case '\\': break; case ']': dtaparserToken.Status = DTAParserStatus.PropertyInnerNodeEnd; dtaparserToken.Type = DTBType.PropertyInnerNode; break; default: switch (c2) { case '{': dtaparserToken.Type = DTBType.ScriptInnerNode; break; case '}': dtaparserToken.Status = DTAParserStatus.ScriptInnerNodeEnd; dtaparserToken.Type = DTBType.ScriptInnerNode; break; } break; } break; } dtaparserToken.Line = this.LineCount; dtaparserToken.Position = this.LinePos; dtaparserToken.Text = this.Line[this.LinePos++].ToString(); return(dtaparserToken); IL_1B7: char c3 = this.Line[this.LinePos]; if (c3 != '"') { if (c3 == '\'') { dtaparserToken.Type = DTBType.Keyword; } } else { dtaparserToken.Type = DTBType.String; } dtaparserToken.Line = this.LineCount; dtaparserToken.Position = this.LinePos; dtaparserToken.Text = this.GetStringToken(this.Line[this.LinePos++]); return(dtaparserToken); IL_22D: dtaparserToken.Type = DTBType.Variable; dtaparserToken.Line = this.LineCount; dtaparserToken.Position = this.LinePos; this.LinePos++; dtaparserToken.Text = this.GetSimpleKeywordToken(); return(dtaparserToken); Block_15: dtaparserToken.Type = this.GetSimpleKeywordTokenType(dtaparserToken.Text); return(dtaparserToken); }