// Path: parser/src/main/java/ch/ethz/inf/vs/semantics/parser/visitors/IN3ElementVisitor.java
// public interface IN3ElementVisitor<T> {
// 	public T visitBlankNode(BlankNode blankNode);
// 
// 	T visitBlankNodePropertyList(BlankNodePropertyList verbObjects);
// 
// 	T visitBooleanLiteral(BooleanLiteral booleanLiteral);
// 
// 	T vistClassification(Classification classification);
// 
// 	T vistExvar(Exvar exvar);
// 
// 	T vistFormula(Formula statements);
// 
// 	T visitIri(Iri iri);
// 
// 	T visitLiteral(Literal literal);
// 
// 	T visitObjectCollection(ObjectCollection objects);
// 
// 	T visitObjectList(ObjectList objects);
// 
// 	T visitStatements(Statements statements);
// 
// 	T visitRDFResource(RDFResource RDFResource);
// 
// 	T visitVerb(Verb verb);
// 
// 	T visitVerbObject(VerbObject verbObject);
// 
// 	T visitN3Document(N3Document n3Document);
// 
// 	T visitPrefix(Prefix p);
// }


import ch.ethz.inf.vs.semantics.parser.visitors.IN3ElementVisitor;
import org.apache.commons.lang3.StringEscapeUtils;
import java.io.Serializable;
		this(text, false);
	}

	public Literal(String text, boolean makeString) {
		if (!makeString) {
			if (text.startsWith("\"") && text.endsWith("\"")) {
				string = true;
				text = text.substring(1, text.length() - 1);
				this.text = StringEscapeUtils.unescapeJava(text);
			} else {
				string = false;
				this.text = text;
			}
		} else {

			string = true;
			this.text = text;
		}
	}

	@Override
	public String toString() {
		if (string) {
			return "\"" + StringEscapeUtils.escapeJava(text) + "\"";
		} else {
			return text;
		}
	}

	@Override
// Path: parser/src/main/java/ch/ethz/inf/vs/semantics/parser/visitors/IN3ElementVisitor.java
// public interface IN3ElementVisitor<T> {
// 	public T visitBlankNode(BlankNode blankNode);
// 
// 	T visitBlankNodePropertyList(BlankNodePropertyList verbObjects);
// 
// 	T visitBooleanLiteral(BooleanLiteral booleanLiteral);
// 
// 	T vistClassification(Classification classification);
// 
// 	T vistExvar(Exvar exvar);
// 
// 	T vistFormula(Formula statements);
// 
// 	T visitIri(Iri iri);
// 
// 	T visitLiteral(Literal literal);
// 
// 	T visitObjectCollection(ObjectCollection objects);
// 
// 	T visitObjectList(ObjectList objects);
// 
// 	T visitStatements(Statements statements);
// 
// 	T visitRDFResource(RDFResource RDFResource);
// 
// 	T visitVerb(Verb verb);
// 
// 	T visitVerbObject(VerbObject verbObject);
// 
// 	T visitN3Document(N3Document n3Document);
// 
// 	T visitPrefix(Prefix p);
// }


// Path: parser/src/main/java/ch/ethz/inf/vs/semantics/parser/elements/Literal.java
import ch.ethz.inf.vs.semantics.parser.visitors.IN3ElementVisitor;
import org.apache.commons.lang3.StringEscapeUtils;
import java.io.Serializable;

		this(text, false);
	}

	public Literal(String text, boolean makeString) {
		if (!makeString) {
			if (text.startsWith("\"") && text.endsWith("\"")) {
				string = true;
				text = text.substring(1, text.length() - 1);
				this.text = StringEscapeUtils.unescapeJava(text);
			} else {
				string = false;
				this.text = text;
			}
		} else {

			string = true;
			this.text = text;
		}
	}

	@Override
	public String toString() {
		if (string) {
			return "\"" + StringEscapeUtils.escapeJava(text) + "\"";
		} else {
			return text;
		}
	}

	@Override
	public <T> T accept(IN3ElementVisitor<T> b) {