Module: EDNGRAMMAR::AppString1

Defined in:
lib/parser/edngrammar.rb

Instance Method Summary collapse

Instance Method Details

#astObject

XXX ignoring h and b64



1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
# File 'lib/parser/edngrammar.rb', line 1696

def ast                       # XXX ignoring h and b64
  data = sqstr.ast.force_encoding(Encoding::UTF_8) # XXX undo .b
  app = app_prefix.text_value
  # Find a better place to put a default initialization
  EDNGRAMMAR.const_set(:APPS, Hash.new { |h, k|
                         h[k] = begin ::CBOR_DIAG.const_get("App_#{k.downcase}")
  
                                rescue NameError
                                  raise ArgumentError, "cbor-diagnostic: Unknown application-oriented extension '#{k}'", caller
                                end
                       }) unless ::EDNGRAMMAR.const_defined?(:APPS)
  ::EDNGRAMMAR::APPS[app].decode(app, data)
end