class Blender3d::CharFieldParser
Public Class Methods
new(name)
click to toggle source
# File lib/blender-3d/char_field_parser.rb, line 3 def initialize(name) @name = name end
Public Instance Methods
parse()
click to toggle source
# File lib/blender-3d/char_field_parser.rb, line 7 def parse type = case @name when GenericFieldParser::FUNCTION_POINTER FunctionPointerType.new(SimpleType.new(FieldParserFactory::CHAR_TYPE)) when GenericFieldParser::POINTER_ARRAY array_size = $2.to_i ArrayType.new(NullTerminatedStringType.new, array_size) when GenericFieldParser::MULTI_POINTER PointerType.new(NullTerminatedStringType.new) when GenericFieldParser::POINTER NullTerminatedStringType.new when GenericFieldParser::MULTI_ARRAY array_size, string_size = $2.to_i, $3.to_i ArrayType.new(FixedLengthStringType.new(string_size), array_size) when GenericFieldParser::ARRAY array_size = $2.to_i FixedLengthStringType.new(array_size) else SimpleType.new(FieldParserFactory::CHAR_TYPE) end name = $1 || @name Field.new(type, name) end