UNPKG

codemirror-lang-knight

Version:

CodeMirror Syntax Highlighting for the Knight programming language (https://github.com/knight-lang/knight-lang/)

60 lines (54 loc) 3.78 kB
'use strict'; var lr = require('@lezer/lr'); var highlight = require('@lezer/highlight'); var language = require('@codemirror/language'); const knightHighlighting = highlight.styleTags({ Comment: highlight.tags.comment, Number: highlight.tags.number, String: highlight.tags.string, List: highlight.tags.constant(highlight.tags.name), Boolean: highlight.tags.atom, Null: highlight.tags.null, Identifier: highlight.tags.variableName, Variable: highlight.tags.definition(highlight.tags.variableName), Function: highlight.tags.function(highlight.tags.variableName), "_": highlight.tags.standard(highlight.tags.name), "Noop Expr": highlight.tags.meta, "( ) { }": highlight.tags.comment, "Unary_Operator Binary_Operator =": highlight.tags.operator, "Call_Op Nullary Unary_Op Binary_Op Ternary_Op Quaternary_Op": highlight.tags.keyword, }); // This file was generated by lezer-generator. You probably shouldn't edit it. const spec_identifier = {__proto__:null,_:138}; const parser = lr.LRParser.deserialize({ version: 14, states: "'UOfQPOOP#lOPOOOOQO'#Ce'#CeOOQO'#Cg'#CgOOQO'#Ch'#ChOOQO'#Ci'#CiOOQO'#Ck'#CkO#qQPO'#CjOfQPO'#CfOOQO'#Cf'#CfOOQO'#Cn'#CnOOQO'#Co'#CoOOQO'#Cp'#CpO#vQPO'#CqOfQPO'#CmOOQO'#Cm'#CmOOQO'#Cu'#CuOfQPO'#CtOOQO'#Cw'#CwOfQPO'#CvOOQO'#Cd'#CdOOQO'#Cx'#CxOOQO'#Cy'#CyOOQO'#Cz'#CzOOQO'#C{'#C{OOQO'#C|'#C|OOQO'#C}'#C}OOQO'#DO'#DOOOQO'#Cc'#CcQOQPOOPOOO'#Ca'#CaPOOO)C>v)C>vOOQO'#Cl'#ClOOQO,59U,59UOOQO,59Q,59QOOQO'#Cs'#CsOfQPO,59]OfQPO,59XOfQPO,59`OfQPO,59bOOQO1G.w1G.wOOQO1G.s1G.sOfQPO1G.zOfQPO1G.|OOQO7+$f7+$fOfQPO7+$hOOQO<<HS<<HS", stateData: "#{~OuOSPOSQOSROSSOSvPQ~Of]OwQOxROySOzTO{TO|TO}TO!OTO!PUO!QkO!RYO!SZO!T[O!U[O!V[O!W[O!X[O!Y[O!Z[O![[O!][O!^[O!_[O!``O!abO!beO!cfO!dgO!ehO!fiO!gjO~OvnO~O!QpO~O!QsO~O", goto: "%gsPPPPPtPw!m!{!{#Z#Z#Z#i#w$V!{$Y$Y$Y$hP$v!{$y!{%X!m!m!m!m!m!m!mRoPQmOQrWQu^QvaQwcQxtQyuQzvQ{wQ|zQ}{R!O}ilOW^actuvwz{}idOW^actuvwz{}iWOW^actuvwz{}iXOW^actuvwz{}iVOW^actuvwz{}RqVi^OW^actuvwz{}i_OW^actuvwz{}Rt]iaOW^actuvwz{}icOW^actuvwz{}", nodeNames: "⚠ ( ) { } Comment Program Statement Operation Nullary Unary Unary_Op Noop Unary_Operator Call Call_Op Function Binary Binary_Op Expr Binary_Operator Assign = Variable Ternary Ternary_Op Quaternary Quaternary_Op Null Boolean List String Number Args Identifier", maxTerm: 69, propSources: [knightHighlighting], skippedNodes: [0,1,2,3,4,5], repeatNodeCount: 0, tokenData: "+f~R!YX^$qpq$qqr$vrs${st%juv&Rvw&Wwx&]xy&uyz&zz{'P{|'U|}'Z}!O'`!P!Q'e!Q!['j![!]'r!]!^'w!^!_'|!_!`(R!`!a(W!a!b(]!b!c(b!c!d(g!d!e(g!e!f(r!f!g(g!h!i(}!i!j)Y!k!l)Y!n!o(g!p!q)e!q!r(g!r!s)p!s!t(g!t!u)p!u!v){!v!w(}!y!z*W!}#O*c#P#Q*h#Q#R*m#R#S*r#T#o*r#o#p+Q#p#q+V#q#r+[#r#s+a#y#z$q$f$g$q#BY#BZ$q$IS$I_$q$I|$JO$q$JT$JU$q$KV$KW$q&FU&FV$q~$vOu~~${O}~~%OTOr${rs%_s;'S${;'S;=`%d<%lO${~%dO!e~~%gP;=`<%l${~%oSv~OY%jZ;'S%j;'S;=`%{<%lO%j~&OP;=`<%l%j~&WO!X~~&]O!^~~&`TOw&]wx%_x;'S&];'S;=`&o<%lO&]~&rP;=`<%l&]~&zOP~~'POQ~~'UO!V~~'ZO!T~~'`Oz~~'eO!U~~'jO!W~~'oP!f~!Q!['j~'wOy~~'|O!S~~(RO!Z~~(WOf~~(]O![~~(bO!]~~(gO!d~~(lQx~!c!}(g#R#S(g~(wQ!P~!c!}(r#R#S(r~)SQ!c~!c!}(}#R#S(}~)_Q!`~!c!})Y#R#S)Y~)jQ!b~!c!})e#R#S)e~)uQw~!c!})p#R#S)p~*QQ!a~!c!}){#R#S){~*]Q!R~!c!}*W#R#S*W~*hO{~~*mO|~~*rO!Y~~*wR!Q~!Q![*r#R#S*r#T#o*r~+VOR~~+[O!_~~+aOS~~+fO!O~", tokenizers: [0], topRules: {"Program":[0,6]}, specialized: [{term: 48, get: (value) => spec_identifier[value] || -1}], tokenPrec: 0 }); const knightLanguage = language.LRLanguage.define({ name: "knight", parser: parser.configure({ props: [], }), languageData: { commentTokens: { line: "#" }, closeBrackets: { brackets: ["(", '"', "'"] }, wordChars: "$", }, }); function knight() { return knightLanguage; } exports.knight = knight; exports.knightLanguage = knightLanguage;