import * as es from 'estree' import { AcornOptions } from './parser/types' import { Chapter, Language, Variant } from './types' export const DEFAULT_ECMA_VERSION = 6 export const ACORN_PARSE_OPTIONS: AcornOptions = { ecmaVersion: DEFAULT_ECMA_VERSION } export const REQUIRE_PROVIDER_ID = 'requireProvider' export const CUT = 'cut' // cut operator for Source 4.3 export const TRY_AGAIN = 'retry' // command for Source 4.3 export const GLOBAL = typeof window === 'undefined' ? global : window export const NATIVE_STORAGE_ID = 'nativeStorage' export const MAX_LIST_DISPLAY_LENGTH = 100 export const UNKNOWN_LOCATION: es.SourceLocation = { start: { line: -1, column: -1 }, end: { line: -1, column: -1 } } export const JSSLANG_PROPERTIES = { maxExecTime: 1000, factorToIncreaseBy: 10 } export const sourceLanguages: Language[] = [ { 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 } ] export const scmLanguages: Language[] = [ { 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 } ] export const pyLanguages: Language[] = [{ chapter: Chapter.PYTHON_1, variant: Variant.DEFAULT }]