def __neuroncheck_ndecl_main(expecteds, block, declared_caller_locations)
      # 2回連続で宣言された場合はエラー
      if @__neuron_check_last_declaration then
        raise DeclarationError, "repeated declarations - Declaration block and method definition must correspond one-to-one"
      end

      # ブロックが渡されたかどうかで処理を分岐
      if block then
        # ブロックが渡された場合
        __neuroncheck_ndecl_main_with_block(block, declared_caller_locations)
      else
        # 短縮記法はNeuronCheckSyntax使用可能時のみ
        unless defined?(NeuronCheckSyntax) then
          raise DeclarationError, "NeuronCheck shorthand syntax (without block) can be used only in Ruby 2.1 or later"
        end

        # ブロックが渡されていない場合 (短縮記法)
        __neuroncheck_ndecl_main_without_block(expecteds, declared_caller_locations)
      end
    end
def __neuroncheck_ndecl_main(expecteds, block, declared_caller_locations)
      # 2回連続で宣言された場合はエラー
      if @__neuron_check_last_declaration then
        raise DeclarationError, "repeated declarations - Declaration block and method definition must correspond one-to-one"
      end

      # ブロックが渡されたかどうかで処理を分岐
      if block then
        # ブロックが渡された場合
        __neuroncheck_ndecl_main_with_block(block, declared_caller_locations)
      else
        # 短縮記法はNeuronCheckSyntax使用可能時のみ
        unless defined?(NeuronCheckSyntax) then
          raise DeclarationError, "NeuronCheck shorthand syntax (without block) can be used only in Ruby 2.1 or later"
        end

        # ブロックが渡されていない場合 (短縮記法)
        __neuroncheck_ndecl_main_without_block(expecteds, declared_caller_locations)
      end
    end
ndeclのメイン処理