You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
1.8 KiB
1 lines
1.8 KiB
function a(e,t,r){return t(r),r(e,t)}var c=/[a-z]/,p=/[A-Z]/,u=/[a-zA-Z0-9_]/,n=/[0-9]/,m=/[0-9A-Fa-f]/,f=/[-&*+.\\/<>=?^|:]/,x=/[(),[\]{}]/,h=/[ \v\f]/;function i(){return function(e,t){if(e.eatWhile(h))return null;var r=e.next();if(x.test(r))return r==="{"&&e.eat("-")?a(e,t,s(1)):r==="["&&e.match("glsl|")?a(e,t,d):"builtin";if(r==="'")return a(e,t,v);if(r==='"')return e.eat('"')?e.eat('"')?a(e,t,k):"string":a(e,t,g);if(p.test(r))return e.eatWhile(u),"type";if(c.test(r)){var o=e.pos===1;return e.eatWhile(u),o?"def":"variable"}if(n.test(r)){if(r==="0"){if(e.eat(/[xX]/))return e.eatWhile(m),"number"}else e.eatWhile(n);return e.eat(".")&&e.eatWhile(n),e.eat(/[eE]/)&&(e.eat(/[-+]/),e.eatWhile(n)),"number"}return f.test(r)?r==="-"&&e.eat("-")?(e.skipToEnd(),"comment"):(e.eatWhile(f),"keyword"):r==="_"?"keyword":"error"}}function s(e){return e==0?i():function(t,r){for(;!t.eol();){var o=t.next();if(o=="{"&&t.eat("-"))++e;else if(o=="-"&&t.eat("}")&&(--e,e===0))return r(i()),"comment"}return r(s(e)),"comment"}}function k(e,t){for(;!e.eol();){var r=e.next();if(r==='"'&&e.eat('"')&&e.eat('"'))return t(i()),"string"}return"string"}function g(e,t){for(;e.skipTo('\\"');)e.next(),e.next();return e.skipTo('"')?(e.next(),t(i()),"string"):(e.skipToEnd(),t(i()),"error")}function v(e,t){for(;e.skipTo("\\'");)e.next(),e.next();return e.skipTo("'")?(e.next(),t(i()),"string"):(e.skipToEnd(),t(i()),"error")}function d(e,t){for(;!e.eol();){var r=e.next();if(r==="|"&&e.eat("]"))return t(i()),"string"}return"string"}var W={case:1,of:1,as:1,if:1,then:1,else:1,let:1,in:1,type:1,alias:1,module:1,where:1,import:1,exposing:1,port:1};const y={name:"elm",startState:function(){return{f:i()}},copyState:function(e){return{f:e.f}},token:function(e,t){var r=t.f(e,function(l){t.f=l}),o=e.current();return W.hasOwnProperty(o)?"keyword":r},languageData:{commentTokens:{line:"--"}}};export{y as elm};
|