1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
|
# File 'lib/activefacts/cql/parser/ValueTypes.rb', line 1329
def ast
singular = u.singular.text_value
plural = u.plural.text_value.empty? ? nil : u.plural.p.text_value
if u.coeff.empty?
raise "Unit definition requires either a coefficient or an ephemera URL" unless q.respond_to?(:ephemera)
numerator,denominator = 1, 1
else
numerator, denominator = *u.coeff.ast
end
offset = u.o.text_value.empty? ? 0 : u.o.value
bases = u.base.empty? ? [] : u.base.value
approximately = q.respond_to?(:approximately) || u.conversion.approximate?
ephemera = q.respond_to?(:ephemera) ? q.url.text_value : nil
Compiler::Unit.new singular, plural, numerator, denominator, offset, bases, approximately, ephemera
end
|