class TypeInstanceDef

Attributes

params[R]
runtime[R]
type[R]

Public Class Methods

new(ast, type, params, runtime) click to toggle source
Calls superclass method Def::new
# File lib/runtime.rb, line 91
def initialize ast, type, params, runtime
        super ast
        @type = type
        @params = params
        @runtime = runtime
end

Public Instance Methods

bot_list(node) click to toggle source
# File lib/generators/bot_generator.rb, line 312
def bot_list node
    'list(' + @params[0].bot_type(node)  + ')'
end
bot_list_read(node) click to toggle source
# File lib/generators/bot_generator.rb, line 316
def bot_list_read node
    'Brotorift.Binary.read_list(data, ' + @params[0].bot_reader(node) + ')'
end
bot_list_reader(node) click to toggle source
# File lib/generators/bot_generator.rb, line 324
def bot_list_reader node
    '&Brotorift.Binary.read_list(&1, ' + @params[0].bot_reader(node) + ')'
end
bot_list_write(node, member_name) click to toggle source
# File lib/generators/bot_generator.rb, line 320
def bot_list_write node, member_name
    'Brotorift.Binary.write_list(data, ' + member_name + ', ' + @params[0].bot_writer(node) + ')'
end
bot_list_writer(node) click to toggle source
# File lib/generators/bot_generator.rb, line 328
def bot_list_writer node
    '&Brotorift.Binary.write_list(&1, &2, ' + @params[0].bot_writer(node) + ')'
end
bot_map(node) click to toggle source
# File lib/generators/bot_generator.rb, line 352
def bot_map node
    '%{' + @params[0].bot_type(node) + ' => ' + @params[1].bot_type(node) + '}'
end
bot_map_read(node) click to toggle source
# File lib/generators/bot_generator.rb, line 356
def bot_map_read node
    'Brotorift.Binary.read_map(data, ' + @params[0].bot_reader(node) + ', ' + @params[1].bot_reader(node) + ')'
end
bot_map_reader(node) click to toggle source
# File lib/generators/bot_generator.rb, line 364
def bot_map_reader node
    '&Brotorift.Binary.read_map(&1, ' + @params[0].bot_reader(node) + ', ' + @params[1].bot_reader(node) + ')'
end
bot_map_write(node, member_name) click to toggle source
# File lib/generators/bot_generator.rb, line 360
def bot_map_write node, member_name
    'Brotorift.Binary.write_map(data, ' + member_name + ', ' + @params[0].bot_writer(node) + ', ' + @params[1].bot_writer(node) + ')'
end
bot_map_writer(node) click to toggle source
# File lib/generators/bot_generator.rb, line 368
def bot_map_writer node
    '&Brotorift.Binary.write_map(&1, &2, ' + @params[0].bot_writer(node) + ', ' + @params[1].bot_writer(node) + ')'
end
bot_read(node) click to toggle source
# File lib/generators/bot_generator.rb, line 280
def bot_read node
    return self.bot_list_read node if @type.name == 'List'
    return self.bot_set_read node if @type.name == 'Set'
    return self.bot_map_read node if @type.name == 'Map'
    return @type.bot_read if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.bot_read node if @type.is_a? StructTypeDef
end
bot_reader(node) click to toggle source
# File lib/generators/bot_generator.rb, line 296
def bot_reader node
    return self.bot_list_reader node if @type.name == 'List'
    return self.bot_set_reader node if @type.name == 'Set'
    return self.bot_map_reader node if @type.name == 'Map'
    return @type.bot_reader if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.bot_reader node if @type.is_a? StructTypeDef
end
bot_set(node) click to toggle source
# File lib/generators/bot_generator.rb, line 332
def bot_set node
    'MapSet.t(' + @params[0].bot_type(node)  + ')'
end
bot_set_read(node) click to toggle source
# File lib/generators/bot_generator.rb, line 336
def bot_set_read node
    'Brotorift.Binary.read_set(data, ' + @params[0].bot_reader(node) + ')'
end
bot_set_reader(node) click to toggle source
# File lib/generators/bot_generator.rb, line 344
def bot_set_reader node
    '&Brotorift.Binary.read_set(&1, ' + @params[0].bot_reader(node) + ')'
end
bot_set_write(node, member_name) click to toggle source
# File lib/generators/bot_generator.rb, line 340
def bot_set_write node, member_name
    'Brotorift.Binary.write_set(data, ' + member_name + ', ' + @params[0].bot_writer(node) + ')'
end
bot_set_writer(node) click to toggle source
# File lib/generators/bot_generator.rb, line 348
def bot_set_writer node
    '&Brotorift.Binary.write_set(&1, &2, ' + @params[0].bot_writer(node) + ')'
