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

编译器/解释器

开发平台:

Others

  1. package antlr;
  2. /*
  3.  * ANTLR-generated file resulting from grammar tokdef.g
  4.  * 
  5.  * Terence Parr, MageLang Institute
  6.  * ANTLR Version 2.7.0a2; 1989-1999
  7.  */
  8. import antlr.TokenStreamException;
  9. import antlr.TokenBuffer;
  10. import antlr.LLkParser;
  11. import antlr.Token;
  12. import antlr.TokenStream;
  13. import antlr.RecognitionException;
  14. import antlr.NoViableAltException;
  15. import antlr.MismatchedTokenException;
  16. import antlr.SemanticException;
  17. import antlr.ParserSharedInputState;
  18. import antlr.collections.impl.BitSet;
  19. public class ANTLRTokdefParser extends antlr.LLkParser
  20.    implements ANTLRTokdefParserTokenTypes
  21.  {
  22. public static final String[] _tokenNames = {
  23. "<0>",
  24. "EOF",
  25. "<2>",
  26. "NULL_TREE_LOOKAHEAD",
  27. "ID",
  28. "STRING",
  29. "ASSIGN",
  30. "LPAREN",
  31. "RPAREN",
  32. "INT",
  33. "WS",
  34. "SL_COMMENT",
  35. "ML_COMMENT",
  36. "ESC",
  37. "DIGIT",
  38. "XDIGIT",
  39. "VOCAB"
  40. };
  41. private static final long _tokenSet_0_data_[] = { 2L, 0L };
  42. public static final BitSet _tokenSet_0 = new BitSet(_tokenSet_0_data_);
  43. private static final long _tokenSet_1_data_[] = { 50L, 0L };
  44. public static final BitSet _tokenSet_1 = new BitSet(_tokenSet_1_data_);
  45. public ANTLRTokdefParser(ParserSharedInputState state) {
  46.   super(state,3);
  47.   tokenNames = _tokenNames;
  48. }
  49. public ANTLRTokdefParser(TokenBuffer tokenBuf) {
  50.   this(tokenBuf,3);
  51. }
  52. protected ANTLRTokdefParser(TokenBuffer tokenBuf, int k) {
  53.   super(tokenBuf,k);
  54.   tokenNames = _tokenNames;
  55. }
  56. public ANTLRTokdefParser(TokenStream lexer) {
  57.   this(lexer,3);
  58. }
  59. protected ANTLRTokdefParser(TokenStream lexer, int k) {
  60.   super(lexer,k);
  61.   tokenNames = _tokenNames;
  62. }
  63. public final void file(
  64. ImportVocabTokenManager tm
  65. ) throws RecognitionException, TokenStreamException {
  66. Token  name = null;
  67. try {      // for error handling
  68. name = LT(1);
  69. match(ID);
  70. {
  71. _loop3:
  72. do {
  73. if ((LA(1)==ID||LA(1)==STRING)) {
  74. line(tm);
  75. }
  76. else {
  77. break _loop3;
  78. }
  79. } while (true);
  80. }
  81. }
  82. catch (RecognitionException ex) {
  83. reportError(ex);
  84. consume();
  85. consumeUntil(_tokenSet_0);
  86. }
  87. }
  88. public final void line(
  89. ImportVocabTokenManager tm
  90. ) throws RecognitionException, TokenStreamException {
  91. Token  s1 = null;
  92. Token  lab = null;
  93. Token  s2 = null;
  94. Token  id = null;
  95. Token  para = null;
  96. Token  id2 = null;
  97. Token  i = null;
  98. Token t=null; Token s=null;
  99. try {      // for error handling
  100. {
  101. if ((LA(1)==STRING)) {
  102. s1 = LT(1);
  103. match(STRING);
  104. s = s1;
  105. }
  106. else if ((LA(1)==ID) && (LA(2)==ASSIGN) && (LA(3)==STRING)) {
  107. lab = LT(1);
  108. match(ID);
  109. t = lab;
  110. match(ASSIGN);
  111. s2 = LT(1);
  112. match(STRING);
  113. s = s2;
  114. }
  115. else if ((LA(1)==ID) && (LA(2)==LPAREN)) {
  116. id = LT(1);
  117. match(ID);
  118. t=id;
  119. match(LPAREN);
  120. para = LT(1);
  121. match(STRING);
  122. match(RPAREN);
  123. }
  124. else if ((LA(1)==ID) && (LA(2)==ASSIGN) && (LA(3)==INT)) {
  125. id2 = LT(1);
  126. match(ID);
  127. t=id2;
  128. }
  129. else {
  130. throw new NoViableAltException(LT(1), getFilename());
  131. }
  132. }
  133. match(ASSIGN);
  134. i = LT(1);
  135. match(INT);
  136. Integer value = Integer.valueOf(i.getText());
  137. // if literal found, define as a string literal
  138. if ( s!=null ) {
  139. tm.define(s.getText(), value.intValue());
  140. // if label, then label the string and map label to token symbol also
  141. if ( t!=null ) {
  142. StringLiteralSymbol sl =
  143. (StringLiteralSymbol) tm.getTokenSymbol(s.getText());
  144. sl.setLabel(t.getText());
  145. tm.mapToTokenSymbol(t.getText(), sl);
  146. }
  147. }
  148. // define token (not a literal)
  149. else if ( t!=null ) {
  150. tm.define(t.getText(), value.intValue());
  151. if ( para!=null ) {
  152. TokenSymbol ts = tm.getTokenSymbol(t.getText());
  153. ts.setParaphrase(
  154. para.getText()
  155. );
  156. }
  157. }
  158. }
  159. catch (RecognitionException ex) {
  160. reportError(ex);
  161. consume();
  162. consumeUntil(_tokenSet_1);
  163. }
  164. }
  165. }