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 void ExpectBraceClose(Tokenizer t) { Tokenizer.Token token = t.NextToken(); if (token.IsBraceClose) { return; } throw new ParseException( "Token '}' expected. Found " + token.ToString() + " instead!" ); }