示例#1
0
        private static ArgBodyTuple MakeArgBody(ref TokenReader reader)
        {
            System.Diagnostics.Debug.WriteLine("MakeArgBody");
            var token = reader.Get();

            if (token.Type != Token.TokenType.String && token.Type != Token.TokenType.Literal)
            {
                reader.PushError("不明な文字です: " + reader.LookAhead() + " (インデックス:" + reader.LookAhead().DebugIndex + ")" +
                                 "フィルタ引数は、単純な文字列かダブルクオートで括られた文字列のみが指定できます。");
            }
            var ret = new ArgBodyTuple()
            {
                Arg = token
            };

            AssertNextAny(ref reader, false, Token.TokenType.Comma, Token.TokenType.CloseBracket,
                          Token.TokenType.ConcatenatorAnd, Token.TokenType.ConcatenatorOr);
            return(ret);
        }
示例#2
0
 private static ArgBodyTuple MakeArgBody(ref TokenReader reader)
 {
     System.Diagnostics.Debug.WriteLine("MakeArgBody");
     var token = reader.Get();
     if (token.Type != Token.TokenType.String && token.Type != Token.TokenType.Literal)
     {
         reader.PushError("不明な文字です: " + reader.LookAhead() + " (インデックス:" + reader.LookAhead().DebugIndex + ")" +
         "フィルタ引数は、単純な文字列かダブルクオートで括られた文字列のみが指定できます。");
     }
     var ret = new ArgBodyTuple() { Arg = token };
     AssertNextAny(ref reader, false, Token.TokenType.Comma, Token.TokenType.CloseBracket,
         Token.TokenType.ConcatenatorAnd, Token.TokenType.ConcatenatorOr);
     return ret;
 }
示例#3
0
 private static ArgBodyTuple MakeArgBody(ref TokenReader reader)
 {
     var token = reader.Get();
     if (token.Type != Token.TokenType.String && token.Type != Token.TokenType.Literal)
     {
         throw new ArgumentException("引数が不正です。(@" + token.DebugIndex + ") " + token.ToString());
     }
     var abt = new ArgBodyTuple() { Argument = token };
     if (TryLookAhead(ref reader, Token.TokenType.Comma))
     {
         abt.ArgBody = MakeArgBody(ref reader);
     }
     return abt;
 }