Sha256: a74868d2fb20c68b473c5756c687a63a095e9c09265afd80329651a957f08e14
Contents?: true
Size: 1.64 KB
Versions: 6
Compression:
Stored size: 1.64 KB
Contents
require_relative "version" module Objc2swiftAssistant class ObjCAbstractParameter attr_accessor :param_type attr_accessor :pointer_level # 0 -> not a pointer; 1 -> *; 2 -> **, ... attr_accessor :is_block_type attr_accessor :match_failure attr_accessor :is_weak def initialize @pointer_level = 0 @param_type = nil @is_weak = false end def match_failed return ! @match_failure.nil? end def process_pointer_str( pointer_str ) if pointer_str.nil? @pointer_level = 0 else @pointer_level = pointer_str.length end end end class ObjCProperty < ObjCAbstractParameter #TODO: Use this class for properties end class ObjCReturnType < ObjCAbstractParameter #TODO: Use this class for return types end class ObjCMethodParameter < ObjCAbstractParameter attr_accessor :param_name attr_accessor :param_label # May be empty for 1st param attr_accessor :null_qualifier def initialize super() end def from_declaration( declaration_str ) end end class ObjCBlockParameter < ObjCAbstractParameter attr_accessor :param_name attr_accessor :null_qualifier def from_declaration( declaration_str ) # TODO: nillabel qulaifiers m = declaration_str.match( /^(?<type>\w*)\s*(?<pointer_values>[\*&]*)?\s*(?<name>\w*)/ ) if m.nil? match_failure = "Could not parse block agument: #{declaration_str }" else process_pointer_str( m[ 'pointer_values' ] ) @is_block_type = false @param_type = m[ 'type' ] @param_name = m[ 'name' ] end end end end
Version data entries
6 entries across 6 versions & 1 rubygems