Module: EDNGRAMMAR::Map4

Defined in:
lib/parser/edngrammar.rb

Instance Method Summary collapse

Instance Method Details

#astObject



2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
# File 'lib/parser/edngrammar.rb', line 2274

def ast
  e = elements[1] # alternative
  ei = nil
  if e.respond_to?(:specms)
    if e.specms && e.specms.elements
      ei = e.specms.elements[1].text_value
    end
    r = Hash[ [e.keyp.ast] + e.elements[3].elements.map {|x| x.keyp.ast } ]
  else
    if e.spec && e.spec.elements
      ei = e.spec.elements[1].text_value
    end
    r = {}
  end
  if ei == ""
    r.cbor_stream!
  elsif ei
    warn "*** ignoring unimplemented encoding indicator #{ei.inspect} after ["
  end
  r
end