/*******************************************************************************
* Copyright (c) 2007, 2008 Edgar Espina.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
*******************************************************************************/
package org.deved.antlride.debug.model.event;
import org.deved.antlride.core.util.AntlrTextHelper;
import org.deved.antlride.debug.model.AntlrDebugTarget;
public class AntlrDebugTokenEvent extends AntlrDebugEvent {
private int line;
private int column;
private String text;
private int type;
private String tokenName;
public AntlrDebugTokenEvent(AntlrDebugTarget debugTarget,
AntlrDebugEventKind eventKind, String event, String... properties) {
super(debugTarget, eventKind);
this.line = Integer.parseInt(properties[4]);
this.column = Integer.parseInt(properties[5]);
this.type = Integer.parseInt(properties[2]);
if (eventKind == AntlrDebugEventKind.CONSUME_HIDDEN_TOKEN) {
int i = event.lastIndexOf('\"');
this.text = AntlrTextHelper.unEscapeNewlines(event.substring(i + 1));
} else {
this.text = AntlrTextHelper.unEscapeNewlines(getTextFromEvent(6, properties));
}
}
public int getLine() {
return line;
}
public boolean isHidden() {
return getEventKind() == AntlrDebugEventKind.CONSUME_HIDDEN_TOKEN;
}
public int getColumn() {
return column;
}
public String getText() {
return text;
}
public int getType() {
return type;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder(super.toString());
builder.append(tokenName);
builder.append(' ');
builder.append(line);
builder.append(':');
builder.append(column);
builder.append(" \"");
builder.append(text);
builder.append("\"");
return builder.toString();
}
public void setTokenName(String tokenName) {
this.tokenName = tokenName;
}
public String getTokenName() {
return tokenName;
}
}