Module: EDNGRAMMAR::AppString1

Defined in:
lib/parser/edngrammar.rb

Instance Method Summary collapse

Instance Method Details

#astObject

XXX ignoring h and b64



1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
# File 'lib/parser/edngrammar.rb', line 1073

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.new("cbor-diagnostic: Unknown application-oriented extension #{k}")
                                end
                       }) unless ::EDNGRAMMAR.const_defined?(:APPS)
  ::EDNGRAMMAR::APPS[app].decode(app, data)
end