// reads a binding key private IStonBindingName ReadBindingName(StonTokenReader reader) { string name = null; bool isExtension = false; if (reader.TryAndSkip(StonChartype.Extension)) { isExtension = true; } if (reader.Peek().HasChartype(StonChartype.TextDelimiter)) { name = reader.ReadString(); } else if (reader.Peek().HasChartype(StonChartype.CanunBegin)) { name = reader.ReadCanun(); } else { throw reader.MakeUnexpectedCharacterException(StonChartype.TextDelimiter | StonChartype.CanunBegin); } return(ElementFactory.CreateBindingName(name, isExtension)); }