Module: Dhall::Parser::UnionTypeOrLiteralVariantType

Defined in:
lib/dhall/parser.rb

Instance Method Summary collapse

Instance Method Details

#value(label) ⇒ Object



358
359
360
361
362
363
364
365
366
367
368
# File 'lib/dhall/parser.rb', line 358

def value(label)
	rest = capture(:non_empty_union_type_or_literal)&.value
	type = UnionType.new(
		alternatives: { label => capture(:expression)&.value }
	)
	if rest.is_a?(Union)
		rest.with(alternatives: type.merge(rest.alternatives))
	else
		rest ? type.merge(rest) : type
	end
end