MCPcopy Create free account
hub / github.com/TruthHun/BookStack / tokenBase

Function tokenBase

static/editor.md/lib/codemirror/mode/q/q.js:20–61  ·  view source on GitHub ↗
(stream,state)

Source from the content-addressed store, hash-verified

18 E=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;
19 function buildRE(w){return new RegExp("^("+w.join("|")+")$");}
20 function tokenBase(stream,state){
21 var sol=stream.sol(),c=stream.next();
22 curPunc=null;
23 if(sol)
24 if(c=="/")
25 return(state.tokenize=tokenLineComment)(stream,state);
26 else if(c=="\\"){
27 if(stream.eol()||/\s/.test(stream.peek()))
28 return stream.skipToEnd(),/^\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream, state):state.tokenize=tokenBase,"comment";
29 else
30 return state.tokenize=tokenBase,"builtin";
31 }
32 if(/\s/.test(c))
33 return stream.peek()=="/"?(stream.skipToEnd(),"comment"):"whitespace";
34 if(c=='"')
35 return(state.tokenize=tokenString)(stream,state);
36 if(c=='`')
37 return stream.eatWhile(/[A-Z|a-z|\d|_|:|\/|\.]/),"symbol";
38 if(("."==c&&/\d/.test(stream.peek()))||/\d/.test(c)){
39 var t=null;
40 stream.backUp(1);
41 if(stream.match(/^\d{4}\.\d{2}(m|\.\d{2}([D|T](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)
42 || stream.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)
43 || stream.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)
44 || stream.match(/^\d+[ptuv]{1}/))
45 t="temporal";
46 else if(stream.match(/^0[NwW]{1}/)
47 || stream.match(/^0x[\d|a-f|A-F]*/)
48 || stream.match(/^[0|1]+[b]{1}/)
49 || stream.match(/^\d+[chijn]{1}/)
50 || stream.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))
51 t="number";
52 return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),"error");
53 }
54 if(/[A-Z|a-z]|\./.test(c))
55 return stream.eatWhile(/[A-Z|a-z|\.|_|\d]/),keywords.test(stream.current())?"keyword":"variable";
56 if(/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(c))
57 return null;
58 if(/[{}\(\[\]\)]/.test(c))
59 return null;
60 return"error";
61 }
62 function tokenLineComment(stream,state){
63 return stream.skipToEnd(),/\/\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),"comment";
64 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected