Skip to content

Commit

Permalink
Add Microsoft Dax (#889)
Browse files Browse the repository at this point in the history
  • Loading branch information
Riktastic committed Nov 22, 2023
1 parent 1cda665 commit 7d4db86
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -41,7 +41,7 @@ translators for Pygments lexers and styles.
| A | ABAP, ABNF, ActionScript, ActionScript 3, Ada, AL, Angular2, ANTLR, ApacheConf, APL, AppleScript, ArangoDB AQL, Arduino, ArmAsm, AutoHotkey, AutoIt, Awk |
| B | Ballerina, Bash, Bash Session, Batchfile, BibTeX, Bicep, BlitzBasic, BNF, BQN, Brainfuck |
| C | C, C#, C++, Caddyfile, Caddyfile Directives, Cap'n Proto, Cassandra CQL, Ceylon, CFEngine3, cfstatement, ChaiScript, Chapel, Cheetah, Clojure, CMake, COBOL, CoffeeScript, Common Lisp, Coq, Crystal, CSS, Cython |
| D | D, Dart, Diff, Django/Jinja, dns, Docker, DTD, Dylan |
| D | D, Dart, Dax, Diff, Django/Jinja, dns, Docker, DTD, Dylan |
| E | EBNF, Elixir, Elm, EmacsLisp, Erlang |
| F | Factor, Fennel, Fish, Forth, Fortran, FortranFixed, FSharp |
| G | GAS, GDScript, Genshi, Genshi HTML, Genshi Text, Gherkin, GLSL, Gnuplot, Go, Go HTML Template, Go Text Template, GraphQL, Groff, Groovy |
Expand Down
39 changes: 39 additions & 0 deletions lexers/embedded/dax.xml
@@ -0,0 +1,39 @@
<lexer>
<config>
<name>Dax</name>
<alias>dax</alias>
<filename>*.dax</filename>
</config>
<rules>
<state name="root">
<rule pattern="\s+"><token type="TextWhitespace"/></rule>
<rule pattern="--.*\n?"><token type="CommentSingle"/></rule>
<rule pattern="//.*\n?"><token type="CommentSingle"/></rule>
<rule pattern="/\*"><token type="CommentMultiline"/><push state="multiline-comments"/></rule>
<rule pattern="(CONTAINS|CONTAINSROW|CUSTOMDATA|ISAFTER|ISBLANK|ISERROR|ISEVEN|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|LOOKUPVALUE|NONVISUAL|SELECTEDMEASURE|SELECTEDMEASURENAME|USERNAME|USEROBJECTID|USERPRINCIPALNAME|TOJSON|TOCSV|EVALUATEANDLOG|USERCULTURE|WINDOW|PARTITIONBY|ORDERBY|OFFSET|INDEX|ROWNUMBER|MATCHBY|ACCRINT|ACCRINTM|AMORDEGRC|AMORLINC|COUPDAYBS|COUPDAYS|COUPDAYSNC|COUPNCD|COUPNUM|COUPPCD|CUMIPMT|CUMPRINC|DB|DDB|DISC|DOLLARDE|DOLLARFR|DURATION|EFFECT|FV|INTRATE|IPMT|ISPMT|MDURATION|NOMINAL|NPER|ODDFPRICE|ODDFYIELD|ODDLPRICE|ODDLYIELD|PDURATION|PMT|PPMT|PRICE|PRICEDISC|PRICEMAT|PV|RATE|RECEIVED|RRI|SLN|SYD|TBILLEQ|TBILLPRICE|TBILLYIELD|VDB|YIELD|YIELDDISC|YIELDMAT|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|CALCULATE|CALCULATETABLE|CROSSFILTER|EARLIER|EARLIEST|FILTER|FILTERS|HASONEFILTER|HASONEVALUE|ISCROSSFILTERED|ISFILTERED|KEEPFILTERS|RELATED|RELATEDTABLE|REMOVEFILTERS|SELECTEDVALUE|SUBSTITUTEWITHINDEX|USERELATIONSHIP|VALUES|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|DATEADD|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|PARALLELPERIOD|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|SAMEPERIODLASTYEAR|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|TOTALMTD|TOTALQTD|TOTALYTD|RETURN|ABS|ACOS|ACOSH|ACOT|ACOTH|ASIN|ASINH|ATAN|ATANH|CEILING|COMBIN|COMBINA|COS|COSH|COT|COTH|CURRENCY|DEGREES|DIVIDE|EVEN|EXP|FACT|FLOOR|GCD|INT|ISO.CEILING|LCM|LN|LOG|LOG10|MOD|MROUND|ODD|PI|POWER|PRODUCT|PRODUCTX|QUOTIENT|RADIANS|RAND|RANDBETWEEN|ROUND|ROUNDDOWN|ROUNDUP|SIGN|SQRT|SUM|SUMX|TRUNC|BLANK|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONTAINSSTRING|CONTAINSSTRINGEXACT|EXACT|FIND|FIXED|FORMAT|LEFT|LEN|LOWER|MID|REPLACE|REPT|RIGHT|SEARCH|SUBSTITUTE|TRIM|UNICHAR|UNICODE|UPPER|VALUE|LINEST|LINESTX|CONVERT|DATATABLE|ERROR|EXCEPT|GENERATESERIES|GROUPBY|INTERSECT|ISEMPTY|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|SELECTEDMEASUREFORMATSTRING|SUMMARIZECOLUMNS|Table Constructor|TREATAS|UNION|VAR|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|ADDCOLUMNS|ADDMISSINGITEMS|CURRENTGROUP|DETAILROWS|DISTINCT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|EXTERNALMEASURE|PMT|PPMT|PRICE|PRICEDISC|PRICEMAT|PV|RATE|RECEIVED|RRI|SLN|SYD|TBILLEQ|TBILLPRICE|TBILLYIELD|VDB|YIELD|YIELDDISC|YIELDMAT|CALENDAR|CALENDARAUTO|DATE|DATEDIFF|DATEVALUE|DAY|EDATE|EOMONTH|HOUR|MINUTE|MONTH|NETWORKDAYS|NOW|QUARTER|SECOND|TIME|TIMEVALUE|TODAY|UTCNOW|UTCTODAY|WEEKDAY|WEEKNUM|YEAR|YEARFRAC|APPROXIMATEDISTINCTCOUNT|AVERAGE|AVERAGEA|AVERAGEX|BETA.DIST|BETA.INV|CHISQ.DIST|CHISQ.DIST.RT|CHISQ.INV|CHISQ.INV.RT|CONFIDENCE.NORM|CONFIDENCE.T|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSJOIN|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|EXPON.DIST|GENERATE|GENERATEALL|GEOMEAN|GEOMEANX|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MIN|MINA|MINX|NORM.DIST|NORM.INV|NORM.S.DIST|NORM.S.INV|PERCENTILE.EXC|PERCENTILE.INC|PERCENTILEX.EXC|PERCENTILEX.INC|PERMUT|POISSON.DIST|RANK.EQ|RANKX|ROW|SAMPLE|SELECTCOLUMNS|SIN|SINH|SQRTPI|STDEV.P|STDEV.S|STDEVX.P|STDEVX.S|SUMMARIZE|T.DIST|T.DIST.2T|T.DIST.RT|T.INV|T.INV.2T|TAN|TANH|TOPN|VAR|VAR.P|VAR.S|VARX.P|VARX.S|XIRR|XNPV|RANK)\b">
<token type="NameFunction"/>
</rule>
<rule pattern="(AND|BITAND|BITLSHIFT|BITOR|BITRSHIFT|BITXOR|COALESCE|FALSE|IF|IF.EAGER|IFERROR|IN|NOT|OR|SWITCH|TRUE)\b">
<token type="NameOperator"/>
</rule>
<rule pattern="[+*/&lt;&gt;=!^&amp;|,-]"><token type="Operator"/></rule>
<rule pattern="&quot;"><token type="LiteralString"/><push state="string"/></rule>
<rule pattern="&#x27;(?:[^&#x27;]|&#x27;&#x27;)*&#x27;(?!&#x27;)(?:\[[ \w]+\])?|\w+\[[ \w]+\]"><token type="NameAttribute"/></rule>
<rule pattern="\[[ \w]+\]"><token type="NameAttribute"/></rule>
<rule pattern="(?&lt;!\w)(\d+\.?\d*|\.\d+\b)"><token type="LiteralNumber"/></rule>
<rule pattern="[\[\](){}`,.]"><token type="Punctuation"/></rule>
<rule pattern=".*\n"><token type="Text"/></rule>
</state>
<state name="multiline-comments">
<rule pattern="/\*"><token type="CommentMultiline"/><push state="multiline-comments"/></rule>
<rule pattern="\*/"><token type="CommentMultiline"/><pop depth="1"/></rule>
<rule pattern="[^/*]+"><token type="CommentMultiline"/></rule>
<rule pattern="[/*]"><token type="CommentMultiline"/></rule>
</state>
<state name="string">
<rule pattern="&quot;&quot;"><token type="LiteralStringEscape"/></rule>
<rule pattern="&quot;"><token type="LiteralString"/><pop depth="1"/></rule>
<rule pattern="[^&quot;]+"><token type="LiteralString"/></rule>
</state>
</rules>
</lexer>

0 comments on commit 7d4db86

Please sign in to comment.