예제 #1
0
        static SyntaxTuple MakeTuples(IEnumerable <Token> tokens)
        {
            var       reader = new TokenReader(tokens);
            RootTuple roots  = null;

            try
            {
                roots = MakeRoot(ref reader);
            }
            catch (ArgumentException e)
            {
                throw new ArgumentException(e.Message + Environment.NewLine +
                                            "他のエラー:" + String.Join(Environment.NewLine, reader.Errors()), e);
            }
            if (reader.IsContainErrors)
            {
                throw new ArgumentException("シンタックス エラー:" + String.Join(Environment.NewLine, reader.Errors()));
            }
            if (reader.IsRemainToken)
            {
                throw new ArgumentException("閉じ括弧が多すぎる可能性があります。(クエリは途中で解析を完了しました) (next:@" + reader.Get().DebugIndex + ")");
            }
            return(roots);
        }
예제 #2
0
 static SyntaxTuple MakeTuples(IEnumerable<Token> tokens)
 {
     var reader = new TokenReader(tokens);
     RootTuple roots = null;
     try
     {
         roots = MakeRoot(ref reader);
     }
     catch (ArgumentException e)
     {
         throw new ArgumentException(e.Message + Environment.NewLine +
             "他のエラー:" + String.Join(Environment.NewLine, reader.Errors()), e);
     }
     if (reader.IsContainErrors)
     {
         throw new ArgumentException("シンタックス エラー:" + String.Join(Environment.NewLine, reader.Errors()));
     }
     if (reader.IsRemainToken)
     {
         throw new ArgumentException("閉じ括弧が多すぎる可能性があります。(クエリは途中で解析を完了しました) (next:@" + reader.Get().DebugIndex + ")");
     }
     return roots;
 }