{"version":3,"file":"scheme.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/scheme.js"],"sourcesContent":["/*\nLanguage: Scheme\nDescription: Scheme is a programming language in the Lisp family.\n             (keywords based on http://community.schemewiki.org/?scheme-keywords)\nAuthor: JP Verkamp <me@jverkamp.com>\nContributors: Ivan Sagalaev <maniac@softwaremaniacs.org>\nOrigin: clojure.js\nWebsite: http://community.schemewiki.org/?what-is-scheme\nCategory: lisp\n*/\n\nfunction scheme(hljs) {\n  const SCHEME_IDENT_RE = '[^\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}\",\\'`;#|\\\\\\\\\\\\s]+';\n  const SCHEME_SIMPLE_NUMBER_RE = '(-|\\\\+)?\\\\d+([./]\\\\d+)?';\n  const SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i';\n  const KEYWORDS = {\n    $pattern: SCHEME_IDENT_RE,\n    built_in:\n      'case-lambda call/cc class define-class exit-handler field import '\n      + 'inherit init-field interface let*-values let-values let/ec mixin '\n      + 'opt-lambda override protect provide public rename require '\n      + 'require-for-syntax syntax syntax-case syntax-error unit/sig unless '\n      + 'when with-syntax and begin call-with-current-continuation '\n      + 'call-with-input-file call-with-output-file case cond define '\n      + 'define-syntax delay do dynamic-wind else for-each if lambda let let* '\n      + 'let-syntax letrec letrec-syntax map or syntax-rules \\' * + , ,@ - ... / '\n      + '; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan '\n      + 'boolean? caar cadr call-with-input-file call-with-output-file '\n      + 'call-with-values car cdddar cddddr cdr ceiling char->integer '\n      + 'char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? '\n      + 'char-downcase char-lower-case? char-numeric? char-ready? char-upcase '\n      + 'char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? '\n      + 'char? close-input-port close-output-port complex? cons cos '\n      + 'current-input-port current-output-port denominator display eof-object? '\n      + 'eq? equal? eqv? eval even? exact->inexact exact? exp expt floor '\n      + 'force gcd imag-part inexact->exact inexact? input-port? integer->char '\n      + 'integer? interaction-environment lcm length list list->string '\n      + 'list->vector list-ref list-tail list? load log magnitude make-polar '\n      + 'make-rectangular make-string make-vector max member memq memv min '\n      + 'modulo negative? newline not null-environment null? number->string '\n      + 'number? numerator odd? open-input-file open-output-file output-port? '\n      + 'pair? peek-char port? positive? procedure? quasiquote quote quotient '\n      + 'rational? rationalize read read-char real-part real? remainder reverse '\n      + 'round scheme-report-environment set! set-car! set-cdr! sin sqrt string '\n      + 'string->list string->number string->symbol string-append string-ci<=? '\n      + 'string-ci<? string-ci=? string-ci>=? string-ci>? string-copy '\n      + 'string-fill! string-length string-ref string-set! string<=? string<? '\n      + 'string=? string>=? string>? string? substring symbol->string symbol? '\n      + 'tan transcript-off transcript-on truncate values vector '\n      + 'vector->list vector-fill! vector-length vector-ref vector-set! '\n      + 'with-input-from-file with-output-to-file write write-char zero?'\n  };\n\n  const LITERAL = {\n    className: 'literal',\n    begin: '(#t|#f|#\\\\\\\\' + SCHEME_IDENT_RE + '|#\\\\\\\\.)'\n  };\n\n  const NUMBER = {\n    className: 'number',\n    variants: [\n      {\n        begin: SCHEME_SIMPLE_NUMBER_RE,\n        relevance: 0\n      },\n      {\n        begin: SCHEME_COMPLEX_NUMBER_RE,\n        relevance: 0\n      },\n      { begin: '#b[0-1]+(/[0-1]+)?' },\n      { begin: '#o[0-7]+(/[0-7]+)?' },\n      { begin: '#x[0-9a-f]+(/[0-9a-f]+)?' }\n    ]\n  };\n\n  const STRING = hljs.QUOTE_STRING_MODE;\n\n  const COMMENT_MODES = [\n    hljs.COMMENT(\n      ';',\n      '$',\n      { relevance: 0 }\n    ),\n    hljs.COMMENT('#\\\\|', '\\\\|#')\n  ];\n\n  const IDENT = {\n    begin: SCHEME_IDENT_RE,\n    relevance: 0\n  };\n\n  const QUOTED_IDENT = {\n    className: 'symbol',\n    begin: '\\'' + SCHEME_IDENT_RE\n  };\n\n  const BODY = {\n    endsWithParent: true,\n    relevance: 0\n  };\n\n  const QUOTED_LIST = {\n    variants: [\n      { begin: /'/ },\n      { begin: '`' }\n    ],\n    contains: [\n      {\n        begin: '\\\\(',\n        end: '\\\\)',\n        contains: [\n          'self',\n          LITERAL,\n          STRING,\n          NUMBER,\n          IDENT,\n          QUOTED_IDENT\n        ]\n      }\n    ]\n  };\n\n  const NAME = {\n    className: 'name',\n    relevance: 0,\n    begin: SCHEME_IDENT_RE,\n    keywords: KEYWORDS\n  };\n\n  const LAMBDA = {\n    begin: /lambda/,\n    endsWithParent: true,\n    returnBegin: true,\n    contains: [\n      NAME,\n      {\n        endsParent: true,\n        variants: [\n          {\n            begin: /\\(/,\n            end: /\\)/\n          },\n          {\n            begin: /\\[/,\n            end: /\\]/\n          }\n        ],\n        contains: [ IDENT ]\n      }\n    ]\n  };\n\n  const LIST = {\n    variants: [\n      {\n        begin: '\\\\(',\n        end: '\\\\)'\n      },\n      {\n        begin: '\\\\[',\n        end: '\\\\]'\n      }\n    ],\n    contains: [\n      LAMBDA,\n      NAME,\n      BODY\n    ]\n  };\n\n  BODY.contains = [\n    LITERAL,\n    NUMBER,\n    STRING,\n    IDENT,\n    QUOTED_IDENT,\n    QUOTED_LIST,\n    LIST\n  ].concat(COMMENT_MODES);\n\n  return {\n    name: 'Scheme',\n    aliases: ['scm'],\n    illegal: /\\S/,\n    contains: [\n      hljs.SHEBANG(),\n      NUMBER,\n      STRING,\n      QUOTED_IDENT,\n      QUOTED_LIST,\n      LIST\n    ].concat(COMMENT_MODES)\n  };\n}\n\nmodule.exports = scheme;\n"],"names":["scheme","hljs","SCHEME_IDENT_RE","SCHEME_SIMPLE_NUMBER_RE","SCHEME_COMPLEX_NUMBER_RE","KEYWORDS","LITERAL","NUMBER","STRING","COMMENT_MODES","IDENT","QUOTED_IDENT","BODY","QUOTED_LIST","NAME","LIST","scheme_1"],"mappings":";;;;AAWA,WAASA,EAAOC,GAAM;AACpB,UAAMC,IAAkB,yCAClBC,IAA0B,2BAC1BC,IAA2BD,IAA0B,WAAWA,IAA0B,KAC1FE,IAAW;AAAA,MACf,UAAUH;AAAA,MACV,UACE;AAAA,IAiCN,GAEQI,IAAU;AAAA,MACd,WAAW;AAAA,MACX,OAAO,iBAAiBJ,IAAkB;AAAA,IAC9C,GAEQK,IAAS;AAAA,MACb,WAAW;AAAA,MACX,UAAU;AAAA,QACR;AAAA,UACE,OAAOJ;AAAA,UACP,WAAW;AAAA;QAEb;AAAA,UACE,OAAOC;AAAA,UACP,WAAW;AAAA;QAEb,EAAE,OAAO,qBAAoB;AAAA,QAC7B,EAAE,OAAO,qBAAoB;AAAA,QAC7B,EAAE,OAAO,2BAA0B;AAAA;IAEzC,GAEQI,IAASP,EAAK,mBAEdQ,IAAgB;AAAA,MACpBR,EAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA,EAAE,WAAW,EAAC;AAAA;MAEhBA,EAAK,QAAQ,QAAQ,MAAM;AAAA,IAC/B,GAEQS,IAAQ;AAAA,MACZ,OAAOR;AAAA,MACP,WAAW;AAAA,IACf,GAEQS,IAAe;AAAA,MACnB,WAAW;AAAA,MACX,OAAO,MAAOT;AAAA,IAClB,GAEQU,IAAO;AAAA,MACX,gBAAgB;AAAA,MAChB,WAAW;AAAA,IACf,GAEQC,IAAc;AAAA,MAClB,UAAU;AAAA,QACR,EAAE,OAAO,IAAG;AAAA,QACZ,EAAE,OAAO,IAAG;AAAA;MAEd,UAAU;AAAA,QACR;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA,UACL,UAAU;AAAA,YACR;AAAA,YACAP;AAAA,YACAE;AAAA,YACAD;AAAA,YACAG;AAAA,YACAC;AAAA;;;IAIV,GAEQG,IAAO;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAOZ;AAAA,MACP,UAAUG;AAAA,IACd,GAyBQU,IAAO;AAAA,MACX,UAAU;AAAA,QACR;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA;QAEP;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA;;MAGT,UAAU;AAAA,QAlCG;AAAA,UACb,OAAO;AAAA,UACP,gBAAgB;AAAA,UAChB,aAAa;AAAA,UACb,UAAU;AAAA,YACRD;AAAA,YACA;AAAA,cACE,YAAY;AAAA,cACZ,UAAU;AAAA,gBACR;AAAA,kBACE,OAAO;AAAA,kBACP,KAAK;AAAA;gBAEP;AAAA,kBACE,OAAO;AAAA,kBACP,KAAK;AAAA;;cAGT,UAAU,CAAEJ,CAAK;AAAA;;QAGzB;AAAA,QAeMI;AAAA,QACAF;AAAA;IAEN;AAEE,WAAAA,EAAK,WAAW;AAAA,MACdN;AAAA,MACAC;AAAA,MACAC;AAAA,MACAE;AAAA,MACAC;AAAA,MACAE;AAAA,MACAE;AAAA,IACJ,EAAI,OAAON,CAAa,GAEf;AAAA,MACL,MAAM;AAAA,MACN,SAAS,CAAC,KAAK;AAAA,MACf,SAAS;AAAA,MACT,UAAU;AAAA,QACRR,EAAK,QAAO;AAAA,QACZM;AAAA,QACAC;AAAA,QACAG;AAAA,QACAE;AAAA,QACAE;AAAA,MACN,EAAM,OAAON,CAAa;AAAA,IAC1B;AAAA,EACA;AAEA,SAAAO,IAAiBhB;;","x_google_ignoreList":[0]}