Module: Xdrgen::AST::Typespecs::Base

Includes:
Concerns::Contained
Included in:
Bool, Double, Float, Hyper, Int, Opaque, Quadruple, Simple, String, UnsignedHyper, UnsignedInt
Defined in:
lib/xdrgen/ast/typespecs/base.rb

Instance Method Summary collapse

Instance Method Details

#array_sizeObject



20
21
22
23
24
# File 'lib/xdrgen/ast/typespecs/base.rb', line 20

def array_size
  raise "Called array_size on a non-array!" unless decl.is_a?(Xdrgen::AST::Declarations::Array)

  [decl.size_spec.named?, decl.size]
end

#declObject



5
6
7
# File 'lib/xdrgen/ast/typespecs/base.rb', line 5

def decl
  find_ancestors(Xdrgen::AST::Declarations::Base).last
end

#sub_typeObject



9
10
11
12
13
14
15
16
17
18
# File 'lib/xdrgen/ast/typespecs/base.rb', line 9

def sub_type
  case decl
  when Xdrgen::AST::Declarations::Optional
    :optional
  when Xdrgen::AST::Declarations::Array
    decl.fixed? ? :array : :var_array
  else
    :simple
  end
end