powerquery.js 25 KB

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