1
0
miroir de https://github.com/DanilaFe/abacus synchronisé 2025-11-27 05:15:30 -08:00

Implement the components of a new tree builder.

Cette révision appartient à :
Danila Fedorin 2017-07-29 21:02:41 -07:00
Parent 10c25fd478
révision 7b1b9aa01c
3 fichiers modifiés avec 42 ajouts et 0 suppressions

Voir le fichier

@ -0,0 +1,10 @@
package org.nwapw.abacus.parsing;
import org.nwapw.abacus.tree.TreeNode;
import java.util.List;
public interface Parser<T> {
public TreeNode constructTree(List<T> tokens);
}

Voir le fichier

@ -0,0 +1,9 @@
package org.nwapw.abacus.parsing;
import java.util.List;
public interface Tokenizer<T> {
public List<T> tokenizeString(String string);
}

Voir le fichier

@ -0,0 +1,23 @@
package org.nwapw.abacus.parsing;
import org.nwapw.abacus.tree.TreeNode;
import java.util.List;
public class TreeBuilder<T> {
private Tokenizer<T> tokenizer;
private Parser<T> parser;
public TreeBuilder(Tokenizer<T> tokenizer, Parser<T> parser){
this.tokenizer = tokenizer;
this.parser = parser;
}
public TreeNode fromString(String input){
List<T> tokens = tokenizer.tokenizeString(input);
if(tokens == null) return null;
return parser.constructTree(tokens);
}
}