(stream,state)
| 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 | } |
nothing calls this directly
no outgoing calls
no test coverage detected