Module: EDNGRAMMAR::AppString1

Defined in:
lib/parser/edngrammar.rb

Instance Method Summary collapse

Instance Method Details

#astObject

XXX ignoring h and b64



1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
# File 'lib/parser/edngrammar.rb', line 1282

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_#{app}")
                                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