51 lines
1.5 KiB
Plaintext
51 lines
1.5 KiB
Plaintext
@startuml
|
|
package com.iluwatar.interpreter {
|
|
class App {
|
|
- LOGGER : Logger {static}
|
|
+ App()
|
|
+ getOperatorInstance(s : String, left : Expression, right : Expression) : Expression {static}
|
|
+ isOperator(s : String) : boolean {static}
|
|
+ main(args : String[]) {static}
|
|
}
|
|
abstract class Expression {
|
|
+ Expression()
|
|
+ interpret() : int {abstract}
|
|
+ toString() : String {abstract}
|
|
}
|
|
class MinusExpression {
|
|
- leftExpression : Expression
|
|
- rightExpression : Expression
|
|
+ MinusExpression(leftExpression : Expression, rightExpression : Expression)
|
|
+ interpret() : int
|
|
+ toString() : String
|
|
}
|
|
class MultiplyExpression {
|
|
- leftExpression : Expression
|
|
- rightExpression : Expression
|
|
+ MultiplyExpression(leftExpression : Expression, rightExpression : Expression)
|
|
+ interpret() : int
|
|
+ toString() : String
|
|
}
|
|
class NumberExpression {
|
|
- number : int
|
|
+ NumberExpression(number : int)
|
|
+ NumberExpression(s : String)
|
|
+ interpret() : int
|
|
+ toString() : String
|
|
}
|
|
class PlusExpression {
|
|
- leftExpression : Expression
|
|
- rightExpression : Expression
|
|
+ PlusExpression(leftExpression : Expression, rightExpression : Expression)
|
|
+ interpret() : int
|
|
+ toString() : String
|
|
}
|
|
}
|
|
MultiplyExpression --> "-leftExpression" Expression
|
|
MinusExpression --> "-leftExpression" Expression
|
|
PlusExpression --> "-leftExpression" Expression
|
|
MinusExpression --|> Expression
|
|
MultiplyExpression --|> Expression
|
|
NumberExpression --|> Expression
|
|
PlusExpression --|> Expression
|
|
@enduml |