Module: ActiveFacts::CQL::FactTypes::ReadingContraction1

Defined in:
lib/activefacts/cql/parser/FactTypes.rb

Instance Method Summary collapse

Instance Method Details

#astObject



1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
# File 'lib/activefacts/cql/parser/FactTypes.rb', line 1417

def ast
  # contracted_clauses.ast will return an array of Clauses, but the first clause is special. We must:
  # * prepend a new role (we get the Role to build *two* ast nodes)
  # * attach the qualifiers
  clauses_ast = contracted_clauses.ast
  clauses_ast[0].conjunction = conjunction.text_value
  clauses_ast[0].phrases.unshift(role.ast)
  clauses_ast[0].certainty = certainty.value

  # A contraction returns an array containing:
  # * a role AST
  # * a qualifiers array
  # * an array of Clauses
  [role.ast, p.empty? ? [] : p.list] + clauses_ast
end