var p={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},d={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},l=/[+\-*&^%:=<>!|\/]/,i;function u(n,t){var e=n.next();if(e=='"'||e=="'"||e=="`")return t.tokenize=m(e),t.tokenize(n,t);if(/[\d\.]/.test(e))return e=="."?n.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):e=="0"?n.match(/^[xX][0-9a-fA-F]+/)||n.match(/^0[0-7]+/):n.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(e))return i=e,null;if(e=="/"){if(n.eat("*"))return t.tokenize=f,f(n,t);if(n.eat("/"))return n.skipToEnd(),"comment"}if(l.test(e))return n.eatWhile(l),"operator";n.eatWhile(/[\w\$_\xa1-\uffff]/);var r=n.current();return p.propertyIsEnumerable(r)?((r=="case"||r=="default")&&(i="case"),"keyword"):d.propertyIsEnumerable(r)?"atom":"variable"}function m(n){return function(t,e){for(var r=!1,a,o=!1;(a=t.next())!=null;){if(a==n&&!r){o=!0;break}r=!r&&n!="`"&&a=="\\"}return(o||!(r||n=="`"))&&(e.tokenize=u),"string"}}function f(n,t){for(var e=!1,r;r=n.next();){if(r=="/"&&e){t.tokenize=u;break}e=r=="*"}return"comment"}function s(n,t,e,r,a){this.indented=n,this.column=t,this.type=e,this.align=r,this.prev=a}function c(n,t,e){return n.context=new s(n.indented,t,e,null,n.context)}function k(n){if(n.context.prev){var t=n.context.type;return(t==")"||t=="]"||t=="}")&&(n.indented=n.context.indented),n.context=n.context.prev}}const x={name:"go",startState:function(n){return{tokenize:null,context:new s(-n,0,"top",!1),indented:0,startOfLine:!0}},token:function(n,t){var e=t.context;if(n.sol()&&(e.align==null&&(e.align=!1),t.indented=n.indentation(),t.startOfLine=!0,e.type=="case"&&(e.type="}")),n.eatSpace())return null;i=null;var r=(t.tokenize||u)(n,t);return r=="comment"||(e.align==null&&(e.align=!0),i=="{"?c(t,n.column(),"}"):i=="["?c(t,n.column(),"]"):i=="("?c(t,n.column(),")"):i=="case"?e.type="case":(i=="}"&&e.type=="}"||i==e.type)&&k(t),t.startOfLine=!1),r},indent:function(n,t,e){if(n.tokenize!=u&&n.tokenize!=null)return null;var r=n.context,a=t&&t.charAt(0);if(r.type=="case"&&/^(?:case|default)\b/.test(t))return r.indented;var o=a==r.type;return r.align?r.column+(o?0:1):r.indented+(o?0:e.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};export{x as go};