// Path: src/main/java/com/almondtools/rexlex/Token.java
// public interface Token {
// 
// 	String getLiteral();
// 	TokenType getType();
// 	
// }
// 
// Path: src/main/java/com/almondtools/rexlex/TokenType.java
// public interface TokenType {
// 
// 	boolean error();
// 	boolean accept();
// 
// }


import com.almondtools.rexlex.Token;
import com.almondtools.rexlex.TokenType;
package com.almondtools.rexlex.tokens;


public class TestToken implements Token {

	private String literal;
	private TokenType type;

	public TestToken(String literal, TokenType type) {
		this.literal = literal;
		this.type = type;
	}
	
	@Override
	public String getLiteral() {
		return literal;
	}
	
	@Override
	public TokenType getType() {
		return type;
	}
	
	@Override
	public int hashCode() {
		return literal.hashCode() * 31 + type.hashCode();
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
// Path: src/main/java/com/almondtools/rexlex/Token.java
// public interface Token {
// 
// 	String getLiteral();
// 	TokenType getType();
// 	
// }
// 
// Path: src/main/java/com/almondtools/rexlex/TokenType.java
// public interface TokenType {
// 
// 	boolean error();
// 	boolean accept();
// 
// }


// Path: src/test/java/com/almondtools/rexlex/tokens/TestToken.java
import com.almondtools.rexlex.Token;
import com.almondtools.rexlex.TokenType;

package com.almondtools.rexlex.tokens;


public class TestToken implements Token {

	private String literal;
	private TokenType type;

	public TestToken(String literal, TokenType type) {
		this.literal = literal;
		this.type = type;
	}
	
	@Override
	public String getLiteral() {
		return literal;
	}
	
	@Override
	public TokenType getType() {
		return type;
	}
	
	@Override
	public int hashCode() {
		return literal.hashCode() * 31 + type.hashCode();
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)