コード例 #1
0
ファイル: QueryParser.cs プロジェクト: mindis/Transformalize
 private void Jj_rescan_token()
 {
     jj_rescan = true;
     for (int i = 0; i < 1; i++)
     {
         try
         {
             JJCalls p = jj_2_rtns[i];
             do
             {
                 if (p.gen > jj_gen)
                 {
                     jj_la = p.arg;
                     jj_lastpos = jj_scanpos = p.first;
                     switch (i)
                     {
                         case 0:
                             Jj_3_1();
                             break;
                     }
                 }
                 p = p.next;
             } while (p != null);
         }
         catch (LookaheadSuccess)
         {
         }
     }
     jj_rescan = false;
 }
コード例 #2
0
		/// <summary> This constructor is used by the method "generateParseException"
		/// in the generated parser.  Calling this constructor generates
		/// a new object of this type with the fields "currentToken",
		/// "expectedTokenSequences", and "tokenImage" set.  The boolean
		/// flag "specialConstructor" is also set to true to indicate that
		/// this constructor was used to create this object.
		/// This constructor calls its super class with the empty string
		/// to force the "toString" method of parent class "Throwable" to
		/// print the error message in the form:
        /// ParseException: &lt;result of getMessage&gt;
		/// </summary>
		public ParseException(Token currentTokenVal, int[][] expectedTokenSequencesVal, System.String[] tokenImageVal):base("")
		{
			specialConstructor = true;
			currentToken = currentTokenVal;
			expectedTokenSequences = expectedTokenSequencesVal;
			tokenImage = tokenImageVal;
		}
コード例 #3
0
ファイル: QueryParser.cs プロジェクト: mindis/Transformalize
 /// <summary>Get the next Token. </summary>
 public Token GetNextToken()
 {
     if (token.next != null) token = token.next;
     else token = token.next = token_source.GetNextToken();
     jj_ntk = -1;
     jj_gen++;
     return token;
 }
コード例 #4
0
ファイル: QueryParser.cs プロジェクト: mindis/Transformalize
 private int Jj_ntk()
 {
     if ((jj_nt = token.next) == null)
         return (jj_ntk = (token.next = token_source.GetNextToken()).kind);
     else
         return (jj_ntk = jj_nt.kind);
 }
コード例 #5
0
ファイル: QueryParser.cs プロジェクト: mindis/Transformalize
 private bool jj_scan_token(int kind)
 {
     if (jj_scanpos == jj_lastpos)
     {
         jj_la--;
         if (jj_scanpos.next == null)
         {
             jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.GetNextToken();
         }
         else
         {
             jj_lastpos = jj_scanpos = jj_scanpos.next;
         }
     }
     else
     {
         jj_scanpos = jj_scanpos.next;
     }
     if (jj_rescan)
     {
         int i = 0;
         Token tok = token;
         while (tok != null && tok != jj_scanpos)
         {
             i++;
             tok = tok.next;
         }
         if (tok != null) Jj_add_error_token(kind, i);
     }
     if (jj_scanpos.kind != kind) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
     return false;
 }
コード例 #6
0
ファイル: QueryParser.cs プロジェクト: mindis/Transformalize
 private Token Jj_consume_token(int kind)
 {
     Token oldToken;
     if ((oldToken = token).next != null) token = token.next;
     else token = token.next = token_source.GetNextToken();
     jj_ntk = -1;
     if (token.kind == kind)
     {
         jj_gen++;
         if (++jj_gc > 100)
         {
             jj_gc = 0;
             for (int i = 0; i < jj_2_rtns.Length; i++)
             {
                 JJCalls c = jj_2_rtns[i];
                 while (c != null)
                 {
                     if (c.gen < jj_gen) c.first = null;
                     c = c.next;
                 }
             }
         }
         return token;
     }
     token = oldToken;
     jj_kind = kind;
     throw GenerateParseException();
 }
コード例 #7
0
ファイル: QueryParser.cs プロジェクト: mindis/Transformalize
 /// <summary>Reinitialise. </summary>
 public void ReInit(QueryParserTokenManager tm)
 {
     token_source = tm;
     token = new Token();
     jj_ntk = -1;
     jj_gen = 0;
     for (int i = 0; i < 23; i++) jj_la1[i] = -1;
     for (int i = 0; i < jj_2_rtns.Length; i++) jj_2_rtns[i] = new JJCalls();
 }
コード例 #8
0
ファイル: QueryParser.cs プロジェクト: mindis/Transformalize
 /// <summary>Reinitialise. </summary>
 public void ReInit(ICharStream stream)
 {
     token_source.ReInit(stream);
     token = new Token();
     jj_ntk = -1;
     jj_gen = 0;
     for (int i = 0; i < 23; i++) jj_la1[i] = -1;
     for (int i = 0; i < jj_2_rtns.Length; i++) jj_2_rtns[i] = new JJCalls();
 }
コード例 #9
0
ファイル: QueryParser.cs プロジェクト: mindis/Transformalize
 /// <summary>Constructor with user supplied CharStream. </summary>
 protected internal QueryParser(ICharStream stream)
 {
     token_source = new QueryParserTokenManager(stream);
     token = new Token();
     jj_ntk = -1;
     jj_gen = 0;
     for (int i = 0; i < 23; i++) jj_la1[i] = -1;
     for (int i = 0; i < jj_2_rtns.Length; i++) jj_2_rtns[i] = new JJCalls();
 }