Esempio n. 1
0
        /// <summary>
        ///     Parse requested query into Abstract Syntax Tree
        /// </summary>
        /// <param name="request">User defined request</param>
        /// <returns>Abstract syntax tree</returns>
        protected override RootScriptNode InstantiateRootNodeFromRequest(ConvertionRequest <TMethodsAggregator> request)
        {
            string[] formats;

            if (request.Formats == null || request.Formats.Length == 0)
            {
                formats = _defaultFormats;
            }
            else
            {
                formats = request.Formats;
            }

            var sourceTime      = TimeZoneInfo.ConvertTime(DateTimeOffset.Now, request.Source);
            var destinationTime = TimeZoneInfo.ConvertTime(sourceTime, request.Target);

            var preprocessor = new Preprocessor.Preprocessor(destinationTime, formats);
            var query        = preprocessor.Execute(request.Query);
            var lexer        = new Lexer(query, true);

            var parser = new RdlParser(lexer, formats, request.CultureInfo,
                                       new MethodDeclarationResolver(Metdatas), MethodOccurences);

            return(parser.ComposeRootComponents());
        }
Esempio n. 2
0
        private static RootScriptNode Parse(string query)
        {
            var lexer  = new Lexer(query, true);
            var parser = new RdlParser(lexer, new string[1]
            {
                "dd.M.yyyy"
            }, new System.Globalization.CultureInfo("en-US"), new DummyDeclarationResolver(), new Dictionary <string, int>());

            return(parser.ComposeRootComponents());
        }