class Prism::Pack::Directive
Eine Direktive in der Pack-Vorlagensprache.
Constants
- ENDIAN_DESCRIPTIONS
-
Die Beschreibungen der verschiedenen Endianness-Typen.
- SIGNED_DESCRIPTIONS
-
Die Beschreibungen der verschiedenen Signedness-Typen.
- SIZE_DESCRIPTIONS
-
Die Beschreibungen der verschiedenen Größen-Typen.
Attribute
Der Endianness-Typ der Direktive.
Die Länge dieser Direktive (verwendet für Ganzzahlen).
Der Längen-Typ dieser Direktive (verwendet für Ganzzahlen).
Der Signedness-Typ der Direktive.
Die Größe der Direktive.
Ein Byteslice des Quellstrings, den diese Direktive repräsentiert.
Der Typ der Direktive.
Ein Symbol, das angibt, ob wir packen oder entpacken.
Ein Symbol, das die Ruby-Version repräsentiert.
Öffentliche Klassenmethoden
Source
# File lib/prism/pack.rb, line 91 def initialize(version, variant, source, type, signed, endian, size, length_type, length) @version = version @variant = variant @source = source @type = type @signed = signed @endian = endian @size = size @length_type = length_type @length = length end
Initialisiert eine neue Direktive mit den angegebenen Werten.
Öffentliche Instanzmethoden
Source
# File lib/prism/pack.rb, line 133 def describe case type when SPACE "whitespace" when COMMENT "comment" when INTEGER if size == SIZE_8 base = "#{SIGNED_DESCRIPTIONS[signed]} #{SIZE_DESCRIPTIONS[size]} integer" else base = "#{SIGNED_DESCRIPTIONS[signed]} #{SIZE_DESCRIPTIONS[size]} #{ENDIAN_DESCRIPTIONS[endian]} integer" end case length_type when LENGTH_FIXED if length > 1 base + ", x#{length}" else base end when LENGTH_MAX base + ", as many as possible" else raise end when UTF8 "UTF-8 character" when BER "BER-compressed integer" when FLOAT "#{SIZE_DESCRIPTIONS[size]} #{ENDIAN_DESCRIPTIONS[endian]} float" when STRING_SPACE_PADDED "arbitrary binary string (space padded)" when STRING_NULL_PADDED "arbitrary binary string (null padded, count is width)" when STRING_NULL_TERMINATED "arbitrary binary string (null padded, count is width), except that null is added with *" when STRING_MSB "bit string (MSB first)" when STRING_LSB "bit string (LSB first)" when STRING_HEX_HIGH "hex string (high nibble first)" when STRING_HEX_LOW "hex string (low nibble first)" when STRING_UU "UU-encoded string" when STRING_MIME "quoted printable, MIME encoding" when STRING_BASE64 "base64 encoded string" when STRING_FIXED "pointer to a structure (fixed-length string)" when STRING_POINTER "pointer to a null-terminated string" when MOVE "move to absolute position" when BACK "back up a byte" when NULL "null byte" else raise end end
Gibt eine menschenlesbare Beschreibung der Direktive.