You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
package com.fr.third.antlr; |
|
|
|
/* ANTLR Translator Generator |
|
* Project led by Terence Parr at http://www.cs.usfca.edu |
|
* Software rights: http://www.antlr.org/license.html |
|
* |
|
* $Id: //depot/code/org.antlr/release/antlr-2.7.7/antlr/CharRangeElement.java#2 $ |
|
*/ |
|
|
|
class CharRangeElement extends AlternativeElement { |
|
String label; |
|
protected char begin = 0; |
|
protected char end = 0; |
|
protected String beginText; |
|
protected String endText; |
|
|
|
|
|
public CharRangeElement(LexerGrammar g, Token t1, Token t2, int autoGenType) { |
|
super(g); |
|
begin = (char)ANTLRLexer.tokenTypeForCharLiteral(t1.getText()); |
|
beginText = t1.getText(); |
|
end = (char)ANTLRLexer.tokenTypeForCharLiteral(t2.getText()); |
|
endText = t2.getText(); |
|
line = t1.getLine(); |
|
// track which characters are referenced in the grammar |
|
for (int i = begin; i <= end; i++) { |
|
g.charVocabulary.add(i); |
|
} |
|
this.autoGenType = autoGenType; |
|
} |
|
|
|
public void generate() { |
|
grammar.generator.gen(this); |
|
} |
|
|
|
public String getLabel() { |
|
return label; |
|
} |
|
|
|
public Lookahead look(int k) { |
|
return grammar.theLLkAnalyzer.look(k, this); |
|
} |
|
|
|
public void setLabel(String label_) { |
|
label = label_; |
|
} |
|
|
|
public String toString() { |
|
if (label != null) |
|
return " " + label + ":" + beginText + ".." + endText; |
|
else |
|
return " " + beginText + ".." + endText; |
|
} |
|
}
|
|
|