Module: C

Defined in:
lib/cast-to-yaml/to_h.rb,
lib/cast-to-yaml/to_yaml.rb

Defined Under Namespace

Classes: Array, Declaration, Declarator, Enum, Enumerator, Function, Node, Parameter, Pointer, Struct, TranslationUnit, Union

Class Method Summary collapse

Class Method Details

.from_h(h) ⇒ Object

Deserialize an AST from a given Hash representation.

Raises:

  • (ArgumentError)


71
72
73
74
75
76
77
# File 'lib/cast-to-yaml/to_h.rb', line 71

def self.from_h(h)
  kind = h["kind"]
  raise ArgumentError, "missing node kind" unless kind
  klass = C.const_get(class_name_from_kind(kind))
  raise ArgumentError, "unknown node" unless klass
  return klass.send(:from_h, h)
end