KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > antlr > CharRangeElement


1 package antlr;
2
3 /* ANTLR Translator Generator
4  * Project led by Terence Parr at http://www.jGuru.com
5  * Software rights: http://www.antlr.org/RIGHTS.html
6  *
7  * $Id: //depot/code/org.antlr/main/main/antlr/CharRangeElement.java#4 $
8  */

9
10 class CharRangeElement extends AlternativeElement {
11     String JavaDoc label;
12     protected char begin = 0;
13     protected char end = 0;
14     protected String JavaDoc beginText;
15     protected String JavaDoc endText;
16
17
18     public CharRangeElement(LexerGrammar g, Token t1, Token t2, int autoGenType) {
19         super(g);
20         begin = (char)ANTLRLexer.tokenTypeForCharLiteral(t1.getText());
21         beginText = t1.getText();
22         end = (char)ANTLRLexer.tokenTypeForCharLiteral(t2.getText());
23         endText = t2.getText();
24         line = t1.getLine();
25         // track which characters are referenced in the grammar
26
for (int i = begin; i <= end; i++) {
27             g.charVocabulary.add(i);
28         }
29         this.autoGenType = autoGenType;
30     }
31
32     public void generate() {
33         grammar.generator.gen(this);
34     }
35
36     public String JavaDoc getLabel() {
37         return label;
38     }
39
40     public Lookahead look(int k) {
41         return grammar.theLLkAnalyzer.look(k, this);
42     }
43
44     public void setLabel(String JavaDoc label_) {
45         label = label_;
46     }
47
48     public String JavaDoc toString() {
49         if (label != null)
50             return " " + label + ":" + beginText + ".." + endText;
51         else
52             return " " + beginText + ".." + endText;
53     }
54 }
55
Popular Tags