Skip to content

Commit

Permalink
[fix UnitexGramLab#110] Resolving a bug in the construction of POS-list
Browse files Browse the repository at this point in the history
Implementation of Kleene's algorithm in order to transform an automaton into a regular expression
  • Loading branch information
mthouv committed Sep 13, 2018
1 parent eb4dd69 commit e346bc7
Show file tree
Hide file tree
Showing 8 changed files with 983 additions and 6 deletions.
94 changes: 94 additions & 0 deletions unitex/src/fr/umlv/unitex/expr/Concatenation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package fr.umlv.unitex.expr;

import java.util.List;

public class Concatenation extends Operator {

@Override
public boolean equals(Object o) {
if (!(o instanceof Value)) {
return false;
}
Concatenation c= (Concatenation) o;
return c.getOperands().equals(this.getOperands());
}


@Override
protected String getOpSymbol() {
return " ";
}



public String getOpeningSymbol() {
return "";
}

public String getClosingSymbol() {
return "";
}


/*
public void addOperand(Parallelization p) {
super.addOperand(p);
}
*/

/*
public void addOperand(Value v) {
super.addOperand(v);
}
*/

/*
public void addOperand(Value v) {
this.addOperand(v);
}
*/

/*
public void addOperand(Concatenation c) {
List<Expression> list = c.getOperands();
for (Expression e : list) {
this.addOperand(e);
}
}
*/


public void addOperand(Expression expr) {
if (expr instanceof Concatenation) {
for (Expression e : expr.getOperands()) {
this.addOperand(e);
}
}
else {
super.addOperand(expr);
}
}


public void addOperands(Expression expr, int start, int end) {
List<Expression> list = expr.getOperands();
for (int i = start; i < end; i++) {
this.addOperand(list.get(i));
}
}




/*
public void addOperand(Expression expr, int start, int end) {
List<Expression> list = expr.getOperands();
for (int i = start; i < end; i++) {
this.addOperand(list.get(i));
}
}
*/



}
14 changes: 14 additions & 0 deletions unitex/src/fr/umlv/unitex/expr/Expression.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package fr.umlv.unitex.expr;

import java.util.ArrayList;
import java.util.List;

public interface Expression {


List<Expression> getOperands();

int getOperandsSize();


}
Loading

0 comments on commit e346bc7

Please sign in to comment.