private static List <V4f> ParseMFRotation(Tokenizer t) { List <V4f> result = new List <V4f>(); Tokenizer.Token token = t.NextToken(); if (token.IsBracketOpen) { token = t.NextToken(); while (!token.IsBracketClose) { float x = token.ToFloat(); float y = t.NextToken().ToFloat(); float z = t.NextToken().ToFloat(); float w = t.NextToken().ToFloat(); result.Add(new V4f(x, y, z, w)); token = t.NextToken(); } } else { float x = token.ToFloat(); float y = t.NextToken().ToFloat(); float z = t.NextToken().ToFloat(); float w = t.NextToken().ToFloat(); result.Add(new V4f(x, y, z, w)); } return(result); }
private static SymMapBase ParseUnknownNode(Tokenizer t) { ExpectBraceOpen(t); int level = 1; StringBuilder sb = new StringBuilder("{"); do { Tokenizer.Token token = t.NextToken(); sb.Append(" " + token); if (token.IsBraceOpen) { level++; } if (token.IsBraceClose) { level--; } }while (level > 0); SymMapBase result = new SymMapBase(); result["unknownNode"] = true; result["content"] = sb.ToString(); return(result); }
private static SymMapBase ParseGenericNode( Tokenizer t, NodeParseInfo info ) { SymMapBase result = new SymMapBase(); ExpectBraceOpen(t); // populate fields with default values foreach (var kvp in info.FieldDefs) { if (kvp.Value.E1 == null) { continue; } result[kvp.Key] = kvp.Value.E1; } Tokenizer.Token token = t.NextToken(); while (!token.IsBraceClose) { string fieldName = token.ToString(); result[fieldName] = info.FieldParser(fieldName)(t); token = t.NextToken(); Thread.Sleep(0); } return(result); }
private static List <C3f> ParseMFColor(Tokenizer t) { List <C3f> result = new List <C3f>(); Tokenizer.Token token = t.NextToken(); if (token.IsBracketOpen) { token = t.NextToken(); while (!token.IsBracketClose) { float r = token.ToFloat(); float g = t.NextToken().ToFloat(); float b = t.NextToken().ToFloat(); result.Add(new C3f(r, g, b)); token = t.NextToken(); } } else { float r = token.ToFloat(); float g = t.NextToken().ToFloat(); float b = t.NextToken().ToFloat(); result.Add(new C3f(r, g, b)); } return(result); }
private static void ExpectBraceClose(Tokenizer t) { Tokenizer.Token token = t.NextToken(); if (token.IsBraceClose) { return; } throw new ParseException( "Token '}' expected. Found " + token.ToString() + " instead!" ); }
private static List <string> ParseMFString(Tokenizer t) { List <string> result = new List <string>(); Tokenizer.Token token = t.NextToken(); if (token.IsBracketOpen) { token = t.NextToken(); while (!token.IsBracketClose) { result.Add(token.GetCheckedUnquotedString()); token = t.NextToken(); } } else { result.Add(token.GetCheckedUnquotedString()); } return(result); }
private static List <int> ParseMFInt32(Tokenizer t) { List <int> result = new List <int>(); Tokenizer.Token token = t.NextToken(); if (token.IsBracketOpen) { token = t.NextToken(); while (!token.IsBracketClose) { result.Add(token.ToInt32()); token = t.NextToken(); } } else { result.Add(token.ToInt32()); } return(result); }
private static List <SymMapBase> ParseMFNode(Tokenizer t) { List <SymMapBase> result = new List <SymMapBase>(); Tokenizer.Token token = t.NextToken(); if (token.IsBracketOpen) { token = t.NextToken(); while (!token.IsBracketClose) { t.PushBack(token); result.Add(ParseNode(t)); token = t.NextToken(); } } else { t.PushBack(token); result.Add(ParseNode(t)); } return(result); }
private static string ParseSFString(Tokenizer t) { Tokenizer.Token token = t.NextToken(); return(token.GetCheckedUnquotedString()); }
private static object ParseSFInt32(Tokenizer t) { Tokenizer.Token token = t.NextToken(); return(token.ToInt32()); }
private static object ParseSFFloat(Tokenizer t) { Tokenizer.Token token = t.NextToken(); return(token.ToFloat()); }
private static object ParseSFBool(Tokenizer t) { Tokenizer.Token token = t.NextToken(); return(token.ToBool()); }