Files
ijmuv-blog-release/frontend/assets/scheme-CvqPEyph.js
2026-05-08 13:39:01 +08:00

1 line
6.2 KiB
JavaScript

var e=`builtin`,t=`comment`,n=`string`,r=`symbol`,i=`atom`,a=`number`,o=`bracket`,s=2;function c(e){for(var t={},n=e.split(` `),r=0;r<n.length;++r)t[n[r]]=!0;return t}var l=c(`λ case-lambda call/cc class cond-expand define-class define-values exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax define-macro defmacro delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?`),u=c(`define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless`);function d(e,t,n){this.indent=e,this.type=t,this.prev=n}function f(e,t,n){e.indentStack=new d(t,n,e.indentStack)}function p(e){e.indentStack=e.indentStack.prev}var m=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),h=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),g=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),_=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function v(e){return e.match(m)}function y(e){return e.match(h)}function b(e,t){return t===!0&&e.backUp(1),e.match(_)}function x(e){return e.match(g)}function S(e,t){for(var n,r=!1;(n=e.next())!=null;){if(n==t.token&&!r){t.state.mode=!1;break}r=!r&&n==`\\`}}var C={name:`scheme`,startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1,sExprQuote:!1}},token:function(c,d){if(d.indentStack==null&&c.sol()&&(d.indentation=c.indentation()),c.eatSpace())return null;var m=null;switch(d.mode){case`string`:S(c,{token:`"`,state:d}),m=n;break;case`symbol`:S(c,{token:`|`,state:d}),m=r;break;case`comment`:for(var h,g=!1;(h=c.next())!=null;){if(h==`#`&&g){d.mode=!1;break}g=h==`|`}m=t;break;case`s-expr-comment`:if(d.mode=!1,c.peek()==`(`||c.peek()==`[`)d.sExprComment=0;else{c.eatWhile(/[^\s\(\)\[\]]/),m=t;break}default:var _=c.next();if(_==`"`)d.mode=`string`,m=n;else if(_==`'`)c.peek()==`(`||c.peek()==`[`?(typeof d.sExprQuote!=`number`&&(d.sExprQuote=0),m=i):(c.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),m=i);else if(_==`|`)d.mode=`symbol`,m=r;else if(_==`#`)if(c.eat(`|`))d.mode=`comment`,m=t;else if(c.eat(/[tf]/i))m=i;else if(c.eat(`;`))d.mode=`s-expr-comment`,m=t;else{var C=null,w=!1,T=!0;c.eat(/[ei]/i)?w=!0:c.backUp(1),c.match(/^#b/i)?C=v:c.match(/^#o/i)?C=y:c.match(/^#x/i)?C=x:c.match(/^#d/i)?C=b:c.match(/^[-+0-9.]/,!1)?(T=!1,C=b):w||c.eat(`#`),C!=null&&(T&&!w&&c.match(/^#[ei]/i),C(c)&&(m=a))}else if(/^[-+0-9.]/.test(_)&&b(c,!0))m=a;else if(_==`;`)c.skipToEnd(),m=t;else if(_==`(`||_==`[`){for(var E=``,D=c.column(),O;(O=c.eat(/[^\s\(\[\;\)\]]/))!=null;)E+=O;E.length>0&&u.propertyIsEnumerable(E)?f(d,D+s,_):(c.eatSpace(),c.eol()||c.peek()==`;`?f(d,D+1,_):f(d,D+c.current().length,_)),c.backUp(c.current().length-1),typeof d.sExprComment==`number`&&d.sExprComment++,typeof d.sExprQuote==`number`&&d.sExprQuote++,m=o}else _==`)`||_==`]`?(m=o,d.indentStack!=null&&d.indentStack.type==(_==`)`?`(`:`[`)&&(p(d),typeof d.sExprComment==`number`&&--d.sExprComment==0&&(m=t,d.sExprComment=!1),typeof d.sExprQuote==`number`&&--d.sExprQuote==0&&(m=i,d.sExprQuote=!1))):(c.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),m=l&&l.propertyIsEnumerable(c.current())?e:`variable`)}return typeof d.sExprComment==`number`?t:typeof d.sExprQuote==`number`?i:m},indent:function(e){return e.indentStack==null?e.indentation:e.indentStack.indent},languageData:{closeBrackets:{brackets:[`(`,`[`,`{`,`"`]},commentTokens:{line:`;;`}}};export{C as scheme};