Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Refactor] Move pre-/post-/infix output printing functionality to Visitor design pattern #3

Open
3 tasks
tommens opened this issue Dec 29, 2024 · 0 comments
Labels

Comments

@tommens
Copy link
Collaborator

tommens commented Dec 29, 2024

Issue
Currently the functionality of converting an expression to a string using prefix, postfix or infix notation is hardcoded as part of the Expression class hierarchy. More specifically, it is defined in the toString(Notation) method of the Operation class. This does not make much sense, since the way of outputing an expression in string format should be independent of how the expression is structured and represented internally.

Proposed solution

  • Use the Visitor design patterns, that is already present for evaluating expressions, to implement a new visitor for outputting arithmetic expressions as strings using different possible notations (prefix, postfix, infix traversal).
  • Move the "counting methods" that are part of the Expression class hierarchy to count the numbers and operations and depth of an expression, into another visitor.
  • Adapt all unit tests to accommodate the refactoring, since it will change the current way in which the code is structured.

Classification
suggested code refactoring

Related issues
This proposed refactoring is related to bug issue #2 that will, in principle, be resolved if the proposed refactoring is carried out correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant