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