private static bool ParseHashItem(CharStream stream, AST.HashValue hash_value) { // optional whitespace WhiteSpace.Parse(stream, true); // parse actual hashItem AST.HashValue.Item item; // we might be dealing with a trailing comma if (!HashItem.PeekAndParse(stream, out item)) { return false; } // add acutal item hash_value.AddItem(item); // optional whitespace WhiteSpace.Parse(stream, true); return true; }