| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382 |
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- define('vs/basic-languages/msdax/msdax',["require", "exports"], function (require, exports) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.language = exports.conf = void 0;
- exports.conf = {
- comments: {
- lineComment: '//',
- blockComment: ['/*', '*/']
- },
- brackets: [
- ['[', ']'],
- ['(', ')'],
- ['{', '}']
- ],
- autoClosingPairs: [
- { open: '"', close: '"', notIn: ['string', 'comment'] },
- { open: "'", close: "'", notIn: ['string', 'comment'] },
- { open: '[', close: ']', notIn: ['string', 'comment'] },
- { open: '(', close: ')', notIn: ['string', 'comment'] },
- { open: '{', close: '}', notIn: ['string', 'comment'] }
- ]
- };
- exports.language = {
- defaultToken: '',
- tokenPostfix: '.msdax',
- ignoreCase: true,
- brackets: [
- { open: '[', close: ']', token: 'delimiter.square' },
- { open: '{', close: '}', token: 'delimiter.brackets' },
- { open: '(', close: ')', token: 'delimiter.parenthesis' }
- ],
- keywords: [
- // Query keywords
- 'VAR',
- 'RETURN',
- 'NOT',
- 'EVALUATE',
- 'DATATABLE',
- 'ORDER',
- 'BY',
- 'START',
- 'AT',
- 'DEFINE',
- 'MEASURE',
- 'ASC',
- 'DESC',
- 'IN',
- // Datatable types
- 'BOOLEAN',
- 'DOUBLE',
- 'INTEGER',
- 'DATETIME',
- 'CURRENCY',
- 'STRING'
- ],
- functions: [
- // Relational
- 'CLOSINGBALANCEMONTH',
- 'CLOSINGBALANCEQUARTER',
- 'CLOSINGBALANCEYEAR',
- 'DATEADD',
- 'DATESBETWEEN',
- 'DATESINPERIOD',
- 'DATESMTD',
- 'DATESQTD',
- 'DATESYTD',
- 'ENDOFMONTH',
- 'ENDOFQUARTER',
- 'ENDOFYEAR',
- 'FIRSTDATE',
- 'FIRSTNONBLANK',
- 'LASTDATE',
- 'LASTNONBLANK',
- 'NEXTDAY',
- 'NEXTMONTH',
- 'NEXTQUARTER',
- 'NEXTYEAR',
- 'OPENINGBALANCEMONTH',
- 'OPENINGBALANCEQUARTER',
- 'OPENINGBALANCEYEAR',
- 'PARALLELPERIOD',
- 'PREVIOUSDAY',
- 'PREVIOUSMONTH',
- 'PREVIOUSQUARTER',
- 'PREVIOUSYEAR',
- 'SAMEPERIODLASTYEAR',
- 'STARTOFMONTH',
- 'STARTOFQUARTER',
- 'STARTOFYEAR',
- 'TOTALMTD',
- 'TOTALQTD',
- 'TOTALYTD',
- 'ADDCOLUMNS',
- 'ADDMISSINGITEMS',
- 'ALL',
- 'ALLEXCEPT',
- 'ALLNOBLANKROW',
- 'ALLSELECTED',
- 'CALCULATE',
- 'CALCULATETABLE',
- 'CALENDAR',
- 'CALENDARAUTO',
- 'CROSSFILTER',
- 'CROSSJOIN',
- 'CURRENTGROUP',
- 'DATATABLE',
- 'DETAILROWS',
- 'DISTINCT',
- 'EARLIER',
- 'EARLIEST',
- 'EXCEPT',
- 'FILTER',
- 'FILTERS',
- 'GENERATE',
- 'GENERATEALL',
- 'GROUPBY',
- 'IGNORE',
- 'INTERSECT',
- 'ISONORAFTER',
- 'KEEPFILTERS',
- 'LOOKUPVALUE',
- 'NATURALINNERJOIN',
- 'NATURALLEFTOUTERJOIN',
- 'RELATED',
- 'RELATEDTABLE',
- 'ROLLUP',
- 'ROLLUPADDISSUBTOTAL',
- 'ROLLUPGROUP',
- 'ROLLUPISSUBTOTAL',
- 'ROW',
- 'SAMPLE',
- 'SELECTCOLUMNS',
- 'SUBSTITUTEWITHINDEX',
- 'SUMMARIZE',
- 'SUMMARIZECOLUMNS',
- 'TOPN',
- 'TREATAS',
- 'UNION',
- 'USERELATIONSHIP',
- 'VALUES',
- 'SUM',
- 'SUMX',
- 'PATH',
- 'PATHCONTAINS',
- 'PATHITEM',
- 'PATHITEMREVERSE',
- 'PATHLENGTH',
- 'AVERAGE',
- 'AVERAGEA',
- 'AVERAGEX',
- 'COUNT',
- 'COUNTA',
- 'COUNTAX',
- 'COUNTBLANK',
- 'COUNTROWS',
- 'COUNTX',
- 'DISTINCTCOUNT',
- 'DIVIDE',
- 'GEOMEAN',
- 'GEOMEANX',
- 'MAX',
- 'MAXA',
- 'MAXX',
- 'MEDIAN',
- 'MEDIANX',
- 'MIN',
- 'MINA',
- 'MINX',
- 'PERCENTILE.EXC',
- 'PERCENTILE.INC',
- 'PERCENTILEX.EXC',
- 'PERCENTILEX.INC',
- 'PRODUCT',
- 'PRODUCTX',
- 'RANK.EQ',
- 'RANKX',
- 'STDEV.P',
- 'STDEV.S',
- 'STDEVX.P',
- 'STDEVX.S',
- 'VAR.P',
- 'VAR.S',
- 'VARX.P',
- 'VARX.S',
- 'XIRR',
- 'XNPV',
- // Scalar
- 'DATE',
- 'DATEDIFF',
- 'DATEVALUE',
- 'DAY',
- 'EDATE',
- 'EOMONTH',
- 'HOUR',
- 'MINUTE',
- 'MONTH',
- 'NOW',
- 'SECOND',
- 'TIME',
- 'TIMEVALUE',
- 'TODAY',
- 'WEEKDAY',
- 'WEEKNUM',
- 'YEAR',
- 'YEARFRAC',
- 'CONTAINS',
- 'CONTAINSROW',
- 'CUSTOMDATA',
- 'ERROR',
- 'HASONEFILTER',
- 'HASONEVALUE',
- 'ISBLANK',
- 'ISCROSSFILTERED',
- 'ISEMPTY',
- 'ISERROR',
- 'ISEVEN',
- 'ISFILTERED',
- 'ISLOGICAL',
- 'ISNONTEXT',
- 'ISNUMBER',
- 'ISODD',
- 'ISSUBTOTAL',
- 'ISTEXT',
- 'USERNAME',
- 'USERPRINCIPALNAME',
- 'AND',
- 'FALSE',
- 'IF',
- 'IFERROR',
- 'NOT',
- 'OR',
- 'SWITCH',
- 'TRUE',
- 'ABS',
- 'ACOS',
- 'ACOSH',
- 'ACOT',
- 'ACOTH',
- 'ASIN',
- 'ASINH',
- 'ATAN',
- 'ATANH',
- 'BETA.DIST',
- 'BETA.INV',
- 'CEILING',
- 'CHISQ.DIST',
- 'CHISQ.DIST.RT',
- 'CHISQ.INV',
- 'CHISQ.INV.RT',
- 'COMBIN',
- 'COMBINA',
- 'CONFIDENCE.NORM',
- 'CONFIDENCE.T',
- 'COS',
- 'COSH',
- 'COT',
- 'COTH',
- 'CURRENCY',
- 'DEGREES',
- 'EVEN',
- 'EXP',
- 'EXPON.DIST',
- 'FACT',
- 'FLOOR',
- 'GCD',
- 'INT',
- 'ISO.CEILING',
- 'LCM',
- 'LN',
- 'LOG',
- 'LOG10',
- 'MOD',
- 'MROUND',
- 'ODD',
- 'PERMUT',
- 'PI',
- 'POISSON.DIST',
- 'POWER',
- 'QUOTIENT',
- 'RADIANS',
- 'RAND',
- 'RANDBETWEEN',
- 'ROUND',
- 'ROUNDDOWN',
- 'ROUNDUP',
- 'SIGN',
- 'SIN',
- 'SINH',
- 'SQRT',
- 'SQRTPI',
- 'TAN',
- 'TANH',
- 'TRUNC',
- 'BLANK',
- 'CONCATENATE',
- 'CONCATENATEX',
- 'EXACT',
- 'FIND',
- 'FIXED',
- 'FORMAT',
- 'LEFT',
- 'LEN',
- 'LOWER',
- 'MID',
- 'REPLACE',
- 'REPT',
- 'RIGHT',
- 'SEARCH',
- 'SUBSTITUTE',
- 'TRIM',
- 'UNICHAR',
- 'UNICODE',
- 'UPPER',
- 'VALUE'
- ],
- tokenizer: {
- root: [
- { include: '@comments' },
- { include: '@whitespace' },
- { include: '@numbers' },
- { include: '@strings' },
- { include: '@complexIdentifiers' },
- [/[;,.]/, 'delimiter'],
- [/[({})]/, '@brackets'],
- [
- /[a-z_][a-zA-Z0-9_]*/,
- {
- cases: {
- '@keywords': 'keyword',
- '@functions': 'keyword',
- '@default': 'identifier'
- }
- }
- ],
- [/[<>=!%&+\-*/|~^]/, 'operator']
- ],
- whitespace: [[/\s+/, 'white']],
- comments: [
- [/\/\/+.*/, 'comment'],
- [/\/\*/, { token: 'comment.quote', next: '@comment' }]
- ],
- comment: [
- [/[^*/]+/, 'comment'],
- [/\*\//, { token: 'comment.quote', next: '@pop' }],
- [/./, 'comment']
- ],
- numbers: [
- [/0[xX][0-9a-fA-F]*/, 'number'],
- [/[$][+-]*\d*(\.\d*)?/, 'number'],
- [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number']
- ],
- strings: [
- [/N"/, { token: 'string', next: '@string' }],
- [/"/, { token: 'string', next: '@string' }]
- ],
- string: [
- [/[^"]+/, 'string'],
- [/""/, 'string'],
- [/"/, { token: 'string', next: '@pop' }]
- ],
- complexIdentifiers: [
- [/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }],
- [/'/, { token: 'identifier.quote', next: '@quotedIdentifier' }]
- ],
- bracketedIdentifier: [
- [/[^\]]+/, 'identifier'],
- [/]]/, 'identifier'],
- [/]/, { token: 'identifier.quote', next: '@pop' }]
- ],
- quotedIdentifier: [
- [/[^']+/, 'identifier'],
- [/''/, 'identifier'],
- [/'/, { token: 'identifier.quote', next: '@pop' }]
- ]
- }
- };
- });
|