/src/org/ooc/frontend/model/Parenthesis.java

http://github.com/nddrylliog/ooc · Java · 66 lines · 49 code · 17 blank · 0 comment · 2 complexity · ff078fbe37425dcc4b1519bf0b332f8a MD5 · raw file

  1. package org.ooc.frontend.model;
  2. import java.io.IOException;
  3. import org.ooc.frontend.Visitor;
  4. import org.ooc.frontend.model.tokens.Token;
  5. public class Parenthesis extends Expression {
  6. protected Expression expression;
  7. public Parenthesis(Expression expression) {
  8. super(expression.startToken);
  9. this.expression = expression;
  10. }
  11. public Parenthesis(Expression expression, Token startToken) {
  12. super(startToken);
  13. this.expression = expression;
  14. }
  15. public Expression getExpression() {
  16. return expression;
  17. }
  18. public void setExpression(Expression expression) {
  19. this.expression = expression;
  20. }
  21. public Type getType() {
  22. return expression.getType();
  23. }
  24. public void accept(Visitor visitor) throws IOException {
  25. visitor.visit(this);
  26. }
  27. public boolean hasChildren() {
  28. return true;
  29. }
  30. public void acceptChildren(Visitor visitor) throws IOException {
  31. expression.accept(visitor);
  32. }
  33. @Override
  34. public boolean replace(Node oldie, Node kiddo) {
  35. if(oldie == expression) {
  36. expression = (Expression) kiddo;
  37. return true;
  38. }
  39. return false;
  40. }
  41. @Override
  42. public String toString() {
  43. return "Parenthesis: (" + expression + ")";
  44. }
  45. @Override
  46. public boolean canBeReferenced() {
  47. return expression.canBeReferenced();
  48. }
  49. }