123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/
- // src/basic-languages/scheme/scheme.ts
- var conf = {
- comments: {
- lineComment: ";",
- blockComment: ["#|", "|#"]
- },
- brackets: [
- ["(", ")"],
- ["{", "}"],
- ["[", "]"]
- ],
- autoClosingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' }
- ],
- surroundingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' }
- ]
- };
- var language = {
- defaultToken: "",
- ignoreCase: true,
- tokenPostfix: ".scheme",
- brackets: [
- { open: "(", close: ")", token: "delimiter.parenthesis" },
- { open: "{", close: "}", token: "delimiter.curly" },
- { open: "[", close: "]", token: "delimiter.square" }
- ],
- keywords: [
- "case",
- "do",
- "let",
- "loop",
- "if",
- "else",
- "when",
- "cons",
- "car",
- "cdr",
- "cond",
- "lambda",
- "lambda*",
- "syntax-rules",
- "format",
- "set!",
- "quote",
- "eval",
- "append",
- "list",
- "list?",
- "member?",
- "load"
- ],
- constants: ["#t", "#f"],
- operators: ["eq?", "eqv?", "equal?", "and", "or", "not", "null?"],
- tokenizer: {
- root: [
- [/#[xXoObB][0-9a-fA-F]+/, "number.hex"],
- [/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/, "number.float"],
- [
- /(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,
- ["keyword", "white", "variable"]
- ],
- { include: "@whitespace" },
- { include: "@strings" },
- [
- /[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,
- {
- cases: {
- "@keywords": "keyword",
- "@constants": "constant",
- "@operators": "operators",
- "@default": "identifier"
- }
- }
- ]
- ],
- comment: [
- [/[^\|#]+/, "comment"],
- [/#\|/, "comment", "@push"],
- [/\|#/, "comment", "@pop"],
- [/[\|#]/, "comment"]
- ],
- whitespace: [
- [/[ \t\r\n]+/, "white"],
- [/#\|/, "comment", "@comment"],
- [/;.*$/, "comment"]
- ],
- strings: [
- [/"$/, "string", "@popall"],
- [/"(?=.)/, "string", "@multiLineString"]
- ],
- multiLineString: [
- [/[^\\"]+$/, "string", "@popall"],
- [/[^\\"]+/, "string"],
- [/\\./, "string.escape"],
- [/"/, "string", "@popall"],
- [/\\$/, "string"]
- ]
- }
- };
- export {
- conf,
- language
- };
|