BlockContext.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/BlockContext.java#1 $
  7.  */
  8. /**BlockContext stores the information needed when creating an
  9.  * alternative (list of elements).  Entering a subrule requires
  10.  * that we save this state as each block of alternatives
  11.  * requires state such as "tail of current alternative."
  12.  */
  13. class BlockContext {
  14. AlternativeBlock block; // current block of alternatives
  15. int altNum; // which alt are we accepting 0..n-1
  16. BlockEndElement blockEnd; // used if nested
  17. public void addAlternativeElement(AlternativeElement e) {
  18. currentAlt().addElement(e);
  19. }
  20. public Alternative currentAlt() {
  21. return (Alternative)block.alternatives.elementAt(altNum);
  22. }
  23. public AlternativeElement currentElement() {
  24. return currentAlt().tail;
  25. }
  26. }