/*******************************************************************************
* Copyright (c) 2008 Scott Stanchfield.
* 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
*
* Contributors:
* Based on the ANTLR parser generator by Terence Parr, http://antlr.org
* Ric Klaren <klaren@cs.utwente.nl>
* Scott Stanchfield - Modifications for XML Parsing
*******************************************************************************/
package com.javadude.antxr;
class TokenRangeElement extends AlternativeElement {
String label;
protected int begin = Token.INVALID_TYPE;
protected int end = Token.INVALID_TYPE;
protected String beginText;
protected String endText;
public TokenRangeElement(Grammar g, Token t1, Token t2, int autoGenType) {
super(g, t1, autoGenType);
begin = grammar.tokenManager.getTokenSymbol(t1.getText()).getTokenType();
beginText = t1.getText();
end = grammar.tokenManager.getTokenSymbol(t2.getText()).getTokenType();
endText = t2.getText();
line = t1.getLine();
}
@Override
public void generate() {
grammar.generator.gen(this);
}
@Override
public String getLabel() {
return label;
}
@Override
public Lookahead look(int k) {
return grammar.theLLkAnalyzer.look(k, this);
}
@Override
public void setLabel(String label_) {
label = label_;
}
@Override
public String toString() {
if (label != null) {
return " " + label + ":" + beginText + ".." + endText;
}
return " " + beginText + ".." + endText;
}
}