openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

scheme.min.js (6168B)


      1 (function(e){if(typeof exports=='object'&&typeof module=='object')e(require('../../lib/codemirror'));else if(typeof define=='function'&&define.amd)define(['../../lib/codemirror'],e);else e(CodeMirror)})(function(e){'use strict';e.defineMode('scheme',function(){var p='builtin',e='comment',r='string',a='atom',c='number',l='bracket',h=2;function s(e){var i={},n=e.split(' ');for(var t=0;t<n.length;++t)i[n[t]]=!0;return i};var n=s('λ case-lambda call/cc class define-class 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 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?'),m=s('define let letrec let* lambda');function g(e,t,i){this.indent=e;this.type=t;this.prev=i};function t(e,t,i){e.indentStack=new g(t,i,e.indentStack)};function x(e){e.indentStack=e.indentStack.prev};var o=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),d=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),f=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),u=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 b(e){return e.match(o)};function v(e){return e.match(d)};function i(e,t){if(t===!0){e.backUp(1)};return e.match(u)};function k(e){return e.match(f)};return{startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1}},token:function(s,o){if(o.indentStack==null&&s.sol()){o.indentation=s.indentation()};if(s.eatSpace()){return null};var d=null;switch(o.mode){case'string':var g,S=!1;while((g=s.next())!=null){if(g=='"'&&!S){o.mode=!1;break};S=!S&&g=='\\'};d=r;break;case'comment':var g,M=!1;while((g=s.next())!=null){if(g=='#'&&M){o.mode=!1;break};M=(g=='|')};d=e;break;case's-expr-comment':o.mode=!1;if(s.peek()=='('||s.peek()=='['){o.sExprComment=0}
      2 else{s.eatWhile(/[^/s]/);d=e;break};default:var f=s.next();if(f=='"'){o.mode='string';d=r}
      3 else if(f=='\''){d=a}
      4 else if(f=='#'){if(s.eat('|')){o.mode='comment';d=e}
      5 else if(s.eat(/[tf]/i)){d=a}
      6 else if(s.eat(';')){o.mode='s-expr-comment';d=e}
      7 else{var u=null,E=!1,C=!0;if(s.eat(/[ei]/i)){E=!0}
      8 else{s.backUp(1)};if(s.match(/^#b/i)){u=b}
      9 else if(s.match(/^#o/i)){u=v}
     10 else if(s.match(/^#x/i)){u=k}
     11 else if(s.match(/^#d/i)){u=i}
     12 else if(s.match(/^[-+0-9.]/,!1)){C=!1;u=i}
     13 else if(!E){s.eat('#')};if(u!=null){if(C&&!E){s.match(/^#[ei]/i)};if(u(s))d=c}}}
     14 else if(/^[-+0-9.]/.test(f)&&i(s,!0)){d=c}
     15 else if(f==';'){s.skipToEnd();d=e}
     16 else if(f=='('||f=='['){var y='',w=s.column(),q;while((q=s.eat(/[^\s\(\[\;\)\]]/))!=null){y+=q};if(y.length>0&&m.propertyIsEnumerable(y)){t(o,w+h,f)}
     17 else{s.eatSpace();if(s.eol()||s.peek()==';'){t(o,w+1,f)}
     18 else{t(o,w+s.current().length,f)}};s.backUp(s.current().length-1);if(typeof o.sExprComment=='number')o.sExprComment++;d=l}
     19 else if(f==')'||f==']'){d=l;if(o.indentStack!=null&&o.indentStack.type==(f==')'?'(':'[')){x(o);if(typeof o.sExprComment=='number'){if(--o.sExprComment==0){d=e;o.sExprComment=!1}}}}
     20 else{s.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/);if(n&&n.propertyIsEnumerable(s.current())){d=p}
     21 else d='variable'}};return(typeof o.sExprComment=='number')?e:d},indent:function(e){if(e.indentStack==null)return e.indentation;return e.indentStack.indent},closeBrackets:{pairs:'()[]{}""'},lineComment:';;'}});e.defineMIME('text/x-scheme','scheme')});