end
bot_type(node) click to toggle source
# File lib/generators/bot_generator.rb, line 272
def bot_type node
    return self.bot_list node if @type.name == 'List'
    return self.bot_set node if @type.name == 'Set'
    return self.bot_map node if @type.name == 'Map'
    return @type.bot_type if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.bot_type node if @type.is_a? StructTypeDef
end
bot_write(node, member_name) click to toggle source
# File lib/generators/bot_generator.rb, line 288
def bot_write node, member_name
    return self.bot_list_write node, member_name if @type.name == 'List'
    return self.bot_set_write node, member_name if @type.name == 'Set'
    return self.bot_map_write node, member_name if @type.name == 'Map'
    return @type.bot_write member_name if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.bot_write node, member_name if @type.is_a? StructTypeDef
end
bot_writer(node) click to toggle source
# File lib/generators/bot_generator.rb, line 304
def bot_writer node
    return self.bot_list_writer node if @type.name == 'List'
    return self.bot_set_writer node if @type.name == 'Set'
    return self.bot_map_writer node if @type.name == 'Map'
    return @type.bot_writer if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.bot_writer node if @type.is_a? StructTypeDef
end
elixir_list(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 312
def elixir_list node
    'list(' + @params[0].elixir_type(node)  + ')'
end
elixir_list_read(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 316
def elixir_list_read node
    'Brotorift.Binary.read_list(data, ' + @params[0].elixir_reader(node) + ')'
end
elixir_list_reader(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 324
def elixir_list_reader node
    '&Brotorift.Binary.read_list(&1, ' + @params[0].elixir_reader(node) + ')'
end
elixir_list_write(node, member_name) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 320
def elixir_list_write node, member_name
    'Brotorift.Binary.write_list(data, ' + member_name + ', ' + @params[0].elixir_writer(node) + ')'
end
elixir_list_writer(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 328
def elixir_list_writer node
    '&Brotorift.Binary.write_list(&1, &2, ' + @params[0].elixir_writer(node) + ')'
end
elixir_map(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 352
def elixir_map node
    '%{' + @params[0].elixir_type(node) + ' => ' + @params[1].elixir_type(node) + '}'
end
elixir_map_read(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 356
def elixir_map_read node
    'Brotorift.Binary.read_map(data, ' + @params[0].elixir_reader(node) + ', ' + @params[1].elixir_reader(node) + ')'
end
elixir_map_reader(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 364
def elixir_map_reader node
    '&Brotorift.Binary.read_map(&1, ' + @params[0].elixir_reader(node) + ', ' + @params[1].elixir_reader(node) + ')'
end
elixir_map_write(node, member_name) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 360
def elixir_map_write node, member_name
    'Brotorift.Binary.write_map(data, ' + member_name + ', ' + @params[0].elixir_writer(node) + ', ' + @params[1].elixir_writer(node) + ')'
end
elixir_map_writer(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 368
def elixir_map_writer node
    '&Brotorift.Binary.write_map(&1, &2, ' + @params[0].elixir_writer(node) + ', ' + @params[1].elixir_writer(node) + ')'
end
elixir_read(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 280
def elixir_read node
    return self.elixir_list_read node if @type.name == 'List'
    return self.elixir_set_read node if @type.name == 'Set'
    return self.elixir_map_read node if @type.name == 'Map'
    return @type.elixir_read if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.elixir_read node if @type.is_a? StructTypeDef
end
elixir_reader(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 296
def elixir_reader node
    return self.elixir_list_reader node if @type.name == 'List'
    return self.elixir_set_reader node if @type.name == 'Set'
    return self.elixir_map_reader node if @type.name == 'Map'
    return @type.elixir_reader if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.elixir_reader node if @type.is_a? StructTypeDef
end
elixir_set(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 332
def elixir_set node
    'MapSet.t(' + @params[0].elixir_type(node)  + ')'
end
elixir_set_read(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 336
def elixir_set_read node
    'Brotorift.Binary.read_set(data, ' + @params[0].elixir_reader(node) + ')'
end
elixir_set_reader(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 344
def elixir_set_reader node
    '&Brotorift.Binary.read_set(&1, ' + @params[0].elixir_reader(node) + ')'
end
elixir_set_write(node, member_name) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 340
def elixir_set_write node, member_name
    'Brotorift.Binary.write_set(data, ' + member_name + ', ' + @params[0].elixir_writer(node) + ')'
end
elixir_set_writer(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 348
def elixir_set_writer node
    '&Brotorift.Binary.write_set(&1, &2, ' + @params[0].elixir_writer(node) + ')'
end
elixir_type(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 272
def elixir_type node
    return self.elixir_list node if @type.name == 'List'
    return self.elixir_set node if @type.name == 'Set'
    return self.elixir_map node if @type.name == 'Map'
    return @type.elixir_type if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.elixir_type node if @type.is_a? StructTypeDef
end
elixir_write(node, member_name) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 288
def elixir_write node, member_name
    return self.elixir_list_write node, member_name if @type.name == 'List'
    return self.elixir_set_write node, member_name if @type.name == 'Set'
    return self.elixir_map_write node, member_name if @type.name == 'Map'
    return @type.elixir_write member_name if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.elixir_write node, member_name if @type.is_a? StructTypeDef
end
elixir_writer(node) click to toggle source
# File lib/generators/elixir_server_generator.rb, line 304
def elixir_writer node
    return self.elixir_list_writer node if @type.name == 'List'
    return self.elixir_set_writer node if @type.name == 'Set'
    return self.elixir_map_writer node if @type.name == 'Map'
    return @type.elixir_writer if @type.is_a? BuiltinTypeDef or @type.is_a? EnumTypeDef
    return @type.elixir_writer node if @type.is_a? StructTypeDef
end
scala() click to toggle source
# File lib/generators/scala_server_generator.rb, line 34
def scala
        "#{@type.scala}#{scala_type_param}"
end
scala_read(is_top_scope) click to toggle source
# File lib/generators/scala_server_generator.rb, line 44
def scala_read is_top_scope
        str = ''
        if @type.is_a? StructTypeDef
                str = "packet.readStruct(new #{@type.name})"
        elsif @type.is_a? EnumTypeDef
                str = "#{@type.name}(packet.readInt())"
        else
                str = "packet.read#{scala_type}"
                if @params.empty?
                        str += '()'
                else
                        param_str = @params.map { |p| p.scala_read false } .join ', '
                        str += '(' + param_str + ')'
                end
        end

        unless is_top_scope
                str = '() => ' + str
        end

        str
end
scala_type() click to toggle source
# File lib/generators/scala_server_generator.rb, line 86
def scala_type
        @type.name + scala_type_param
end
scala_type_param() click to toggle source
# File lib/generators/scala_server_generator.rb, line 38
def scala_type_param
        return '' if @params.empty?
        param_str = @params.map { |p| p.scala } .join ', '
        '[' + param_str + ']'
end
scala_write(member_name, is_top_scope) click to toggle source
# File lib/generators/scala_server_generator.rb, line 67
def scala_write member_name, is_top_scope
        str = ''
        if @type.is_a? StructTypeDef
                str = "packet.writeStruct(#{member_name})"
        elsif @type.is_a? EnumTypeDef
                str = "packet.writeInt(#{member_name}.id)"
        else
                str = "packet.write#{scala_type}"
                if @params.empty?
                        str += "(#{member_name})"
                else
                        param_str = @params.map { |p| p.scala_write '_', false } .join ', '
                        str += "(#{member_name}, #{param_str})"
                end
        end

        str
end
unity() click to toggle source
# File lib/generators/unity_client_generator.rb, line 52
def unity
        if @params.empty?
                return @type.unity
        else
                return "#{@type.unity}#{unity_type_param}"
        end
end
unity_read(is_top_scope) click to toggle source
# File lib/generators/unity_client_generator.rb, line 60
def unity_read is_top_scope
        str = ''
        if @type.is_a? StructTypeDef
                str = "packet.ReadStruct( new #{@type.name}() )"
        elsif @type.is_a? EnumTypeDef
                str = "(#{@type.name})packet.ReadInt()"
        else
                str = "packet.Read#{unity_read_write}"
                if @params.empty?
                        str += '()'
                else
                        param_str = @params.map { |p| p.unity_read false } .join ', '
                        str += '( ' + param_str + ' )'
                end
        end

        if is_top_scope == false
                str = '() => ' + str
        end

        str
end
unity_read_write() click to toggle source
# File lib/generators/unity_client_generator.rb, line 111
def unity_read_write
        if @params.empty?
                return @type.name
        else
                return "#{@type.name}#{unity_type_param}"
        end
end
unity_type_param() click to toggle source
# File lib/generators/unity_client_generator.rb, line 119
def unity_type_param
        return '' if @params.empty?
        param_str = @params.map { |p| p.unity } .join ', '
        '<' + param_str + '>'
end
unity_write(member_name, is_top_scope) click to toggle source
# File lib/generators/unity_client_generator.rb, line 83
def unity_write member_name, is_top_scope
        str = ''
        if @type.is_a? StructTypeDef
                str = "packet.WriteStruct( #{member_name} )"
        elsif @type.is_a? EnumTypeDef
                str = "packet.WriteInt( (int)#{member_name} )"
        else
                str = "packet.Write#{unity_read_write}"
                if @params.empty?
                        str += "( #{member_name} )"
                else
                        params_str = @params.map do |p|
                                @@lambda_index += 1
                                arg_name = '_' + @@lambda_index.to_s
                                p.unity_write arg_name, false
                        end
                        param_str = params_str.join ', '
                        str += "( #{member_name}, #{param_str} )"
                end
        end

        if is_top_scope == false
                str = "( #{member_name} ) => " + str
        end

        str
end