Class: TypeInstanceDef
- Defined in:
- lib/runtime.rb,
lib/generators/scala_server_generator.rb,
lib/generators/unity_client_generator.rb,
lib/generators/elixir_server_generator.rb
Constant Summary collapse
- @@lambda_index =
0
Instance Attribute Summary collapse
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#runtime ⇒ Object
readonly
Returns the value of attribute runtime.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Attributes inherited from Def
Instance Method Summary collapse
- #elixir_list(node) ⇒ Object
- #elixir_list_read(node) ⇒ Object
- #elixir_list_reader(node) ⇒ Object
- #elixir_list_write(node, member_name) ⇒ Object
- #elixir_list_writer(node) ⇒ Object
- #elixir_map(node) ⇒ Object
- #elixir_map_read(node) ⇒ Object
- #elixir_map_reader(node) ⇒ Object
- #elixir_map_write(node, member_name) ⇒ Object
- #elixir_map_writer(node) ⇒ Object
- #elixir_read(node) ⇒ Object
- #elixir_reader(node) ⇒ Object
- #elixir_set(node) ⇒ Object
- #elixir_set_read(node) ⇒ Object
- #elixir_set_reader(node) ⇒ Object
- #elixir_set_write(node, member_name) ⇒ Object
- #elixir_set_writer(node) ⇒ Object
- #elixir_type(node) ⇒ Object
- #elixir_write(node, member_name) ⇒ Object
- #elixir_writer(node) ⇒ Object
-
#initialize(ast, type, params, runtime) ⇒ TypeInstanceDef
constructor
A new instance of TypeInstanceDef.
- #scala ⇒ Object
- #scala_read(is_top_scope) ⇒ Object
- #scala_type ⇒ Object
- #scala_type_param ⇒ Object
- #scala_write(member_name, is_top_scope) ⇒ Object
- #unity ⇒ Object
- #unity_read(is_top_scope) ⇒ Object
- #unity_read_write ⇒ Object
- #unity_type_param ⇒ Object
- #unity_write(member_name, is_top_scope) ⇒ Object
Constructor Details
#initialize(ast, type, params, runtime) ⇒ TypeInstanceDef
Returns a new instance of TypeInstanceDef.
91 92 93 94 95 96 |
# File 'lib/runtime.rb', line 91 def initialize ast, type, params, runtime super ast @type = type @params = params @runtime = runtime end |
Instance Attribute Details
#params ⇒ Object (readonly)
Returns the value of attribute params.
89 90 91 |
# File 'lib/runtime.rb', line 89 def params @params end |
#runtime ⇒ Object (readonly)
Returns the value of attribute runtime.
89 90 91 |
# File 'lib/runtime.rb', line 89 def runtime @runtime end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
89 90 91 |
# File 'lib/runtime.rb', line 89 def type @type end |
Instance Method Details
#elixir_list(node) ⇒ Object
312 313 314 |
# File 'lib/generators/elixir_server_generator.rb', line 312 def elixir_list node 'list(' + @params[0].elixir_type(node) + ')' end |
#elixir_list_read(node) ⇒ Object
316 317 318 |
# 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) ⇒ Object
324 325 326 |
# 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) ⇒ Object
320 321 322 |
# 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) ⇒ Object
328 329 330 |
# 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) ⇒ Object
352 353 354 |
# 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) ⇒ Object
356 357 358 |
# 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) ⇒ Object
364 365 366 |
# 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) ⇒ Object
360 361 362 |
# 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) ⇒ Object
368 369 370 |
# 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) ⇒ Object
280 281 282 283 284 285 286 |
# 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) ⇒ Object
296 297 298 299 300 301 302 |
# 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) ⇒ Object
332 333 334 |
# 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) ⇒ Object
336 337 338 |
# 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) ⇒ Object
344 345 346 |
# 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) ⇒ Object
340 341 342 |
# 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) ⇒ Object
348 349 350 |
# 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) ⇒ Object
272 273 274 275 276 277 278 |
# 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) ⇒ Object
288 289 290 291 292 293 294 |
# 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) ⇒ Object
304 305 306 307 308 309 310 |
# 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 ⇒ Object
34 35 36 |
# File 'lib/generators/scala_server_generator.rb', line 34 def scala "#{@type.scala}#{scala_type_param}" end |
#scala_read(is_top_scope) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# 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 ⇒ Object
86 87 88 |
# File 'lib/generators/scala_server_generator.rb', line 86 def scala_type @type.name + scala_type_param end |
#scala_type_param ⇒ Object
38 39 40 41 42 |
# 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) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# 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 ⇒ Object
52 53 54 55 56 57 58 |
# 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) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# 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 ⇒ Object
111 112 113 114 115 116 117 |
# 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 ⇒ Object
119 120 121 122 123 |
# 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) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# 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 |