/// <summary>
        /// Processes contract node.
        /// </summary>
        /// <param name="node">The node.</param>
        private void Process_Contract(dynamic node)
        {
            Contract contract = new Contract();

            // Map source location and node to object
            contract.AddMetaInfo(new SourceLocationInfo(node, context));
            context.AddObject(node, contract);

            // Namespace (from parent)
            try
            {
                NameContext.Current.CheckName(node.Name, typeof(Contract));
                contract.Namespace = (Namespace)NameContext.Current.Scope;
            }
            catch (NameCollisionException exception)
            {
                Error_NameExists(contract, exception);
            }

            // Name (obligatory)
            contract.Name = node.Name;

            // Interface is not processed yet

            // OperationContracts are not processed yet
        }