// Path: parser/src/main/java/ch/ethz/inf/vs/semantics/parser/elements/Iri.java
// public class Iri implements N3Element.Object, N3Element.Verb, N3Element.Subject, N3Element, Serializable {
// 	public final boolean uriref;
// 	private Prefix prefix;
// 	public String text;
// 
// 	public Iri(N3Document doc, String text) {
// 
// 		if (text.startsWith("<") && text.endsWith(">")) {
// 			uriref = true;
// 			this.text = text.substring(1, text.length() - 1);
// 		} else {
// 			uriref = false;
// 			assert (text.split(":").length == 2);
// 			String[] parts = text.split(":");
// 			this.prefix = doc.getPrefix(parts[0]);
// 			assert (this.prefix != null);
// 			this.text = parts[1];
// 		}
// 
// 	}
// 
// 	@Override
// 	public String toString() {
// 		if (uriref) {
// 			return "<" + text + ">";
// 		}
// 		return this.prefix.getName() + text;
// 	}
// 
// 	public String getGlobalName() {
// 		if (uriref) {
// 			return "<" + text + ">";
// 		}
// 		return this.prefix.getUri() + text;
// 	}
// 
// 	@Override
// 	public <T> T accept(IN3ElementVisitor<T> b) {
// 		return b.visitIri(this);
// 	}
// 
// 	@Override
// 	public Iterable<? extends N3Element> getChildern() {
// 		return null;
// 	}
// 
// 	@Override
// 	public void replace(N3Element n, N3Element replace) {
// 		throw new RuntimeException("Unexpected call");
// 	}
// 
// 	@Override
// 	public String toReadableString() {
// 		return text;
// 	}
// 
// 	public Prefix getPrefix() {
// 		return prefix;
// 	}
// 
// 	public void setPrefix(Prefix prefix) {
// 		this.prefix = prefix;
// 	}
// }
// 
// Path: parser/src/main/java/ch/ethz/inf/vs/semantics/parser/elements/Prefix.java
// public class Prefix implements N3Element, Serializable {
// 	private String name;
// 	private String uri;
// 
// 	public Prefix(String name, String uri) {
// 		this.name = name;
// 		this.uri = uri.substring(1, uri.length() - 1);
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public String getUri() {
// 		return uri;
// 	}
// 
// 	public void setUri(String uri) {
// 		this.uri = uri;
// 	}
// 
// 	@Override
// 	public <T> T accept(IN3ElementVisitor<T> b) {
// 		return b.visitPrefix(this);
// 	}
// 
// 	@Override
// 	public Iterable<? extends N3Element> getChildern() {
// 		return null;
// 	}
// 
// 	@Override
// 	public void replace(N3Element n, N3Element replace) {
// 		throw new RuntimeException("Unexpected call");
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	@Override
// 	public String toString() {
// 
// 		StringBuilder sb = new StringBuilder();
// 		sb.append("@prefix ");
// 		sb.append(getName());
// 		sb.append(" <");
// 		sb.append(getUri());
// 		sb.append(">.");
// 		return sb.toString();
// 	}
// }


import ch.ethz.inf.vs.semantics.parser.elements.Iri;
import ch.ethz.inf.vs.semantics.parser.elements.Prefix;
import java.util.Set;
package ch.ethz.inf.vs.semantics.parser.visitors;



public class HintsVisitor extends N3BaseElementVisitor<Void> {

	private Set<String> hints;

	public HintsVisitor(Set<String> hints) {

		this.hints = hints;
	}

	@Override
	public Void visitPrefix(Prefix p) {
		try {
			hints.add(p.toString());

		} catch (Exception e) {

		}
		return null;
	}

	@Override
// Path: parser/src/main/java/ch/ethz/inf/vs/semantics/parser/elements/Iri.java
// public class Iri implements N3Element.Object, N3Element.Verb, N3Element.Subject, N3Element, Serializable {
// 	public final boolean uriref;
// 	private Prefix prefix;
// 	public String text;
// 
// 	public Iri(N3Document doc, String text) {
// 
// 		if (text.startsWith("<") && text.endsWith(">")) {
// 			uriref = true;
// 			this.text = text.substring(1, text.length() - 1);
// 		} else {
// 			uriref = false;
// 			assert (text.split(":").length == 2);
// 			String[] parts = text.split(":");
// 			this.prefix = doc.getPrefix(parts[0]);
// 			assert (this.prefix != null);
// 			this.text = parts[1];
// 		}
// 
// 	}
// 
// 	@Override
// 	public String toString() {
// 		if (uriref) {
// 			return "<" + text + ">";
// 		}
// 		return this.prefix.getName() + text;
// 	}
// 
// 	public String getGlobalName() {
// 		if (uriref) {
// 			return "<" + text + ">";
// 		}
// 		return this.prefix.getUri() + text;
// 	}
// 
// 	@Override
// 	public <T> T accept(IN3ElementVisitor<T> b) {
// 		return b.visitIri(this);
// 	}
// 
// 	@Override
// 	public Iterable<? extends N3Element> getChildern() {
// 		return null;
// 	}
// 
// 	@Override
// 	public void replace(N3Element n, N3Element replace) {
// 		throw new RuntimeException("Unexpected call");
// 	}
// 
// 	@Override
// 	public String toReadableString() {
// 		return text;
// 	}
// 
// 	public Prefix getPrefix() {
// 		return prefix;
// 	}
// 
// 	public void setPrefix(Prefix prefix) {
// 		this.prefix = prefix;
// 	}
// }
// 
// Path: parser/src/main/java/ch/ethz/inf/vs/semantics/parser/elements/Prefix.java
// public class Prefix implements N3Element, Serializable {
// 	private String name;
// 	private String uri;
// 
// 	public Prefix(String name, String uri) {
// 		this.name = name;
// 		this.uri = uri.substring(1, uri.length() - 1);
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public String getUri() {
// 		return uri;
// 	}
// 
// 	public void setUri(String uri) {
// 		this.uri = uri;
// 	}
// 
// 	@Override
// 	public <T> T accept(IN3ElementVisitor<T> b) {
// 		return b.visitPrefix(this);
// 	}
// 
// 	@Override
// 	public Iterable<? extends N3Element> getChildern() {
// 		return null;
// 	}
// 
// 	@Override
// 	public void replace(N3Element n, N3Element replace) {
// 		throw new RuntimeException("Unexpected call");
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	@Override
// 	public String toString() {
// 
// 		StringBuilder sb = new StringBuilder();
// 		sb.append("@prefix ");
// 		sb.append(getName());
// 		sb.append(" <");
// 		sb.append(getUri());
// 		sb.append(">.");
// 		return sb.toString();
// 	}
// }


// Path: parser/src/main/java/ch/ethz/inf/vs/semantics/parser/visitors/HintsVisitor.java
import ch.ethz.inf.vs.semantics.parser.elements.Iri;
import ch.ethz.inf.vs.semantics.parser.elements.Prefix;
import java.util.Set;

package ch.ethz.inf.vs.semantics.parser.visitors;



public class HintsVisitor extends N3BaseElementVisitor<Void> {

	private Set<String> hints;

	public HintsVisitor(Set<String> hints) {

		this.hints = hints;
	}

	@Override
	public Void visitPrefix(Prefix p) {
		try {
			hints.add(p.toString());

		} catch (Exception e) {

		}
		return null;
	}

	@Override
	public Void visitIri(Iri iri) {