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); }
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; }
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; }