/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ 'use strict'; export var conf = { comments: { lineComment: '//', blockComment: ['/*', '*/'], }, brackets: [['[', ']'], ['(', ')'], ['{', '}']], autoClosingPairs: [ { open: '"', close: '"', notIn: ['string', 'comment', 'identifier'] }, { open: '[', close: ']', notIn: ['string', 'comment', 'identifier'] }, { open: '(', close: ')', notIn: ['string', 'comment', 'identifier'] }, { open: '{', close: '}', notIn: ['string', 'comment', 'identifier'] }, ] }; export var language = { defaultToken: '', tokenPostfix: '.pq', ignoreCase: false, brackets: [ { open: '[', close: ']', token: 'delimiter.square' }, { open: '{', close: '}', token: 'delimiter.brackets' }, { open: '(', close: ')', token: 'delimiter.parenthesis' } ], operatorKeywords: [ "and", "not", "or" ], keywords: [ "as", "each", "else", "error", "false", "if", "in", "is", "let", "meta", "otherwise", "section", "shared", "then", "true", "try", "type" ], constructors: [ "#binary", "#date", "#datetime", "#datetimezone", "#duration", "#table", "#time" ], constants: [ "#infinity", "#nan", "#sections", "#shared" ], typeKeywords: [ "action", "any", "anynonnull", "none", "null", "logical", "number", "time", "date", "datetime", "datetimezone", "duration", "text", "binary", "list", "record", "table", "function" ], builtinFunctions: [ "Access.Database", "Action.Return", "Action.Sequence", "Action.Try", "ActiveDirectory.Domains", "AdoDotNet.DataSource", "AdoDotNet.Query", "AdobeAnalytics.Cubes", "AnalysisServices.Database", "AnalysisServices.Databases", "AzureStorage.BlobContents", "AzureStorage.Blobs", "AzureStorage.Tables", "Binary.Buffer", "Binary.Combine", "Binary.Compress", "Binary.Decompress", "Binary.End", "Binary.From", "Binary.FromList", "Binary.FromText", "Binary.InferContentType", "Binary.Length", "Binary.ToList", "Binary.ToText", "BinaryFormat.7BitEncodedSignedInteger", "BinaryFormat.7BitEncodedUnsignedInteger", "BinaryFormat.Binary", "BinaryFormat.Byte", "BinaryFormat.ByteOrder", "BinaryFormat.Choice", "BinaryFormat.Decimal", "BinaryFormat.Double", "BinaryFormat.Group", "BinaryFormat.Length", "BinaryFormat.List", "BinaryFormat.Null", "BinaryFormat.Record", "BinaryFormat.SignedInteger16", "BinaryFormat.SignedInteger32", "BinaryFormat.SignedInteger64", "BinaryFormat.Single", "BinaryFormat.Text", "BinaryFormat.Transform", "BinaryFormat.UnsignedInteger16", "BinaryFormat.UnsignedInteger32", "BinaryFormat.UnsignedInteger64", "Byte.From", "Character.FromNumber", "Character.ToNumber", "Combiner.CombineTextByDelimiter", "Combiner.CombineTextByEachDelimiter", "Combiner.CombineTextByLengths", "Combiner.CombineTextByPositions", "Combiner.CombineTextByRanges", "Comparer.Equals", "Comparer.FromCulture", "Comparer.Ordinal", "Comparer.OrdinalIgnoreCase", "Csv.Document", "Cube.AddAndExpandDimensionColumn", "Cube.AddMeasureColumn", "Cube.ApplyParameter", "Cube.AttributeMemberId", "Cube.AttributeMemberProperty", "Cube.CollapseAndRemoveColumns", "Cube.Dimensions", "Cube.DisplayFolders", "Cube.Measures", "Cube.Parameters", "Cube.Properties", "Cube.PropertyKey", "Cube.ReplaceDimensions", "Cube.Transform", "Currency.From", "DB2.Database", "Date.AddDays", "Date.AddMonths", "Date.AddQuarters", "Date.AddWeeks", "Date.AddYears", "Date.Day", "Date.DayOfWeek", "Date.DayOfWeekName", "Date.DayOfYear", "Date.DaysInMonth", "Date.EndOfDay", "Date.EndOfMonth", "Date.EndOfQuarter", "Date.EndOfWeek", "Date.EndOfYear", "Date.From", "Date.FromText", "Date.IsInCurrentDay", "Date.IsInCurrentMonth", "Date.IsInCurrentQuarter", "Date.IsInCurrentWeek", "Date.IsInCurrentYear", "Date.IsInNextDay", "Date.IsInNextMonth", "Date.IsInNextNDays", "Date.IsInNextNMonths", "Date.IsInNextNQuarters", "Date.IsInNextNWeeks", "Date.IsInNextNYears", "Date.IsInNextQuarter", "Date.IsInNextWeek", "Date.IsInNextYear", "Date.IsInPreviousDay", "Date.IsInPreviousMonth", "Date.IsInPreviousNDays", "Date.IsInPreviousNMonths", "Date.IsInPreviousNQuarters", "Date.IsInPreviousNWeeks", "Date.IsInPreviousNYears", "Date.IsInPreviousQuarter", "Date.IsInPreviousWeek", "Date.IsInPreviousYear", "Date.IsInYearToDate", "Date.IsLeapYear", "Date.Month", "Date.MonthName", "Date.QuarterOfYear", "Date.StartOfDay", "Date.StartOfMonth", "Date.StartOfQuarter", "Date.StartOfWeek", "Date.StartOfYear", "Date.ToRecord", "Date.ToText", "Date.WeekOfMonth", "Date.WeekOfYear", "Date.Year", "DateTime.AddZone", "DateTime.Date", "DateTime.FixedLocalNow", "DateTime.From", "DateTime.FromFileTime", "DateTime.FromText", "DateTime.IsInCurrentHour", "DateTime.IsInCurrentMinute", "DateTime.IsInCurrentSecond", "DateTime.IsInNextHour", "DateTime.IsInNextMinute", "DateTime.IsInNextNHours", "DateTime.IsInNextNMinutes", "DateTime.IsInNextNSeconds", "DateTime.IsInNextSecond", "DateTime.IsInPreviousHour", "DateTime.IsInPreviousMinute", "DateTime.IsInPreviousNHours", "DateTime.IsInPreviousNMinutes", "DateTime.IsInPreviousNSeconds", "DateTime.IsInPreviousSecond", "DateTime.LocalNow", "DateTime.Time", "DateTime.ToRecord", "DateTime.ToText", "DateTimeZone.FixedLocalNow", "DateTimeZone.FixedUtcNow", "DateTimeZone.From", "DateTimeZone.FromFileTime", "DateTimeZone.FromText", "DateTimeZone.LocalNow", "DateTimeZone.RemoveZone", "DateTimeZone.SwitchZone", "DateTimeZone.ToLocal", "DateTimeZone.ToRecord", "DateTimeZone.ToText", "DateTimeZone.ToUtc", "DateTimeZone.UtcNow", "DateTimeZone.ZoneHours", "DateTimeZone.ZoneMinutes", "Decimal.From", "Diagnostics.ActivityId", "Diagnostics.Trace", "DirectQueryCapabilities.From", "Double.From", "Duration.Days", "Duration.From", "Duration.FromText", "Duration.Hours", "Duration.Minutes", "Duration.Seconds", "Duration.ToRecord", "Duration.ToText", "Duration.TotalDays", "Duration.TotalHours", "Duration.TotalMinutes", "Duration.TotalSeconds", "Embedded.Value", "Error.Record", "Excel.CurrentWorkbook", "Excel.Workbook", "Exchange.Contents", "Expression.Constant", "Expression.Evaluate", "Expression.Identifier", "Facebook.Graph", "File.Contents", "Folder.Contents", "Folder.Files", "Function.From", "Function.Invoke", "Function.InvokeAfter", "Function.IsDataSource", "GoogleAnalytics.Accounts", "Guid.From", "HdInsight.Containers", "HdInsight.Contents", "HdInsight.Files", "Hdfs.Contents", "Hdfs.Files", "Informix.Database", "Int16.From", "Int32.From", "Int64.From", "Int8.From", "ItemExpression.From", "Json.Document", "Json.FromValue", "Lines.FromBinary", "Lines.FromText", "Lines.ToBinary", "Lines.ToText", "List.Accumulate", "List.AllTrue", "List.Alternate", "List.AnyTrue", "List.Average", "List.Buffer", "List.Combine", "List.Contains", "List.ContainsAll", "List.ContainsAny", "List.Count", "List.Covariance", "List.DateTimeZones", "List.DateTimes", "List.Dates", "List.Difference", "List.Distinct", "List.Durations", "List.FindText", "List.First", "List.FirstN", "List.Generate", "List.InsertRange", "List.Intersect", "List.IsDistinct", "List.IsEmpty", "List.Last", "List.LastN", "List.MatchesAll", "List.MatchesAny", "List.Max", "List.MaxN", "List.Median", "List.Min", "List.MinN", "List.Mode", "List.Modes", "List.NonNullCount", "List.Numbers", "List.PositionOf", "List.PositionOfAny", "List.Positions", "List.Product", "List.Random", "List.Range", "List.RemoveFirstN", "List.RemoveItems", "List.RemoveLastN", "List.RemoveMatchingItems", "List.RemoveNulls", "List.RemoveRange", "List.Repeat", "List.ReplaceMatchingItems", "List.ReplaceRange", "List.ReplaceValue", "List.Reverse", "List.Select", "List.Single", "List.SingleOrDefault", "List.Skip", "List.Sort", "List.StandardDeviation", "List.Sum", "List.Times", "List.Transform", "List.TransformMany", "List.Union", "List.Zip", "Logical.From", "Logical.FromText", "Logical.ToText", "MQ.Queue", "MySQL.Database", "Number.Abs", "Number.Acos", "Number.Asin", "Number.Atan", "Number.Atan2", "Number.BitwiseAnd", "Number.BitwiseNot", "Number.BitwiseOr", "Number.BitwiseShiftLeft", "Number.BitwiseShiftRight", "Number.BitwiseXor", "Number.Combinations", "Number.Cos", "Number.Cosh", "Number.Exp", "Number.Factorial", "Number.From", "Number.FromText", "Number.IntegerDivide", "Number.IsEven", "Number.IsNaN", "Number.IsOdd", "Number.Ln", "Number.Log", "Number.Log10", "Number.Mod", "Number.Permutations", "Number.Power", "Number.Random", "Number.RandomBetween", "Number.Round", "Number.RoundAwayFromZero", "Number.RoundDown", "Number.RoundTowardZero", "Number.RoundUp", "Number.Sign", "Number.Sin", "Number.Sinh", "Number.Sqrt", "Number.Tan", "Number.Tanh", "Number.ToText", "OData.Feed", "Odbc.DataSource", "Odbc.Query", "OleDb.DataSource", "OleDb.Query", "Oracle.Database", "Percentage.From", "PostgreSQL.Database", "RData.FromBinary", "Record.AddField", "Record.Combine", "Record.Field", "Record.FieldCount", "Record.FieldNames", "Record.FieldOrDefault", "Record.FieldValues", "Record.FromList", "Record.FromTable", "Record.HasFields", "Record.RemoveFields", "Record.RenameFields", "Record.ReorderFields", "Record.SelectFields", "Record.ToList", "Record.ToTable", "Record.TransformFields", "Replacer.ReplaceText", "Replacer.ReplaceValue", "RowExpression.Column", "RowExpression.From", "Salesforce.Data", "Salesforce.Reports", "SapBusinessWarehouse.Cubes", "SapHana.Database", "SharePoint.Contents", "SharePoint.Files", "SharePoint.Tables", "Single.From", "Soda.Feed", "Splitter.SplitByNothing", "Splitter.SplitTextByAnyDelimiter", "Splitter.SplitTextByDelimiter", "Splitter.SplitTextByEachDelimiter", "Splitter.SplitTextByLengths", "Splitter.SplitTextByPositions", "Splitter.SplitTextByRanges", "Splitter.SplitTextByRepeatedLengths", "Splitter.SplitTextByWhitespace", "Sql.Database", "Sql.Databases", "SqlExpression.SchemaFrom", "SqlExpression.ToExpression", "Sybase.Database", "Table.AddColumn", "Table.AddIndexColumn", "Table.AddJoinColumn", "Table.AddKey", "Table.AggregateTableColumn", "Table.AlternateRows", "Table.Buffer", "Table.Column", "Table.ColumnCount", "Table.ColumnNames", "Table.ColumnsOfType", "Table.Combine", "Table.CombineColumns", "Table.Contains", "Table.ContainsAll", "Table.ContainsAny", "Table.DemoteHeaders", "Table.Distinct", "Table.DuplicateColumn", "Table.ExpandListColumn", "Table.ExpandRecordColumn", "Table.ExpandTableColumn", "Table.FillDown", "Table.FillUp", "Table.FilterWithDataTable", "Table.FindText", "Table.First", "Table.FirstN", "Table.FirstValue", "Table.FromColumns", "Table.FromList", "Table.FromPartitions", "Table.FromRecords", "Table.FromRows", "Table.FromValue", "Table.Group", "Table.HasColumns", "Table.InsertRows", "Table.IsDistinct", "Table.IsEmpty", "Table.Join", "Table.Keys", "Table.Last", "Table.LastN", "Table.MatchesAllRows", "Table.MatchesAnyRows", "Table.Max", "Table.MaxN", "Table.Min", "Table.MinN", "Table.NestedJoin", "Table.Partition", "Table.PartitionValues", "Table.Pivot", "Table.PositionOf", "Table.PositionOfAny", "Table.PrefixColumns", "Table.Profile", "Table.PromoteHeaders", "Table.Range", "Table.RemoveColumns", "Table.RemoveFirstN", "Table.RemoveLastN", "Table.RemoveMatchingRows", "Table.RemoveRows", "Table.RemoveRowsWithErrors", "Table.RenameColumns", "Table.ReorderColumns", "Table.Repeat", "Table.ReplaceErrorValues", "Table.ReplaceKeys", "Table.ReplaceMatchingRows", "Table.ReplaceRelationshipIdentity", "Table.ReplaceRows", "Table.ReplaceValue", "Table.ReverseRows", "Table.RowCount", "Table.Schema", "Table.SelectColumns", "Table.SelectRows", "Table.SelectRowsWithErrors", "Table.SingleRow", "Table.Skip", "Table.Sort", "Table.SplitColumn", "Table.ToColumns", "Table.ToList", "Table.ToRecords", "Table.ToRows", "Table.TransformColumnNames", "Table.TransformColumnTypes", "Table.TransformColumns", "Table.TransformRows", "Table.Transpose", "Table.Unpivot", "Table.UnpivotOtherColumns", "Table.View", "Table.ViewFunction", "TableAction.DeleteRows", "TableAction.InsertRows", "TableAction.UpdateRows", "Tables.GetRelationships", "Teradata.Database", "Text.AfterDelimiter", "Text.At", "Text.BeforeDelimiter", "Text.BetweenDelimiters", "Text.Clean", "Text.Combine", "Text.Contains", "Text.End", "Text.EndsWith", "Text.Format", "Text.From", "Text.FromBinary", "Text.Insert", "Text.Length", "Text.Lower", "Text.Middle", "Text.NewGuid", "Text.PadEnd", "Text.PadStart", "Text.PositionOf", "Text.PositionOfAny", "Text.Proper", "Text.Range", "Text.Remove", "Text.RemoveRange", "Text.Repeat", "Text.Replace", "Text.ReplaceRange", "Text.Select", "Text.Split", "Text.SplitAny", "Text.Start", "Text.StartsWith", "Text.ToBinary", "Text.ToList", "Text.Trim", "Text.TrimEnd", "Text.TrimStart", "Text.Upper", "Time.EndOfHour", "Time.From", "Time.FromText", "Time.Hour", "Time.Minute", "Time.Second", "Time.StartOfHour", "Time.ToRecord", "Time.ToText", "Type.AddTableKey", "Type.ClosedRecord", "Type.Facets", "Type.ForFunction", "Type.ForRecord", "Type.FunctionParameters", "Type.FunctionRequiredParameters", "Type.FunctionReturn", "Type.Is", "Type.IsNullable", "Type.IsOpenRecord", "Type.ListItem", "Type.NonNullable", "Type.OpenRecord", "Type.RecordFields", "Type.ReplaceFacets", "Type.ReplaceTableKeys", "Type.TableColumn", "Type.TableKeys", "Type.TableRow", "Type.TableSchema", "Type.Union", "Uri.BuildQueryString", "Uri.Combine", "Uri.EscapeDataString", "Uri.Parts", "Value.Add", "Value.As", "Value.Compare", "Value.Divide", "Value.Equals", "Value.Firewall", "Value.FromText", "Value.Is", "Value.Metadata", "Value.Multiply", "Value.NativeQuery", "Value.NullableEquals", "Value.RemoveMetadata", "Value.ReplaceMetadata", "Value.ReplaceType", "Value.Subtract", "Value.Type", "ValueAction.NativeStatement", "ValueAction.Replace", "Variable.Value", "Web.Contents", "Web.Page", "WebAction.Request", "Xml.Document", "Xml.Tables" ], builtinConstants: [ "BinaryEncoding.Base64", "BinaryEncoding.Hex", "BinaryOccurrence.Optional", "BinaryOccurrence.Repeating", "BinaryOccurrence.Required", "ByteOrder.BigEndian", "ByteOrder.LittleEndian", "Compression.Deflate", "Compression.GZip", "CsvStyle.QuoteAfterDelimiter", "CsvStyle.QuoteAlways", "Culture.Current", "Day.Friday", "Day.Monday", "Day.Saturday", "Day.Sunday", "Day.Thursday", "Day.Tuesday", "Day.Wednesday", "ExtraValues.Error", "ExtraValues.Ignore", "ExtraValues.List", "GroupKind.Global", "GroupKind.Local", "JoinAlgorithm.Dynamic", "JoinAlgorithm.LeftHash", "JoinAlgorithm.LeftIndex", "JoinAlgorithm.PairwiseHash", "JoinAlgorithm.RightHash", "JoinAlgorithm.RightIndex", "JoinAlgorithm.SortMerge", "JoinKind.FullOuter", "JoinKind.Inner", "JoinKind.LeftAnti", "JoinKind.LeftOuter", "JoinKind.RightAnti", "JoinKind.RightOuter", "JoinSide.Left", "JoinSide.Right", "MissingField.Error", "MissingField.Ignore", "MissingField.UseNull", "Number.E", "Number.Epsilon", "Number.NaN", "Number.NegativeInfinity", "Number.PI", "Number.PositiveInfinity", "Occurrence.All", "Occurrence.First", "Occurrence.Last", "Occurrence.Optional", "Occurrence.Repeating", "Occurrence.Required", "Order.Ascending", "Order.Descending", "Precision.Decimal", "Precision.Double", "QuoteStyle.Csv", "QuoteStyle.None", "RelativePosition.FromEnd", "RelativePosition.FromStart", "RoundingMode.AwayFromZero", "RoundingMode.Down", "RoundingMode.ToEven", "RoundingMode.TowardZero", "RoundingMode.Up", "SapHanaDistribution.All", "SapHanaDistribution.Connection", "SapHanaDistribution.Off", "SapHanaDistribution.Statement", "SapHanaRangeOperator.Equals", "SapHanaRangeOperator.GreaterThan", "SapHanaRangeOperator.GreaterThanOrEquals", "SapHanaRangeOperator.LessThan", "SapHanaRangeOperator.LessThanOrEquals", "SapHanaRangeOperator.NotEquals", "TextEncoding.Ascii", "TextEncoding.BigEndianUnicode", "TextEncoding.Unicode", "TextEncoding.Utf16", "TextEncoding.Utf8", "TextEncoding.Windows", "TraceLevel.Critical", "TraceLevel.Error", "TraceLevel.Information", "TraceLevel.Verbose", "TraceLevel.Warning", "WebMethod.Delete", "WebMethod.Get", "WebMethod.Head", "WebMethod.Patch", "WebMethod.Post", "WebMethod.Put" ], builtinTypes: [ "Action.Type", "Any.Type", "Binary.Type", "BinaryEncoding.Type", "BinaryOccurrence.Type", "Byte.Type", "ByteOrder.Type", "Character.Type", "Compression.Type", "CsvStyle.Type", "Currency.Type", "Date.Type", "DateTime.Type", "DateTimeZone.Type", "Day.Type", "Decimal.Type", "Double.Type", "Duration.Type", "ExtraValues.Type", "Function.Type", "GroupKind.Type", "Guid.Type", "Int16.Type", "Int32.Type", "Int64.Type", "Int8.Type", "JoinAlgorithm.Type", "JoinKind.Type", "JoinSide.Type", "List.Type", "Logical.Type", "MissingField.Type", "None.Type", "Null.Type", "Number.Type", "Occurrence.Type", "Order.Type", "Password.Type", "Percentage.Type", "Precision.Type", "QuoteStyle.Type", "Record.Type", "RelativePosition.Type", "RoundingMode.Type", "SapHanaDistribution.Type", "SapHanaRangeOperator.Type", "Single.Type", "Table.Type", "Text.Type", "TextEncoding.Type", "Time.Type", "TraceLevel.Type", "Type.Type", "Uri.Type", "WebMethod.Type" ], tokenizer: { root: [ // quoted identifier [/#"[\w \.]+"/, "identifier.quote"], // numbers [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], [/0[xX][0-9a-fA-F]+/, "number.hex"], [/\d+([eE][\-+]?\d+)?/, "number"], // keywords [/(#?[a-z]+)\b/, { cases: { "@typeKeywords": "type", "@keywords": "keyword", "@constants": "constant", "@constructors": "constructor", "@operatorKeywords": "operators", "@default": "identifier" } } ], // built-in types [/\b([A-Z][a-zA-Z0-9]+\.Type)\b/, { cases: { "@builtinTypes": "type", "@default": "identifier" } } ], // other built-ins [/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/, { cases: { "@builtinFunctions": "keyword.function", "@builtinConstants": "constant", "@default": "identifier" } } ], // other identifiers [/\b([a-zA-Z_][\w\.]*)\b/, "identifier"], { include: "@whitespace" }, { include: "@comments" }, { include: "@strings" }, [/[{}()\[\]]/, "@brackets"], [/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/, "operators"], [/[,;]/, "delimiter"], ], whitespace: [ [/\s+/, "white"] ], comments: [ ["\\/\\*", "comment", "@comment"], ["\\/\\/+.*", "comment"] ], comment: [ ["\\*\\/", "comment", "@pop"], [".", "comment"] ], strings: [ ["\"", "string", "@string"] ], string: [ ["\"\"", "string.escape"], ["\"", "string", "@pop"], [".", "string"] ] } };