"use strict";(self.rspackChunk_jupyterlab_application_top=self.rspackChunk_jupyterlab_application_top||[]).push([[5536],{8368(t,e,n){n.d(e,{smalltalk:()=>x});var a=/[+\-\/\\*~<>=@%|&?!.,:;^]/,i=/true|false|nil|self|super|thisContext/,r=function(t,e){this.next=t,this.parent=e},s=function(t,e,n){this.name=t,this.context=e,this.eos=n},l=function(){this.context=new r(o,null),this.expectVariable=!0,this.indentation=0,this.userIndentationDelta=0};l.prototype.userIndent=function(t,e){this.userIndentationDelta=t>0?t/e-this.indentation:0};var o=function(t,e,n){var l=new s(null,e,!1),o=t.next();return'"'===o?l=u(t,new r(u,e)):"'"===o?l=c(t,new r(c,e)):"#"===o?"'"===t.peek()?(t.next(),l=p(t,new r(p,e))):t.eatWhile(/[^\s.{}\[\]()]/)?l.name="string.special":l.name="meta":"$"===o?("<"===t.next()&&(t.eatWhile(/[^\s>]/),t.next()),l.name="string.special"):"|"===o&&n.expectVariable?l.context=new r(h,e):/[\[\]{}()]/.test(o)?(l.name="bracket",l.eos=/[\[{(]/.test(o),"["===o?n.indentation++:"]"===o&&(n.indentation=Math.max(0,n.indentation-1))):a.test(o)?(t.eatWhile(a),l.name="operator",l.eos=";"!==o):/\d/.test(o)?(t.eatWhile(/[\w\d]/),l.name="number"):/[\w_]/.test(o)?(t.eatWhile(/[\w\d_]/),l.name=n.expectVariable?i.test(t.current())?"keyword":"variable":null):l.eos=n.expectVariable,l},u=function(t,e){return t.eatWhile(/[^"]/),new s("comment",t.eat('"')?e.parent:e,!0)},c=function(t,e){return t.eatWhile(/[^']/),new s("string",t.eat("'")?e.parent:e,!1)},p=function(t,e){return t.eatWhile(/[^']/),new s("string.special",t.eat("'")?e.parent:e,!1)},h=function(t,e){var n=new s(null,e,!1);return"|"===t.next()?(n.context=e.parent,n.eos=!0):(t.eatWhile(/[^|]/),n.name="variable"),n};let x={name:"smalltalk",startState:function(){return new l},token:function(t,e){if(e.userIndent(t.indentation(),t.indentUnit),t.eatSpace())return null;var n=e.context.next(t,e.context,e);return e.context=n.context,e.expectVariable=n.eos,n.name},blankLine:function(t,e){t.userIndent(0,e)},indent:function(t,e,n){var a=t.context.next===o&&e&&"]"===e.charAt(0)?-1:t.userIndentationDelta;return(t.indentation+a)*n.unit},languageData:{indentOnInput:/^\s*\]$/}}}}]);
//# sourceMappingURL=5536.8f19c3d562d9d325.js.map?v=8f19c3d562d9d325