// Copyright 2013 Thomas Müller // This file is part of MarMoT, which is licensed under GPLv3. package marmot.morph.mapper; import java.io.IOException; import java.io.Writer; import java.util.ArrayList; import java.util.List; public class SyntaxTree { private static final char SEPARATOR = '\t'; private List<Node> nodes_; public SyntaxTree() { nodes_ = new ArrayList<Node>(); } public void addNode(Node node) { nodes_.add(node); } public List<Node> getNodes() { return nodes_; } public void write(Writer writer) throws IOException { int index = 1; for (Node node : nodes_) { writer.write(Integer.toString(index)); writer.write(SEPARATOR); writer.write(node.getForm()); writer.write(SEPARATOR); writer.write(node.getLemma()); writer.write(SEPARATOR); assert !node.getMorphTag().toPosString().isEmpty(); writer.write(node.getMorphTag().toPosString()); writer.write(SEPARATOR); writer.write(node.getMorphTag().toPosString()); writer.write(SEPARATOR); assert !node.getMorphTag().toHumanMorphString().isEmpty(); writer.write(node.getMorphTag().toHumanMorphString()); writer.write(SEPARATOR); writer.write(Integer.toString(node.getHeadIndex())); writer.write(SEPARATOR); writer.write(node.getDeprel()); writer.write('\n'); index ++; } } }