UNPKG

js-slang

Version:

Javascript-based implementations of Source, written in Typescript

70 lines 3.53 kB
"use strict"; var _a, _b, _c; Object.defineProperty(exports, "__esModule", { value: true }); exports.isPythonLanguage = exports.pyLanguages = exports.isSchemeLanguage = exports.scmLanguages = exports.isSourceLanguage = exports.sourceLanguages = exports.Variant = exports.Chapter = void 0; exports.isSupportedLanguageCombo = isSupportedLanguageCombo; var Chapter; (function (Chapter) { Chapter[Chapter["SOURCE_1"] = 1] = "SOURCE_1"; Chapter[Chapter["SOURCE_2"] = 2] = "SOURCE_2"; Chapter[Chapter["SOURCE_3"] = 3] = "SOURCE_3"; Chapter[Chapter["SOURCE_4"] = 4] = "SOURCE_4"; Chapter[Chapter["FULL_JS"] = -1] = "FULL_JS"; Chapter[Chapter["HTML"] = -2] = "HTML"; Chapter[Chapter["FULL_TS"] = -3] = "FULL_TS"; Chapter[Chapter["PYTHON_1"] = -4] = "PYTHON_1"; Chapter[Chapter["PYTHON_2"] = -5] = "PYTHON_2"; Chapter[Chapter["PYTHON_3"] = -6] = "PYTHON_3"; Chapter[Chapter["PYTHON_4"] = -7] = "PYTHON_4"; Chapter[Chapter["FULL_PYTHON"] = -8] = "FULL_PYTHON"; Chapter[Chapter["SCHEME_1"] = -9] = "SCHEME_1"; Chapter[Chapter["SCHEME_2"] = -10] = "SCHEME_2"; Chapter[Chapter["SCHEME_3"] = -11] = "SCHEME_3"; Chapter[Chapter["SCHEME_4"] = -12] = "SCHEME_4"; Chapter[Chapter["FULL_SCHEME"] = -13] = "FULL_SCHEME"; Chapter[Chapter["FULL_C"] = -14] = "FULL_C"; Chapter[Chapter["FULL_JAVA"] = -15] = "FULL_JAVA"; Chapter[Chapter["LIBRARY_PARSER"] = 100] = "LIBRARY_PARSER"; })(Chapter || (exports.Chapter = Chapter = {})); var Variant; (function (Variant) { Variant["DEFAULT"] = "default"; Variant["TYPED"] = "typed"; Variant["NATIVE"] = "native"; Variant["WASM"] = "wasm"; Variant["EXPLICIT_CONTROL"] = "explicit-control"; })(Variant || (exports.Variant = Variant = {})); function defineLanguages(languages) { return { languages, typeguard: (lang) => { return languages.some(({ chapter, variant }) => lang.chapter === chapter && lang.variant === variant); } }; } _a = defineLanguages([ { chapter: Chapter.SOURCE_1, variant: Variant.DEFAULT }, { chapter: Chapter.SOURCE_1, variant: Variant.TYPED }, { chapter: Chapter.SOURCE_1, variant: Variant.WASM }, { chapter: Chapter.SOURCE_2, variant: Variant.DEFAULT }, { chapter: Chapter.SOURCE_2, variant: Variant.TYPED }, { chapter: Chapter.SOURCE_3, variant: Variant.DEFAULT }, { chapter: Chapter.SOURCE_3, variant: Variant.TYPED }, { chapter: Chapter.SOURCE_4, variant: Variant.DEFAULT }, { chapter: Chapter.SOURCE_4, variant: Variant.TYPED }, { chapter: Chapter.SOURCE_4, variant: Variant.EXPLICIT_CONTROL } ]), exports.sourceLanguages = _a.languages, exports.isSourceLanguage = _a.typeguard; _b = defineLanguages([ { chapter: Chapter.SCHEME_1, variant: Variant.EXPLICIT_CONTROL }, { chapter: Chapter.SCHEME_2, variant: Variant.EXPLICIT_CONTROL }, { chapter: Chapter.SCHEME_3, variant: Variant.EXPLICIT_CONTROL }, { chapter: Chapter.SCHEME_4, variant: Variant.EXPLICIT_CONTROL }, { chapter: Chapter.FULL_SCHEME, variant: Variant.EXPLICIT_CONTROL } ]), exports.scmLanguages = _b.languages, exports.isSchemeLanguage = _b.typeguard; _c = defineLanguages([ { chapter: Chapter.PYTHON_1, variant: Variant.DEFAULT } ]), exports.pyLanguages = _c.languages, exports.isPythonLanguage = _c.typeguard; function isSupportedLanguageCombo(lang) { return (0, exports.isSourceLanguage)(lang) || (0, exports.isPythonLanguage)(lang) || (0, exports.isSchemeLanguage)(lang); } //# sourceMappingURL=langs.js.map