powerquery.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. define(["require", "exports"], function (require, exports) {
  6. 'use strict';
  7. Object.defineProperty(exports, "__esModule", { value: true });
  8. exports.conf = {
  9. comments: {
  10. lineComment: '//',
  11. blockComment: ['/*', '*/'],
  12. },
  13. brackets: [['[', ']'], ['(', ')'], ['{', '}']],
  14. autoClosingPairs: [
  15. { open: '"', close: '"', notIn: ['string', 'comment', 'identifier'] },
  16. { open: '[', close: ']', notIn: ['string', 'comment', 'identifier'] },
  17. { open: '(', close: ')', notIn: ['string', 'comment', 'identifier'] },
  18. { open: '{', close: '}', notIn: ['string', 'comment', 'identifier'] },
  19. ]
  20. };
  21. exports.language = {
  22. defaultToken: '',
  23. tokenPostfix: '.pq',
  24. ignoreCase: false,
  25. brackets: [
  26. { open: '[', close: ']', token: 'delimiter.square' },
  27. { open: '{', close: '}', token: 'delimiter.brackets' },
  28. { open: '(', close: ')', token: 'delimiter.parenthesis' }
  29. ],
  30. operatorKeywords: [
  31. "and",
  32. "not",
  33. "or"
  34. ],
  35. keywords: [
  36. "as",
  37. "each",
  38. "else",
  39. "error",
  40. "false",
  41. "if",
  42. "in",
  43. "is",
  44. "let",
  45. "meta",
  46. "otherwise",
  47. "section",
  48. "shared",
  49. "then",
  50. "true",
  51. "try",
  52. "type"
  53. ],
  54. constructors: [
  55. "#binary",
  56. "#date",
  57. "#datetime",
  58. "#datetimezone",
  59. "#duration",
  60. "#table",
  61. "#time"
  62. ],
  63. constants: [
  64. "#infinity",
  65. "#nan",
  66. "#sections",
  67. "#shared"
  68. ],
  69. typeKeywords: [
  70. "action",
  71. "any",
  72. "anynonnull",
  73. "none",
  74. "null",
  75. "logical",
  76. "number",
  77. "time",
  78. "date",
  79. "datetime",
  80. "datetimezone",
  81. "duration",
  82. "text",
  83. "binary",
  84. "list",
  85. "record",
  86. "table",
  87. "function"
  88. ],
  89. builtinFunctions: [
  90. "Access.Database",
  91. "Action.Return",
  92. "Action.Sequence",
  93. "Action.Try",
  94. "ActiveDirectory.Domains",
  95. "AdoDotNet.DataSource",
  96. "AdoDotNet.Query",
  97. "AdobeAnalytics.Cubes",
  98. "AnalysisServices.Database",
  99. "AnalysisServices.Databases",
  100. "AzureStorage.BlobContents",
  101. "AzureStorage.Blobs",
  102. "AzureStorage.Tables",
  103. "Binary.Buffer",
  104. "Binary.Combine",
  105. "Binary.Compress",
  106. "Binary.Decompress",
  107. "Binary.End",
  108. "Binary.From",
  109. "Binary.FromList",
  110. "Binary.FromText",
  111. "Binary.InferContentType",
  112. "Binary.Length",
  113. "Binary.ToList",
  114. "Binary.ToText",
  115. "BinaryFormat.7BitEncodedSignedInteger",
  116. "BinaryFormat.7BitEncodedUnsignedInteger",
  117. "BinaryFormat.Binary",
  118. "BinaryFormat.Byte",
  119. "BinaryFormat.ByteOrder",
  120. "BinaryFormat.Choice",
  121. "BinaryFormat.Decimal",
  122. "BinaryFormat.Double",
  123. "BinaryFormat.Group",
  124. "BinaryFormat.Length",
  125. "BinaryFormat.List",
  126. "BinaryFormat.Null",
  127. "BinaryFormat.Record",
  128. "BinaryFormat.SignedInteger16",
  129. "BinaryFormat.SignedInteger32",
  130. "BinaryFormat.SignedInteger64",
  131. "BinaryFormat.Single",
  132. "BinaryFormat.Text",
  133. "BinaryFormat.Transform",
  134. "BinaryFormat.UnsignedInteger16",
  135. "BinaryFormat.UnsignedInteger32",
  136. "BinaryFormat.UnsignedInteger64",
  137. "Byte.From",
  138. "Character.FromNumber",
  139. "Character.ToNumber",
  140. "Combiner.CombineTextByDelimiter",
  141. "Combiner.CombineTextByEachDelimiter",
  142. "Combiner.CombineTextByLengths",
  143. "Combiner.CombineTextByPositions",
  144. "Combiner.CombineTextByRanges",
  145. "Comparer.Equals",
  146. "Comparer.FromCulture",
  147. "Comparer.Ordinal",
  148. "Comparer.OrdinalIgnoreCase",
  149. "Csv.Document",
  150. "Cube.AddAndExpandDimensionColumn",
  151. "Cube.AddMeasureColumn",
  152. "Cube.ApplyParameter",
  153. "Cube.AttributeMemberId",
  154. "Cube.AttributeMemberProperty",
  155. "Cube.CollapseAndRemoveColumns",
  156. "Cube.Dimensions",
  157. "Cube.DisplayFolders",
  158. "Cube.Measures",
  159. "Cube.Parameters",
  160. "Cube.Properties",
  161. "Cube.PropertyKey",
  162. "Cube.ReplaceDimensions",
  163. "Cube.Transform",
  164. "Currency.From",
  165. "DB2.Database",
  166. "Date.AddDays",
  167. "Date.AddMonths",
  168. "Date.AddQuarters",
  169. "Date.AddWeeks",
  170. "Date.AddYears",
  171. "Date.Day",
  172. "Date.DayOfWeek",
  173. "Date.DayOfWeekName",
  174. "Date.DayOfYear",
  175. "Date.DaysInMonth",
  176. "Date.EndOfDay",
  177. "Date.EndOfMonth",
  178. "Date.EndOfQuarter",
  179. "Date.EndOfWeek",
  180. "Date.EndOfYear",
  181. "Date.From",
  182. "Date.FromText",
  183. "Date.IsInCurrentDay",
  184. "Date.IsInCurrentMonth",
  185. "Date.IsInCurrentQuarter",
  186. "Date.IsInCurrentWeek",
  187. "Date.IsInCurrentYear",
  188. "Date.IsInNextDay",
  189. "Date.IsInNextMonth",
  190. "Date.IsInNextNDays",
  191. "Date.IsInNextNMonths",
  192. "Date.IsInNextNQuarters",
  193. "Date.IsInNextNWeeks",
  194. "Date.IsInNextNYears",
  195. "Date.IsInNextQuarter",
  196. "Date.IsInNextWeek",
  197. "Date.IsInNextYear",
  198. "Date.IsInPreviousDay",
  199. "Date.IsInPreviousMonth",
  200. "Date.IsInPreviousNDays",
  201. "Date.IsInPreviousNMonths",
  202. "Date.IsInPreviousNQuarters",
  203. "Date.IsInPreviousNWeeks",
  204. "Date.IsInPreviousNYears",
  205. "Date.IsInPreviousQuarter",
  206. "Date.IsInPreviousWeek",
  207. "Date.IsInPreviousYear",
  208. "Date.IsInYearToDate",
  209. "Date.IsLeapYear",
  210. "Date.Month",
  211. "Date.MonthName",
  212. "Date.QuarterOfYear",
  213. "Date.StartOfDay",
  214. "Date.StartOfMonth",
  215. "Date.StartOfQuarter",
  216. "Date.StartOfWeek",
  217. "Date.StartOfYear",
  218. "Date.ToRecord",
  219. "Date.ToText",
  220. "Date.WeekOfMonth",
  221. "Date.WeekOfYear",
  222. "Date.Year",
  223. "DateTime.AddZone",
  224. "DateTime.Date",
  225. "DateTime.FixedLocalNow",
  226. "DateTime.From",
  227. "DateTime.FromFileTime",
  228. "DateTime.FromText",
  229. "DateTime.IsInCurrentHour",
  230. "DateTime.IsInCurrentMinute",
  231. "DateTime.IsInCurrentSecond",
  232. "DateTime.IsInNextHour",
  233. "DateTime.IsInNextMinute",
  234. "DateTime.IsInNextNHours",
  235. "DateTime.IsInNextNMinutes",
  236. "DateTime.IsInNextNSeconds",
  237. "DateTime.IsInNextSecond",
  238. "DateTime.IsInPreviousHour",
  239. "DateTime.IsInPreviousMinute",
  240. "DateTime.IsInPreviousNHours",
  241. "DateTime.IsInPreviousNMinutes",
  242. "DateTime.IsInPreviousNSeconds",
  243. "DateTime.IsInPreviousSecond",
  244. "DateTime.LocalNow",
  245. "DateTime.Time",
  246. "DateTime.ToRecord",
  247. "DateTime.ToText",
  248. "DateTimeZone.FixedLocalNow",
  249. "DateTimeZone.FixedUtcNow",
  250. "DateTimeZone.From",
  251. "DateTimeZone.FromFileTime",
  252. "DateTimeZone.FromText",
  253. "DateTimeZone.LocalNow",
  254. "DateTimeZone.RemoveZone",
  255. "DateTimeZone.SwitchZone",
  256. "DateTimeZone.ToLocal",
  257. "DateTimeZone.ToRecord",
  258. "DateTimeZone.ToText",
  259. "DateTimeZone.ToUtc",
  260. "DateTimeZone.UtcNow",
  261. "DateTimeZone.ZoneHours",
  262. "DateTimeZone.ZoneMinutes",
  263. "Decimal.From",
  264. "Diagnostics.ActivityId",
  265. "Diagnostics.Trace",
  266. "DirectQueryCapabilities.From",
  267. "Double.From",
  268. "Duration.Days",
  269. "Duration.From",
  270. "Duration.FromText",
  271. "Duration.Hours",
  272. "Duration.Minutes",
  273. "Duration.Seconds",
  274. "Duration.ToRecord",
  275. "Duration.ToText",
  276. "Duration.TotalDays",
  277. "Duration.TotalHours",
  278. "Duration.TotalMinutes",
  279. "Duration.TotalSeconds",
  280. "Embedded.Value",
  281. "Error.Record",
  282. "Excel.CurrentWorkbook",
  283. "Excel.Workbook",
  284. "Exchange.Contents",
  285. "Expression.Constant",
  286. "Expression.Evaluate",
  287. "Expression.Identifier",
  288. "Facebook.Graph",
  289. "File.Contents",
  290. "Folder.Contents",
  291. "Folder.Files",
  292. "Function.From",
  293. "Function.Invoke",
  294. "Function.InvokeAfter",
  295. "Function.IsDataSource",
  296. "GoogleAnalytics.Accounts",
  297. "Guid.From",
  298. "HdInsight.Containers",
  299. "HdInsight.Contents",
  300. "HdInsight.Files",
  301. "Hdfs.Contents",
  302. "Hdfs.Files",
  303. "Informix.Database",
  304. "Int16.From",
  305. "Int32.From",
  306. "Int64.From",
  307. "Int8.From",
  308. "ItemExpression.From",
  309. "Json.Document",
  310. "Json.FromValue",
  311. "Lines.FromBinary",
  312. "Lines.FromText",
  313. "Lines.ToBinary",
  314. "Lines.ToText",
  315. "List.Accumulate",
  316. "List.AllTrue",
  317. "List.Alternate",
  318. "List.AnyTrue",
  319. "List.Average",
  320. "List.Buffer",
  321. "List.Combine",
  322. "List.Contains",
  323. "List.ContainsAll",
  324. "List.ContainsAny",
  325. "List.Count",
  326. "List.Covariance",
  327. "List.DateTimeZones",
  328. "List.DateTimes",
  329. "List.Dates",
  330. "List.Difference",
  331. "List.Distinct",
  332. "List.Durations",
  333. "List.FindText",
  334. "List.First",
  335. "List.FirstN",
  336. "List.Generate",
  337. "List.InsertRange",
  338. "List.Intersect",
  339. "List.IsDistinct",
  340. "List.IsEmpty",
  341. "List.Last",
  342. "List.LastN",
  343. "List.MatchesAll",
  344. "List.MatchesAny",
  345. "List.Max",
  346. "List.MaxN",
  347. "List.Median",
  348. "List.Min",
  349. "List.MinN",
  350. "List.Mode",
  351. "List.Modes",
  352. "List.NonNullCount",
  353. "List.Numbers",
  354. "List.PositionOf",
  355. "List.PositionOfAny",
  356. "List.Positions",
  357. "List.Product",
  358. "List.Random",
  359. "List.Range",
  360. "List.RemoveFirstN",
  361. "List.RemoveItems",
  362. "List.RemoveLastN",
  363. "List.RemoveMatchingItems",
  364. "List.RemoveNulls",
  365. "List.RemoveRange",
  366. "List.Repeat",
  367. "List.ReplaceMatchingItems",
  368. "List.ReplaceRange",
  369. "List.ReplaceValue",
  370. "List.Reverse",
  371. "List.Select",
  372. "List.Single",
  373. "List.SingleOrDefault",
  374. "List.Skip",
  375. "List.Sort",
  376. "List.StandardDeviation",
  377. "List.Sum",
  378. "List.Times",
  379. "List.Transform",
  380. "List.TransformMany",
  381. "List.Union",
  382. "List.Zip",
  383. "Logical.From",
  384. "Logical.FromText",
  385. "Logical.ToText",
  386. "MQ.Queue",
  387. "MySQL.Database",
  388. "Number.Abs",
  389. "Number.Acos",
  390. "Number.Asin",
  391. "Number.Atan",
  392. "Number.Atan2",
  393. "Number.BitwiseAnd",
  394. "Number.BitwiseNot",
  395. "Number.BitwiseOr",
  396. "Number.BitwiseShiftLeft",
  397. "Number.BitwiseShiftRight",
  398. "Number.BitwiseXor",
  399. "Number.Combinations",
  400. "Number.Cos",
  401. "Number.Cosh",
  402. "Number.Exp",
  403. "Number.Factorial",
  404. "Number.From",
  405. "Number.FromText",
  406. "Number.IntegerDivide",
  407. "Number.IsEven",
  408. "Number.IsNaN",
  409. "Number.IsOdd",
  410. "Number.Ln",
  411. "Number.Log",
  412. "Number.Log10",
  413. "Number.Mod",
  414. "Number.Permutations",
  415. "Number.Power",
  416. "Number.Random",
  417. "Number.RandomBetween",
  418. "Number.Round",
  419. "Number.RoundAwayFromZero",
  420. "Number.RoundDown",
  421. "Number.RoundTowardZero",
  422. "Number.RoundUp",
  423. "Number.Sign",
  424. "Number.Sin",
  425. "Number.Sinh",
  426. "Number.Sqrt",
  427. "Number.Tan",
  428. "Number.Tanh",
  429. "Number.ToText",
  430. "OData.Feed",
  431. "Odbc.DataSource",
  432. "Odbc.Query",
  433. "OleDb.DataSource",
  434. "OleDb.Query",
  435. "Oracle.Database",
  436. "Percentage.From",
  437. "PostgreSQL.Database",
  438. "RData.FromBinary",
  439. "Record.AddField",
  440. "Record.Combine",
  441. "Record.Field",
  442. "Record.FieldCount",
  443. "Record.FieldNames",
  444. "Record.FieldOrDefault",
  445. "Record.FieldValues",
  446. "Record.FromList",
  447. "Record.FromTable",
  448. "Record.HasFields",
  449. "Record.RemoveFields",
  450. "Record.RenameFields",
  451. "Record.ReorderFields",
  452. "Record.SelectFields",
  453. "Record.ToList",
  454. "Record.ToTable",
  455. "Record.TransformFields",
  456. "Replacer.ReplaceText",
  457. "Replacer.ReplaceValue",
  458. "RowExpression.Column",
  459. "RowExpression.From",
  460. "Salesforce.Data",
  461. "Salesforce.Reports",
  462. "SapBusinessWarehouse.Cubes",
  463. "SapHana.Database",
  464. "SharePoint.Contents",
  465. "SharePoint.Files",
  466. "SharePoint.Tables",
  467. "Single.From",
  468. "Soda.Feed",
  469. "Splitter.SplitByNothing",
  470. "Splitter.SplitTextByAnyDelimiter",
  471. "Splitter.SplitTextByDelimiter",
  472. "Splitter.SplitTextByEachDelimiter",
  473. "Splitter.SplitTextByLengths",
  474. "Splitter.SplitTextByPositions",
  475. "Splitter.SplitTextByRanges",
  476. "Splitter.SplitTextByRepeatedLengths",
  477. "Splitter.SplitTextByWhitespace",
  478. "Sql.Database",
  479. "Sql.Databases",
  480. "SqlExpression.SchemaFrom",
  481. "SqlExpression.ToExpression",
  482. "Sybase.Database",
  483. "Table.AddColumn",
  484. "Table.AddIndexColumn",
  485. "Table.AddJoinColumn",
  486. "Table.AddKey",
  487. "Table.AggregateTableColumn",
  488. "Table.AlternateRows",
  489. "Table.Buffer",
  490. "Table.Column",
  491. "Table.ColumnCount",
  492. "Table.ColumnNames",
  493. "Table.ColumnsOfType",
  494. "Table.Combine",
  495. "Table.CombineColumns",
  496. "Table.Contains",
  497. "Table.ContainsAll",
  498. "Table.ContainsAny",
  499. "Table.DemoteHeaders",
  500. "Table.Distinct",
  501. "Table.DuplicateColumn",
  502. "Table.ExpandListColumn",
  503. "Table.ExpandRecordColumn",
  504. "Table.ExpandTableColumn",
  505. "Table.FillDown",
  506. "Table.FillUp",
  507. "Table.FilterWithDataTable",
  508. "Table.FindText",
  509. "Table.First",
  510. "Table.FirstN",
  511. "Table.FirstValue",
  512. "Table.FromColumns",
  513. "Table.FromList",
  514. "Table.FromPartitions",
  515. "Table.FromRecords",
  516. "Table.FromRows",
  517. "Table.FromValue",
  518. "Table.Group",
  519. "Table.HasColumns",
  520. "Table.InsertRows",
  521. "Table.IsDistinct",
  522. "Table.IsEmpty",
  523. "Table.Join",
  524. "Table.Keys",
  525. "Table.Last",
  526. "Table.LastN",
  527. "Table.MatchesAllRows",
  528. "Table.MatchesAnyRows",
  529. "Table.Max",
  530. "Table.MaxN",
  531. "Table.Min",
  532. "Table.MinN",
  533. "Table.NestedJoin",
  534. "Table.Partition",
  535. "Table.PartitionValues",
  536. "Table.Pivot",
  537. "Table.PositionOf",
  538. "Table.PositionOfAny",
  539. "Table.PrefixColumns",
  540. "Table.Profile",
  541. "Table.PromoteHeaders",
  542. "Table.Range",
  543. "Table.RemoveColumns",
  544. "Table.RemoveFirstN",
  545. "Table.RemoveLastN",
  546. "Table.RemoveMatchingRows",
  547. "Table.RemoveRows",
  548. "Table.RemoveRowsWithErrors",
  549. "Table.RenameColumns",
  550. "Table.ReorderColumns",
  551. "Table.Repeat",
  552. "Table.ReplaceErrorValues",
  553. "Table.ReplaceKeys",
  554. "Table.ReplaceMatchingRows",
  555. "Table.ReplaceRelationshipIdentity",
  556. "Table.ReplaceRows",
  557. "Table.ReplaceValue",
  558. "Table.ReverseRows",
  559. "Table.RowCount",
  560. "Table.Schema",
  561. "Table.SelectColumns",
  562. "Table.SelectRows",
  563. "Table.SelectRowsWithErrors",
  564. "Table.SingleRow",
  565. "Table.Skip",
  566. "Table.Sort",
  567. "Table.SplitColumn",
  568. "Table.ToColumns",
  569. "Table.ToList",
  570. "Table.ToRecords",
  571. "Table.ToRows",
  572. "Table.TransformColumnNames",
  573. "Table.TransformColumnTypes",
  574. "Table.TransformColumns",
  575. "Table.TransformRows",
  576. "Table.Transpose",
  577. "Table.Unpivot",
  578. "Table.UnpivotOtherColumns",
  579. "Table.View",
  580. "Table.ViewFunction",
  581. "TableAction.DeleteRows",
  582. "TableAction.InsertRows",
  583. "TableAction.UpdateRows",
  584. "Tables.GetRelationships",
  585. "Teradata.Database",
  586. "Text.AfterDelimiter",
  587. "Text.At",
  588. "Text.BeforeDelimiter",
  589. "Text.BetweenDelimiters",
  590. "Text.Clean",
  591. "Text.Combine",
  592. "Text.Contains",
  593. "Text.End",
  594. "Text.EndsWith",
  595. "Text.Format",
  596. "Text.From",
  597. "Text.FromBinary",
  598. "Text.Insert",
  599. "Text.Length",
  600. "Text.Lower",
  601. "Text.Middle",
  602. "Text.NewGuid",
  603. "Text.PadEnd",
  604. "Text.PadStart",
  605. "Text.PositionOf",
  606. "Text.PositionOfAny",
  607. "Text.Proper",
  608. "Text.Range",
  609. "Text.Remove",
  610. "Text.RemoveRange",
  611. "Text.Repeat",
  612. "Text.Replace",
  613. "Text.ReplaceRange",
  614. "Text.Select",
  615. "Text.Split",
  616. "Text.SplitAny",
  617. "Text.Start",
  618. "Text.StartsWith",
  619. "Text.ToBinary",
  620. "Text.ToList",
  621. "Text.Trim",
  622. "Text.TrimEnd",
  623. "Text.TrimStart",
  624. "Text.Upper",
  625. "Time.EndOfHour",
  626. "Time.From",
  627. "Time.FromText",
  628. "Time.Hour",
  629. "Time.Minute",
  630. "Time.Second",
  631. "Time.StartOfHour",
  632. "Time.ToRecord",
  633. "Time.ToText",
  634. "Type.AddTableKey",
  635. "Type.ClosedRecord",
  636. "Type.Facets",
  637. "Type.ForFunction",
  638. "Type.ForRecord",
  639. "Type.FunctionParameters",
  640. "Type.FunctionRequiredParameters",
  641. "Type.FunctionReturn",
  642. "Type.Is",
  643. "Type.IsNullable",
  644. "Type.IsOpenRecord",
  645. "Type.ListItem",
  646. "Type.NonNullable",
  647. "Type.OpenRecord",
  648. "Type.RecordFields",
  649. "Type.ReplaceFacets",
  650. "Type.ReplaceTableKeys",
  651. "Type.TableColumn",
  652. "Type.TableKeys",
  653. "Type.TableRow",
  654. "Type.TableSchema",
  655. "Type.Union",
  656. "Uri.BuildQueryString",
  657. "Uri.Combine",
  658. "Uri.EscapeDataString",
  659. "Uri.Parts",
  660. "Value.Add",
  661. "Value.As",
  662. "Value.Compare",
  663. "Value.Divide",
  664. "Value.Equals",
  665. "Value.Firewall",
  666. "Value.FromText",
  667. "Value.Is",
  668. "Value.Metadata",
  669. "Value.Multiply",
  670. "Value.NativeQuery",
  671. "Value.NullableEquals",
  672. "Value.RemoveMetadata",
  673. "Value.ReplaceMetadata",
  674. "Value.ReplaceType",
  675. "Value.Subtract",
  676. "Value.Type",
  677. "ValueAction.NativeStatement",
  678. "ValueAction.Replace",
  679. "Variable.Value",
  680. "Web.Contents",
  681. "Web.Page",
  682. "WebAction.Request",
  683. "Xml.Document",
  684. "Xml.Tables"
  685. ],
  686. builtinConstants: [
  687. "BinaryEncoding.Base64",
  688. "BinaryEncoding.Hex",
  689. "BinaryOccurrence.Optional",
  690. "BinaryOccurrence.Repeating",
  691. "BinaryOccurrence.Required",
  692. "ByteOrder.BigEndian",
  693. "ByteOrder.LittleEndian",
  694. "Compression.Deflate",
  695. "Compression.GZip",
  696. "CsvStyle.QuoteAfterDelimiter",
  697. "CsvStyle.QuoteAlways",
  698. "Culture.Current",
  699. "Day.Friday",
  700. "Day.Monday",
  701. "Day.Saturday",
  702. "Day.Sunday",
  703. "Day.Thursday",
  704. "Day.Tuesday",
  705. "Day.Wednesday",
  706. "ExtraValues.Error",
  707. "ExtraValues.Ignore",
  708. "ExtraValues.List",
  709. "GroupKind.Global",
  710. "GroupKind.Local",
  711. "JoinAlgorithm.Dynamic",
  712. "JoinAlgorithm.LeftHash",
  713. "JoinAlgorithm.LeftIndex",
  714. "JoinAlgorithm.PairwiseHash",
  715. "JoinAlgorithm.RightHash",
  716. "JoinAlgorithm.RightIndex",
  717. "JoinAlgorithm.SortMerge",
  718. "JoinKind.FullOuter",
  719. "JoinKind.Inner",
  720. "JoinKind.LeftAnti",
  721. "JoinKind.LeftOuter",
  722. "JoinKind.RightAnti",
  723. "JoinKind.RightOuter",
  724. "JoinSide.Left",
  725. "JoinSide.Right",
  726. "MissingField.Error",
  727. "MissingField.Ignore",
  728. "MissingField.UseNull",
  729. "Number.E",
  730. "Number.Epsilon",
  731. "Number.NaN",
  732. "Number.NegativeInfinity",
  733. "Number.PI",
  734. "Number.PositiveInfinity",
  735. "Occurrence.All",
  736. "Occurrence.First",
  737. "Occurrence.Last",
  738. "Occurrence.Optional",
  739. "Occurrence.Repeating",
  740. "Occurrence.Required",
  741. "Order.Ascending",
  742. "Order.Descending",
  743. "Precision.Decimal",
  744. "Precision.Double",
  745. "QuoteStyle.Csv",
  746. "QuoteStyle.None",
  747. "RelativePosition.FromEnd",
  748. "RelativePosition.FromStart",
  749. "RoundingMode.AwayFromZero",
  750. "RoundingMode.Down",
  751. "RoundingMode.ToEven",
  752. "RoundingMode.TowardZero",
  753. "RoundingMode.Up",
  754. "SapHanaDistribution.All",
  755. "SapHanaDistribution.Connection",
  756. "SapHanaDistribution.Off",
  757. "SapHanaDistribution.Statement",
  758. "SapHanaRangeOperator.Equals",
  759. "SapHanaRangeOperator.GreaterThan",
  760. "SapHanaRangeOperator.GreaterThanOrEquals",
  761. "SapHanaRangeOperator.LessThan",
  762. "SapHanaRangeOperator.LessThanOrEquals",
  763. "SapHanaRangeOperator.NotEquals",
  764. "TextEncoding.Ascii",
  765. "TextEncoding.BigEndianUnicode",
  766. "TextEncoding.Unicode",
  767. "TextEncoding.Utf16",
  768. "TextEncoding.Utf8",
  769. "TextEncoding.Windows",
  770. "TraceLevel.Critical",
  771. "TraceLevel.Error",
  772. "TraceLevel.Information",
  773. "TraceLevel.Verbose",
  774. "TraceLevel.Warning",
  775. "WebMethod.Delete",
  776. "WebMethod.Get",
  777. "WebMethod.Head",
  778. "WebMethod.Patch",
  779. "WebMethod.Post",
  780. "WebMethod.Put"
  781. ],
  782. builtinTypes: [
  783. "Action.Type",
  784. "Any.Type",
  785. "Binary.Type",
  786. "BinaryEncoding.Type",
  787. "BinaryOccurrence.Type",
  788. "Byte.Type",
  789. "ByteOrder.Type",
  790. "Character.Type",
  791. "Compression.Type",
  792. "CsvStyle.Type",
  793. "Currency.Type",
  794. "Date.Type",
  795. "DateTime.Type",
  796. "DateTimeZone.Type",
  797. "Day.Type",
  798. "Decimal.Type",
  799. "Double.Type",
  800. "Duration.Type",
  801. "ExtraValues.Type",
  802. "Function.Type",
  803. "GroupKind.Type",
  804. "Guid.Type",
  805. "Int16.Type",
  806. "Int32.Type",
  807. "Int64.Type",
  808. "Int8.Type",
  809. "JoinAlgorithm.Type",
  810. "JoinKind.Type",
  811. "JoinSide.Type",
  812. "List.Type",
  813. "Logical.Type",
  814. "MissingField.Type",
  815. "None.Type",
  816. "Null.Type",
  817. "Number.Type",
  818. "Occurrence.Type",
  819. "Order.Type",
  820. "Password.Type",
  821. "Percentage.Type",
  822. "Precision.Type",
  823. "QuoteStyle.Type",
  824. "Record.Type",
  825. "RelativePosition.Type",
  826. "RoundingMode.Type",
  827. "SapHanaDistribution.Type",
  828. "SapHanaRangeOperator.Type",
  829. "Single.Type",
  830. "Table.Type",
  831. "Text.Type",
  832. "TextEncoding.Type",
  833. "Time.Type",
  834. "TraceLevel.Type",
  835. "Type.Type",
  836. "Uri.Type",
  837. "WebMethod.Type"
  838. ],
  839. tokenizer: {
  840. root: [
  841. // quoted identifier
  842. [/#"[\w \.]+"/, "identifier.quote"],
  843. // numbers
  844. [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
  845. [/0[xX][0-9a-fA-F]+/, "number.hex"],
  846. [/\d+([eE][\-+]?\d+)?/, "number"],
  847. // keywords
  848. [/(#?[a-z]+)\b/,
  849. {
  850. cases: {
  851. "@typeKeywords": "type",
  852. "@keywords": "keyword",
  853. "@constants": "constant",
  854. "@constructors": "constructor",
  855. "@operatorKeywords": "operators",
  856. "@default": "identifier"
  857. }
  858. }
  859. ],
  860. // built-in types
  861. [/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,
  862. {
  863. cases: {
  864. "@builtinTypes": "type",
  865. "@default": "identifier"
  866. }
  867. }
  868. ],
  869. // other built-ins
  870. [/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,
  871. {
  872. cases: {
  873. "@builtinFunctions": "keyword.function",
  874. "@builtinConstants": "constant",
  875. "@default": "identifier"
  876. }
  877. }
  878. ],
  879. // other identifiers
  880. [/\b([a-zA-Z_][\w\.]*)\b/, "identifier"],
  881. { include: "@whitespace" },
  882. { include: "@comments" },
  883. { include: "@strings" },
  884. [/[{}()\[\]]/, "@brackets"],
  885. [/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/, "operators"],
  886. [/[,;]/, "delimiter"],
  887. ],
  888. whitespace: [
  889. [/\s+/, "white"]
  890. ],
  891. comments: [
  892. ["\\/\\*", "comment", "@comment"],
  893. ["\\/\\/+.*", "comment"]
  894. ],
  895. comment: [
  896. ["\\*\\/", "comment", "@pop"],
  897. [".", "comment"]
  898. ],
  899. strings: [
  900. ["\"", "string", "@string"]
  901. ],
  902. string: [
  903. ["\"\"", "string.escape"],
  904. ["\"", "string", "@pop"],
  905. [".", "string"]
  906. ]
  907. }
  908. };
  909. });