def __neuroncheck_ndecl_main_without_block(expecteds, declared_caller_locations)
      # 宣言ブロック実行用のコンテキストを作成
      context = NeuronCheckSystem::DeclarationContext.new

      # 引数の解釈
      expected_args = nil
      expected_return = nil
      if expecteds.last.kind_of?(Hash) and expecteds.last.size == 1 then
        # expectedsの最後が、値が1つだけ格納されたHashであれば、キーを最後の引数、値を戻り値と解釈する
        # 例: String, String => Numeric
        last_hash = expecteds.pop
        expected_args = expecteds.concat([last_hash.keys.first])
        expected_return = last_hash.values.first
      else
        # 上記以外の場合はすべて引数と見なす
        expected_args = expecteds
      end

      # 引数1つで、かつ空配列が渡された場合は、「引数なし」と宣言されたとみなす
      if expected_args[0].kind_of?(Array) and expected_args.size == 1 then
        expected_args = []
      end

      # 簡易宣言を実行
      context.instance_eval do
        unless expected_args.empty? then
          args *expected_args
        end

        if expected_return then
          returns expected_return
        end
      end

      # 短縮記法フラグON
      context.declaration.shorthand = true

      # 呼び出し場所を記憶
      context.declaration.declared_caller_locations = declared_caller_locations
      context.declaration.arg_matchers.each do |matcher|
        matcher.declared_caller_locations = context.declaration.declared_caller_locations
      end
      if context.declaration.return_matcher then
        context.declaration.return_matcher.declared_caller_locations = context.declaration.declared_caller_locations
      end

      # 宣言の内容を「最後の宣言」として保持 (通常のndeclと同じ)
      @__neuron_check_last_declaration = context.declaration
    end
def __neuroncheck_ndecl_main_without_block(expecteds, declared_caller_locations)
      # 宣言ブロック実行用のコンテキストを作成
      context = NeuronCheckSystem::DeclarationContext.new

      # 引数の解釈
      expected_args = nil
      expected_return = nil
      if expecteds.last.kind_of?(Hash) and expecteds.last.size == 1 then
        # expectedsの最後が、値が1つだけ格納されたHashであれば、キーを最後の引数、値を戻り値と解釈する
        # 例: String, String => Numeric
        last_hash = expecteds.pop
        expected_args = expecteds.concat([last_hash.keys.first])
        expected_return = last_hash.values.first
      else
        # 上記以外の場合はすべて引数と見なす
        expected_args = expecteds
      end

      # 引数1つで、かつ空配列が渡された場合は、「引数なし」と宣言されたとみなす
      if expected_args[0].kind_of?(Array) and expected_args.size == 1 then
        expected_args = []
      end

      # 簡易宣言を実行
      context.instance_eval do
        unless expected_args.empty? then
          args *expected_args
        end

        if expected_return then
          returns expected_return
        end
      end

      # 短縮記法フラグON
      context.declaration.shorthand = true

      # 呼び出し場所を記憶
      context.declaration.declared_caller_locations = declared_caller_locations
      context.declaration.arg_matchers.each do |matcher|
        matcher.declared_caller_locations = context.declaration.declared_caller_locations
      end
      if context.declaration.return_matcher then
        context.declaration.return_matcher.declared_caller_locations = context.declaration.declared_caller_locations
      end

      # 宣言の内容を「最後の宣言」として保持 (通常のndeclと同じ)
      @__neuron_check_last_declaration = context.declaration
    end
ndeclの短縮記法