MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / tokenBase

Function tokenBase

lib/web/CodeMirror/mode/css/css.js:40–92  ·  view source on GitHub ↗
(stream, state)

Source from the content-addressed store, hash-verified

38 // Tokenizers
39
40 function tokenBase(stream, state) {
41 var ch = stream.next();
42 if (tokenHooks[ch]) {
43 var result = tokenHooks[ch](stream, state);
44 if (result !== false) return result;
45 }
46 if (ch == "@") {
47 stream.eatWhile(/[\w\\\-]/);
48 return ret("def", stream.current());
49 } else if (ch == "=" || (ch == "~" || ch == "|") && stream.eat("=")) {
50 return ret(null, "compare");
51 } else if (ch == "\"" || ch == "'") {
52 state.tokenize = tokenString(ch);
53 return state.tokenize(stream, state);
54 } else if (ch == "#") {
55 stream.eatWhile(/[\w\\\-]/);
56 return ret("atom", "hash");
57 } else if (ch == "!") {
58 stream.match(/^\s*\w*/);
59 return ret("keyword", "important");
60 } else if (/\d/.test(ch) || ch == "." && stream.eat(/\d/)) {
61 stream.eatWhile(/[\w.%]/);
62 return ret("number", "unit");
63 } else if (ch === "-") {
64 if (/[\d.]/.test(stream.peek())) {
65 stream.eatWhile(/[\w.%]/);
66 return ret("number", "unit");
67 } else if (stream.match(/^-[\w\\\-]*/)) {
68 stream.eatWhile(/[\w\\\-]/);
69 if (stream.match(/^\s*:/, false))
70 return ret("variable-2", "variable-definition");
71 return ret("variable-2", "variable");
72 } else if (stream.match(/^\w+-/)) {
73 return ret("meta", "meta");
74 }
75 } else if (/[,+>*\/]/.test(ch)) {
76 return ret(null, "select-op");
77 } else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {
78 return ret("qualifier", "qualifier");
79 } else if (/[:;{}\[\]\(\)]/.test(ch)) {
80 return ret(null, ch);
81 } else if (stream.match(/[\w-.]+(?=\()/)) {
82 if (/^(url(-prefix)?|domain|regexp)$/.test(stream.current().toLowerCase())) {
83 state.tokenize = tokenParenthesized;
84 }
85 return ret("variable callee", "variable");
86 } else if (/[\w\\\-]/.test(ch)) {
87 stream.eatWhile(/[\w\\\-]/);
88 return ret("property", "word");
89 } else {
90 return ret(null, null);
91 }
92 }
93
94 function tokenString(quote) {
95 return function(stream, state) {

Callers

nothing calls this directly

Calls 9

eatWhileMethod · 0.80
currentMethod · 0.80
eatMethod · 0.80
retFunction · 0.70
tokenStringFunction · 0.70
nextMethod · 0.65
matchMethod · 0.45
testMethod · 0.45
peekMethod · 0.45

Tested by

no test coverage detected