Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
Abgabe4Java
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Dominic Daniel Krämer
Abgabe4Java
Commits
9a8c6438
Commit
9a8c6438
authored
2 years ago
by
Dominic Daniel Krämer
Browse files
Options
Downloads
Patches
Plain Diff
implemented basics for the visitor pattern
parent
e04b6e92
No related branches found
Branches containing commit
No related tags found
1 merge request
!10
Dominicsbranch
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
expressions.txt
+4
-0
4 additions, 0 deletions
expressions.txt
src/Evaluator.java
+2
-0
2 additions, 0 deletions
src/Evaluator.java
src/Parser.java
+14
-24
14 additions, 24 deletions
src/Parser.java
src/Visitor.java
+6
-0
6 additions, 0 deletions
src/Visitor.java
to-do.txt
+9
-0
9 additions, 0 deletions
to-do.txt
with
35 additions
and
24 deletions
expressions.txt
+
4
−
0
View file @
9a8c6438
1 + xy^2 - (31 * x)y
1 + x^2 - (3 * x)
2x + 0.5x^2 - 1
((5+2)-8)-8+12
(5*2-(5^2)+3*(201.01-15))
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/Evaluator.java
0 → 100644
+
2
−
0
View file @
9a8c6438
public
class
Evaluator
{
}
This diff is collapsed.
Click to expand it.
src/Parser.java
+
14
−
24
View file @
9a8c6438
...
...
@@ -3,14 +3,11 @@ import java.util.List;
public
class
Parser
{
public
static
class
Expression
{
@Override
public
String
toString
()
{
return
""
;
}
public
abstract
class
Expression
{
public
abstract
<
T
>
T
accept
(
Visitor
<
T
>
visitor
);
}
p
rivate
class
BinaryOperation
extends
Expression
{
p
ublic
class
BinaryOperation
extends
Expression
{
Expression
leftExpression
;
String
operator
;
Expression
rightExpression
;
...
...
@@ -21,23 +18,18 @@ public class Parser {
this
.
rightExpression
=
rightExpression
;
this
.
capsuled
=
capsuled
;
}
@Override
public
String
toString
()
{
if
(
capsuled
)
{
return
"("
+
leftExpression
.
toString
()
+
operator
+
rightExpression
.
toString
()
+
")"
;
}
return
leftExpression
.
toString
()
+
operator
+
rightExpression
.
toString
();
public
<
T
>
T
accept
(
Visitor
<
T
>
visitor
)
{
return
visitor
.
visit
(
this
);
}
}
p
rivate
class
Variable
extends
Expression
{
p
ublic
class
Variable
extends
Expression
{
String
variableName
;
public
Variable
(
String
i
,
Boolean
capsuled
)
{
this
.
variableName
=
i
;
}
@Override
public
String
toString
()
{
return
variableName
;
public
<
T
>
T
accept
(
Visitor
<
T
>
visitor
)
{
return
visitor
.
visit
(
this
);
}
}
...
...
@@ -45,18 +37,17 @@ public class Parser {
}
p
rivate
class
Number
extends
Value
{
p
ublic
class
Number
extends
Value
{
public
String
digits
;
public
Number
(
String
i
)
{
this
.
digits
=
i
;
}
@Override
public
String
toString
()
{
return
digits
;
public
<
T
>
T
accept
(
Visitor
<
T
>
visitor
)
{
return
visitor
.
visit
(
this
);
}
}
p
rivate
class
Decimal
extends
Value
{
p
ublic
class
Decimal
extends
Value
{
public
Number
beforeDot
;
public
Number
afterDot
;
...
...
@@ -64,9 +55,8 @@ public class Parser {
this
.
beforeDot
=
i1
;
this
.
afterDot
=
i2
;
}
@Override
public
String
toString
()
{
return
beforeDot
.
toString
()
+
"."
+
afterDot
.
toString
();
public
<
T
>
T
accept
(
Visitor
<
T
>
visitor
)
{
return
visitor
.
visit
(
this
);
}
}
...
...
This diff is collapsed.
Click to expand it.
src/Visitor.java
0 → 100644
+
6
−
0
View file @
9a8c6438
public
interface
Visitor
<
T
>{
public
T
visit
(
final
Parser
.
BinaryOperation
binOp
);
public
T
visit
(
final
Parser
.
Variable
variable
);
public
T
visit
(
final
Parser
.
Number
number
);
public
T
visit
(
final
Parser
.
Decimal
decimal
);
}
This diff is collapsed.
Click to expand it.
to-do.txt
0 → 100644
+
9
−
0
View file @
9a8c6438
2. Testklassen
3. Visitor pattern
4. plot function
5. Überarbeiten
-> Dokumentation
-> Exceptions
-> Kommentare
-> Code strukturieren
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment