Exercise 5: Language transformation classes

Summary

Implement classes to represent language transformations.

Specification

Click here

Interfaces:

IToken: A token.
IInputToken: Tokens that may be contained by a transformation's input specification.
IPropertyPathToken: Tokens that may be contained by a property, as part of its path.
IOutputPropertyPathToken: Tokens that may be contained by a property which are themselves contained in a transformation's output specification. (Permits variable tokens)

Required classes:

Transformation
TransInput
TransOutput
Token
LiteralToken
EntityTypeToken
EntityToken
PropertyToken
VariableToken
Fragment
FragmentToken

Enumerations:

TokenType: Literal, EntityType, Entity, Fragment, Variable, Property

Test cases

Click here

Solution

Click here