Module: ActiveFacts::CQL::FactTypes::ContractedClauses0
- Defined in:
- lib/activefacts/cql/parser/FactTypes.rb
Instance Method Summary collapse
Instance Method Details
#ast ⇒ Object
1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 |
# File 'lib/activefacts/cql/parser/FactTypes.rb', line 1273 def ast asts = elements.map{ |r| r.ast } contracted_clauses = [] qualifiers = [] if asts[-1].is_a?(Array) # A contraction (Array of [role, qualifiers, *clauses]) contracted_clauses = asts.pop # Pull off the contracted_clauses contracted_role = contracted_clauses.shift qualifiers = contracted_clauses.shift asts.push(contracted_role) # And replace it by the role removed from the contracted_clauses end clause_ast = Compiler::Clause.new(asts, qualifiers) [clause_ast] + contracted_clauses end |