A NarrowingTransformer
that narrows cascadingly to the “less abstract” type of the visited
subject by switching on the case types and invoking the proper transformX
method.
For example:
// ValueExample has the case types Primary | Operation shared actual default Result transformValueExpression(ValueExpression that) { switch (that) case (is Primary) { return transformPrimary(that); } case (is Operation) { return transformOperation(that); } }
I honestly don’t know when you’d want to use this instead of ImmediateNarrowingTransformer
;
perhaps the strongest argument for its existence is that it was trivial to generate along with
other generated code while ceylon.ast
was originally written, but would be significantly
more painful to create (by hand or automatically) afterwards.
Editor
no type hierarchy
no subtypes hierarchy
Inherited Attributes |
Attributes inherited from: Object hash , string |
Methods | |
transformAddingExpression | shared actual default Result transformAddingExpression(AddingExpression that) |
transformAnyClass | shared actual default Result transformAnyClass(AnyClass that) Refines Transformer.transformAnyClass |
transformAnyCompilationUnit | shared actual default Result transformAnyCompilationUnit(AnyCompilationUnit that) |
transformAnyFunction | shared actual default Result transformAnyFunction(AnyFunction that) Refines Transformer.transformAnyFunction |
transformAnyInterface | shared actual default Result transformAnyInterface(AnyInterface that) |
transformAnyInterfaceDefinition | shared actual default Result transformAnyInterfaceDefinition(AnyInterfaceDefinition that) |
transformAnyMemberOperator | shared actual default Result transformAnyMemberOperator(AnyMemberOperator that) |
transformAnySpecifier | shared actual default Result transformAnySpecifier(AnySpecifier that) |
transformAnyValue | shared actual default Result transformAnyValue(AnyValue that) Refines Transformer.transformAnyValue |
transformArguments | shared actual default Result transformArguments(Arguments that) Refines Transformer.transformArguments |
transformArithmeticAssignmentOperation | shared actual default Result transformArithmeticAssignmentOperation(ArithmeticAssignmentOperation that) |
transformArithmeticOperation | shared actual default Result transformArithmeticOperation(ArithmeticOperation that) |
transformAssigningExpression | shared actual default Result transformAssigningExpression(AssigningExpression that) |
transformAssignmentOperation | shared actual default Result transformAssignmentOperation(AssignmentOperation that) |
transformAtom | shared actual default Result transformAtom(Atom that) Refines Transformer.transformAtom |
transformBinaryOperation | shared actual default Result transformBinaryOperation(BinaryOperation that) |
transformBody | shared actual default Result transformBody(Body that) Refines Transformer.transformBody |
transformBound | shared actual default Result transformBound(Bound that) Refines Transformer.transformBound |
transformCaseItem | shared actual default Result transformCaseItem(CaseItem that) Refines Transformer.transformCaseItem |
transformClassOrInterface | shared actual default Result transformClassOrInterface(ClassOrInterface that) |
transformComparingExpression | shared actual default Result transformComparingExpression(ComparingExpression that) |
transformComparisonOperation | shared actual default Result transformComparisonOperation(ComparisonOperation that) |
transformComprehensionClause | shared actual default Result transformComprehensionClause(ComprehensionClause that) |
transformCondition | shared actual default Result transformCondition(Condition that) Refines Transformer.transformCondition |
transformConditionalExpression | shared actual default Result transformConditionalExpression(ConditionalExpression that) |
transformConjoiningExpression | shared actual default Result transformConjoiningExpression(ConjoiningExpression that) |
transformConstructorDefinition | shared actual default Result transformConstructorDefinition(ConstructorDefinition that) |
transformControlStructure | shared actual default Result transformControlStructure(ControlStructure that) |
transformDec | shared actual default Result transformDec(Dec that) Refines Transformer.transformDec |
transformDeclaration | shared actual default Result transformDeclaration(Declaration that) Refines Transformer.transformDeclaration |
transformDefaultedParameter | shared actual default Result transformDefaultedParameter(DefaultedParameter that) |
transformDirective | shared actual default Result transformDirective(Directive that) Refines Transformer.transformDirective |
transformDisjoiningExpression | shared actual default Result transformDisjoiningExpression(DisjoiningExpression that) |
transformEqualityOperation | shared actual default Result transformEqualityOperation(EqualityOperation that) |
transformEquatingExpression | shared actual default Result transformEquatingExpression(EquatingExpression that) |
transformExistsNonemptyExpression | shared actual default Result transformExistsNonemptyExpression(ExistsNonemptyExpression that) |
transformExistsOrNonemptyCondition | shared actual default Result transformExistsOrNonemptyCondition(ExistsOrNonemptyCondition that) |
transformExponentiatingExpression | shared actual default Result transformExponentiatingExpression(ExponentiatingExpression that) |
transformExpression | shared actual default Result transformExpression(Expression that) Refines Transformer.transformExpression |
transformExpressionStatement | shared actual default Result transformExpressionStatement(ExpressionStatement that) |
transformExtensionOrConstruction | shared actual default Result transformExtensionOrConstruction(ExtensionOrConstruction that) |
transformIdentifier | shared actual default Result transformIdentifier(Identifier that) Refines Transformer.transformIdentifier |
transformImportAlias | shared actual default Result transformImportAlias(ImportAlias that) Refines Transformer.transformImportAlias |
transformImportElement | shared actual default Result transformImportElement(ImportElement that) |
transformInitialComprehensionClause | shared actual default Result transformInitialComprehensionClause(InitialComprehensionClause that) |
transformInlineDefinitionArgument | shared actual default Result transformInlineDefinitionArgument(InlineDefinitionArgument that) |
transformIntersectingExpression | shared actual default Result transformIntersectingExpression(IntersectingExpression that) |
transformInvertingExpression | shared actual default Result transformInvertingExpression(InvertingExpression that) |
transformLiteral | shared actual default Result transformLiteral(Literal that) Refines Transformer.transformLiteral |
transformLocalModifier | shared actual default Result transformLocalModifier(LocalModifier that) |
transformLogicalAssignmentOperation | shared actual default Result transformLogicalAssignmentOperation(LogicalAssignmentOperation that) |
transformLogicalOperation | shared actual default Result transformLogicalOperation(LogicalOperation that) |
transformMainType | shared actual default Result transformMainType(MainType that) Refines Transformer.transformMainType |
transformMemberDec | shared actual default Result transformMemberDec(MemberDec that) Refines Transformer.transformMemberDec |
transformMeta | shared actual default Result transformMeta(Meta that) Refines Transformer.transformMeta |
transformModifier | shared actual default Result transformModifier(Modifier that) Refines Transformer.transformModifier |
transformMultiplyingExpression | shared actual default Result transformMultiplyingExpression(MultiplyingExpression that) |
transformNameWithTypeArguments | shared actual default Result transformNameWithTypeArguments(NameWithTypeArguments that) |
transformNamedArgument | shared actual default Result transformNamedArgument(NamedArgument that) |
transformNegatingExpression | shared actual default Result transformNegatingExpression(NegatingExpression that) |
transformNode | shared actual default Result transformNode(Node that) Refines Transformer.transformNode |
transformOperation | shared actual default Result transformOperation(Operation that) Refines Transformer.transformOperation |
transformParameter | shared actual default Result transformParameter(Parameter that) Refines Transformer.transformParameter |
transformPattern | shared actual default Result transformPattern(Pattern that) Refines Transformer.transformPattern |
transformPostfixOperation | shared actual default Result transformPostfixOperation(PostfixOperation that) |
transformPrePostfixingExpression | shared actual default Result transformPrePostfixingExpression(PrePostfixingExpression that) |
transformPrefixOperation | shared actual default Result transformPrefixOperation(PrefixOperation that) |
transformPrimary | shared actual default Result transformPrimary(Primary that) Refines Transformer.transformPrimary |
transformPrimaryType | shared actual default Result transformPrimaryType(PrimaryType that) Refines Transformer.transformPrimaryType |
transformRangeSubscript | shared actual default Result transformRangeSubscript(RangeSubscript that) |
transformRequiredParameter | shared actual default Result transformRequiredParameter(RequiredParameter that) |
transformScalingExpression | shared actual default Result transformScalingExpression(ScalingExpression that) |
transformSelfReference | shared actual default Result transformSelfReference(SelfReference that) |
transformSetAssignmentOperation | shared actual default Result transformSetAssignmentOperation(SetAssignmentOperation that) |
transformSetOperation | shared actual default Result transformSetOperation(SetOperation that) |
transformSimpleType | shared actual default Result transformSimpleType(SimpleType that) Refines Transformer.transformSimpleType |
transformSpanningExpression | shared actual default Result transformSpanningExpression(SpanningExpression that) |
transformSpecification | shared actual default Result transformSpecification(Specification that) |
transformStatement | shared actual default Result transformStatement(Statement that) Refines Transformer.transformStatement |
transformStructureExpression | shared actual default Result transformStructureExpression(StructureExpression that) |
transformSubscript | shared actual default Result transformSubscript(Subscript that) Refines Transformer.transformSubscript |
transformThenElseExpression | shared actual default Result transformThenElseExpression(ThenElseExpression that) |
transformType | shared actual default Result transformType(Type that) Refines Transformer.transformType |
transformTypeDec | shared actual default Result transformTypeDec(TypeDec that) Refines Transformer.transformTypeDec |
transformTypeDeclaration | shared actual default Result transformTypeDeclaration(TypeDeclaration that) |
transformTypeIsh | shared actual default Result transformTypeIsh(TypeIsh that) Refines Transformer.transformTypeIsh |
transformTypeModifier | shared actual default Result transformTypeModifier(TypeModifier that) |
transformTypedDeclaration | shared actual default Result transformTypedDeclaration(TypedDeclaration that) |
transformUnaryArithmeticOperation | shared actual default Result transformUnaryArithmeticOperation(UnaryArithmeticOperation that) |
transformUnaryIshOperation | shared actual default Result transformUnaryIshOperation(UnaryIshOperation that) |
transformUnaryOperation | shared actual default Result transformUnaryOperation(UnaryOperation that) |
transformUnaryTypeOperation | shared actual default Result transformUnaryTypeOperation(UnaryTypeOperation that) |
transformUnionableType | shared actual default Result transformUnionableType(UnionableType that) |
transformUnioningExpression | shared actual default Result transformUnioningExpression(UnioningExpression that) |
transformValueExpression | shared actual default Result transformValueExpression(ValueExpression that) |
transformVariable | shared actual default Result transformVariable(Variable that) Refines Transformer.transformVariable |
transformVariance | shared actual default Result transformVariance(Variance that) Refines Transformer.transformVariance |