Module: Dhall::Parser::SelectorExpression

Defined in:
lib/dhall/parser.rb

Instance Method Summary collapse

Instance Method Details

#valueObject



143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/dhall/parser.rb', line 143

def value
  record = capture(:primitive_expression).value
  selectors = captures(:selector).map(&:value)
  selectors.reduce(record) do |rec, sels|
    if sels.is_a?(Array)
      return EmptyRecordProjection.new(record: rec) if sels.empty?
      RecordProjection.new(record: rec, selectors: sels)
    else
      RecordSelection.new(record: rec, selector: sels)
    end
  end
end