From 0c0dd043ec6c56c294c8296e7aa0c213d3a08f36 Mon Sep 17 00:00:00 2001 From: Walcher Date: Sun, 7 Jan 2024 13:20:18 +0100 Subject: [PATCH] fixed bug --- src/main/java/ab1/impl/GRUPPE/NFAImpl.java | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/ab1/impl/GRUPPE/NFAImpl.java b/src/main/java/ab1/impl/GRUPPE/NFAImpl.java index 2b2b352..4431d6e 100644 --- a/src/main/java/ab1/impl/GRUPPE/NFAImpl.java +++ b/src/main/java/ab1/impl/GRUPPE/NFAImpl.java @@ -98,8 +98,6 @@ public class NFAImpl implements NFA { return null; } - - // #TODO @Override public NFA kleeneStar() throws FinalizedStateException { if (!this.isFinalized) { @@ -112,20 +110,22 @@ public class NFAImpl implements NFA { nfa.states.addAll(this.states); nfa.transitions.addAll(this.transitions); + // adding the initial state as accepting state because we have to accept the empty string + nfa.acceptingStates.add(this.initialState); + + // for each accepting state for (String acceptingState : this.acceptingStates) { Transition loopBackTransition = // creating an epsilon transition (null) for each accepting state new Transition(acceptingState, null, this.initialState); - nfa.transitions.add(loopBackTransition); + if (!nfa.transitions.contains(loopBackTransition)) { + nfa.transitions.add(loopBackTransition); + } } - // adding the initial state as accepting state because we have to accept the empty string - nfa.acceptingStates.add(this.initialState); - return nfa; } - // #TODO @Override public NFA plusOperator() throws FinalizedStateException { if (!this.isFinalized) { @@ -144,7 +144,9 @@ public class NFAImpl implements NFA { Transition loopBackTransition = // creating an epsilon transition (null) for each accepting state new Transition(acceptingState, null, this.initialState); - nfa.transitions.add(loopBackTransition); + if (!nfa.transitions.contains(loopBackTransition)) { + nfa.transitions.add(loopBackTransition); + } } return nfa; @@ -156,6 +158,11 @@ public class NFAImpl implements NFA { return null; } + public void turnNFAIntoDFA(NFAImpl nfa) { + // #TODO + } + + @Override public boolean isFinalized() { return isFinalized;