CharRangeElement.java
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. package antlr;
  2. /* ANTLR Translator Generator
  3.  * Project led by Terence Parr at http://www.jGuru.com
  4.  * Software rights: http://www.antlr.org/RIGHTS.html
  5.  *
  6.  * $Id: //depot/code/org.antlr/release/antlr-2.7.0/antlr/CharRangeElement.java#1 $
  7.  */
  8. class CharRangeElement extends AlternativeElement {
  9. String label;
  10. protected char begin=0;
  11. protected char end  =0;
  12. protected String beginText;
  13. protected String endText;
  14. public CharRangeElement(LexerGrammar g, Token t1, Token t2, int autoGenType) {
  15. super(g);
  16. begin = (char)ANTLRLexer.tokenTypeForCharLiteral(t1.getText());
  17. beginText = t1.getText();
  18. end   = (char)ANTLRLexer.tokenTypeForCharLiteral(t2.getText());
  19. endText = t2.getText();
  20. line = t1.getLine();
  21. // track which characters are referenced in the grammar
  22. for (int i=begin; i<=end; i++) {
  23. g.charVocabulary.add(i);
  24. }
  25. this.autoGenType = autoGenType;
  26. }
  27. public void generate() {
  28. grammar.generator.gen(this);
  29. }
  30. public String getLabel() {
  31. return label;
  32. }
  33. public Lookahead look(int k) {
  34. return grammar.theLLkAnalyzer.look(k, this);
  35. }
  36. public void setLabel(String label_) { 
  37. label = label_; 
  38. }
  39. public String toString() {
  40. if ( label!=null ) return " "+label+":"+beginText+".."+endText;
  41. else return " "+beginText+".."+endText;
  42. }
  43. }