package de.skuzzle.polly.core.parser.ast.visitor; import de.skuzzle.polly.core.parser.ast.Identifier; import de.skuzzle.polly.core.parser.ast.ResolvableIdentifier; import de.skuzzle.polly.core.parser.ast.Root; import de.skuzzle.polly.core.parser.ast.declarations.Declaration; import de.skuzzle.polly.core.parser.ast.directives.DelayDirective; import de.skuzzle.polly.core.parser.ast.directives.Directive; import de.skuzzle.polly.core.parser.ast.directives.ProblemDirective; import de.skuzzle.polly.core.parser.ast.expressions.Assignment; import de.skuzzle.polly.core.parser.ast.expressions.Braced; import de.skuzzle.polly.core.parser.ast.expressions.Call; import de.skuzzle.polly.core.parser.ast.expressions.Delete; import de.skuzzle.polly.core.parser.ast.expressions.Delete.DeleteableIdentifier; import de.skuzzle.polly.core.parser.ast.expressions.Expression; import de.skuzzle.polly.core.parser.ast.expressions.Inspect; import de.skuzzle.polly.core.parser.ast.expressions.NamespaceAccess; import de.skuzzle.polly.core.parser.ast.expressions.Native; import de.skuzzle.polly.core.parser.ast.expressions.OperatorCall; import de.skuzzle.polly.core.parser.ast.expressions.VarAccess; import de.skuzzle.polly.core.parser.ast.expressions.literals.BooleanLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.ChannelLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.DateLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.FunctionLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.HelpLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.ListLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.NumberLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.ProductLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.StringLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.TimespanLiteral; import de.skuzzle.polly.core.parser.ast.expressions.literals.UserLiteral; public interface Transformation { Identifier transformIdentifier(Identifier node) throws ASTTraversalException; ResolvableIdentifier transformIdentifier(ResolvableIdentifier node) throws ASTTraversalException; DeleteableIdentifier transformIdentifier(DeleteableIdentifier deleteableIdentifier); Root transformRoot(Root node) throws ASTTraversalException; Declaration transformDeclaration(Declaration node) throws ASTTraversalException; Expression transformAssignment(Assignment node) throws ASTTraversalException; Expression transformBraced(Braced node) throws ASTTraversalException; Expression transformCall(Call node) throws ASTTraversalException; Expression transformDelete(Delete node) throws ASTTraversalException; Expression transformAccess(NamespaceAccess node) throws ASTTraversalException; Expression transformNative(Native node) throws ASTTraversalException; Expression transformOperatorCall(OperatorCall node) throws ASTTraversalException; Expression transformVarAccess(VarAccess node) throws ASTTraversalException; Expression transformBoolean(BooleanLiteral node); Expression transformString(ChannelLiteral node) throws ASTTraversalException; Expression transformDate(DateLiteral node) throws ASTTraversalException; Expression transformFunction(FunctionLiteral node) throws ASTTraversalException; Expression transformList(ListLiteral node) throws ASTTraversalException; Expression transformNumber(NumberLiteral node) throws ASTTraversalException; ProductLiteral transformProduct(ProductLiteral node) throws ASTTraversalException; Expression transformString(StringLiteral node) throws ASTTraversalException; Expression transformTimeSpan(TimespanLiteral node) throws ASTTraversalException; Expression transformUser(UserLiteral node) throws ASTTraversalException; HelpLiteral transformHelp(HelpLiteral node) throws ASTTraversalException; Inspect transformInspect(Inspect node) throws ASTTraversalException; Directive transform(DelayDirective node) throws ASTTraversalException; Directive transform(ProblemDirective node) throws ASTTraversalException; }