LazySpecification.ceylon
import ceylon.ast.core {
LIdentifier,
LazySpecification,
LazySpecifier,
Parameters
}
import ceylon.ast.redhat {
RedHatTransformer,
lazySpecificationToCeylon,
compileLazySpecification
}
import com.redhat.ceylon.compiler.typechecker.tree {
Tree {
JSpecifierStatement=SpecifierStatement
}
}
shared object lazySpecification satisfies ConcreteTest<LazySpecification,JSpecifierStatement> {
String->LazySpecification construct(String->LIdentifier name, String->LazySpecifier specifier, <String->Parameters>* parameterLists)
=> "``name.key`` ``"".join(parameterLists*.key)`` ``specifier.key``;"->LazySpecification(name.item, specifier.item, parameterLists*.item);
shared String->LazySpecification stringLazySpecification = construct(identifier.stringLIdentifier, lazySpecifier.aTimesBPlusCLazySpecifier);
shared String->LazySpecification equalsLazySpecification = construct(identifier.equalsLIdentifier, lazySpecifier.groupedLazySpecifier, parameters.thatParameters);
compile = compileLazySpecification;
fromCeylon = RedHatTransformer.transformLazySpecification;
toCeylon = lazySpecificationToCeylon;
codes = [stringLazySpecification, equalsLazySpecification];
}