{"mappings":"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","sources":["src/src/common/types.ts","src/src/parser/c-ast/dataTypes.ts","src/src/parser/c-ast/expression/unaryExpression.ts","src/src/parser/c-ast/expression/assignment.ts","src/src/parser/c-ast/statement/jumpStatement.ts","src/src/parser/c-ast/statement/selectionStatement.ts","src/src/parser/c-ast/misc.ts","src/src/parser/c-ast/declaration.ts","src/src/parser/c-ast/expression/binaryExpression.ts","src/src/parser/c-ast/expression/constant.ts","src/src/parser/c-ast/statement/iterationStatement.ts","src/src/parser/c-ast/statement/compoundStatement.ts","src/src/parser/c-ast/functionDefinition.ts","src/src/parser/c-ast/expression/identifierExpr.ts","src/src/parser/c-ast/expression/conditionalExpression.ts","src/src/parser/c-ast/expression/stringLiteral.ts","src/src/parser/c-ast/core.ts","src/src/translator/wasm-ast/dataTypes.ts","src/src/translator/wasm-ast/consts.ts","src/src/translator/wasm-ast/expressions.ts","src/src/translator/wasm-ast/control.ts","src/src/translator/wasm-ast/functions.ts","src/src/translator/wasm-ast/numericConversion.ts","src/src/translator/wasm-ast/variables.ts","src/src/translator/wasm-ast/functionTable.ts","src/src/translator/wasm-ast/core.ts","src/src/translator/wasm-ast/memory.ts","src/src/common/constants.ts","src/src/errors.ts","src/src/processor/c-ast/expression/expressions.ts","src/src/processor/c-ast/memory.ts","src/src/processor/util.ts","src/src/processor/c-ast/statement/iterationStatement.ts","src/src/processor/lvalueUtil.ts","src/src/processor/c-ast/statement/selectionStatement.ts","src/src/processor/warningUtil.ts","src/src/processor/processBlockItem.ts","src/src/processor/processFunctionDefinition.ts","src/src/processor/processConstant.ts","src/src/processor/constraintChecks.ts","src/src/processor/processExpression.ts","src/src/processor/byteStrUtil.ts","src/src/processor/processEnumDeclaration.ts","src/src/processor/processDeclaration.ts","src/src/processor/symbolTable.ts","src/src/processor/expressionUtil.ts","src/src/processor/evaluateCompileTimeExpression.ts","src/src/processor/dataTypeUtil.ts","src/src/processor/c-ast/function.ts","src/src/processor/c-ast/statement/jumpStatement.ts","src/src/processor/c-ast/core.ts","src/src/processor/c-ast/expression/constants.ts","src/src/translator/dataTypeUtil.ts","src/src/translator/memoryUtil.ts","src/src/common/utils.ts","src/src/modules/util.ts","src/src/modules/source_stdlib/memory.ts","src/src/modules/types.ts","src/src/modules/math/index.ts","src/src/modules/constants.ts","src/src/modules/stackFrameUtils.ts","src/src/modules/pix_and_flix/index.ts","src/src/modules/source_stdlib/index.ts","src/src/modules/utility/index.ts","src/src/modules/index.ts","src/src/parser/index.ts","src/src/processor/index.ts","src/src/wat-generator/constants.ts","src/src/wat-generator/generateWatStatement.ts","src/src/wat-generator/util.ts","src/src/wat-generator/generateWatExpression.ts","src/src/wat-generator/index.ts","src/src/wat-to-wasm/index.ts","src/src/translator/loopUtil.ts","src/src/translator/translateBinaryExpression.ts","src/src/translator/translateFunctionCall.ts","src/src/translator/constants.ts","src/src/translator/translateSwitchStatement.ts","src/src/translator/translateStatement.ts","src/src/translator/translateUnaryExpression.ts","src/src/translator/translateExpression.ts","src/src/translator/util.ts","src/src/translator/translateFunction.ts","src/src/translator/processImportedFunctions.ts","src/src/translator/index.ts","src/src/compiler.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import ModuleRepository, {\n  ModuleName,\n  ModulesGlobalConfig,\n} from \"~src/modules\";\nimport {\n  compile as originalCompile,\n  compileToWat as originalCompileToWat,\n  generate_C_AST as original_generate_C_AST,\n  generate_WAT_AST as originalGenerate_WAT_AST,\n  generate_processed_C_AST as original_generate_processed_C_AST,\n  WatCompilationResult,\n  CompilationResult,\n} from \"./compiler\";\nimport { calculateNumberOfPagesNeededForBytes } from \"~src/common/utils\";\nimport { WASM_PAGE_SIZE } from \"~src/translator/memoryUtil\";\n\nexport const defaultModuleRepository = new ModuleRepository(); // default repository containing module information without any custom configs or wasm memory\n\nexport function compileToWat(program: string): WatCompilationResult {\n  return originalCompileToWat(program, defaultModuleRepository);\n}\n\nexport function generate_WAT_AST(program: string) {\n  return originalGenerate_WAT_AST(program, defaultModuleRepository);\n}\n\nexport async function compile(program: string): Promise<CompilationResult> {\n  const compilationResult = await originalCompile(\n    program,\n    defaultModuleRepository,\n  );\n\n  // check if compilation failed\n  if (compilationResult.status === \"failure\") {\n    return compilationResult;\n  }\n\n  return compilationResult;\n}\n\n/**\n * Compiles the given C program, including all default imported functions.\n */\nexport async function compileAndRun(\n  program: string,\n  modulesConfig?: ModulesGlobalConfig,\n): Promise<CompilationResult> {\n  const compilationResult = await originalCompile(\n    program,\n    defaultModuleRepository,\n  );\n\n  // check if compilation failed\n  if (compilationResult.status === \"failure\") {\n    return compilationResult;\n  }\n\n  const { wasm, dataSegmentSize, functionTableSize, importedModules } =\n    compilationResult;\n  await runWasm(\n    wasm,\n    dataSegmentSize,\n    functionTableSize,\n    importedModules,\n    modulesConfig,\n  );\n\n  return compilationResult;\n}\n\nexport async function runWasm(\n  wasm: Uint8Array,\n  dataSegmentSize: number,\n  functionTableSize: number,\n  importedModules: ModuleName[],\n  modulesConfig?: ModulesGlobalConfig,\n) {\n  const numberOfInitialPagesNeeded =\n    calculateNumberOfPagesNeededForBytes(dataSegmentSize);\n  const moduleRepository = new ModuleRepository(\n    new WebAssembly.Memory({ initial: numberOfInitialPagesNeeded }),\n    new WebAssembly.Table({ element: \"anyfunc\", initial: functionTableSize }),\n    modulesConfig,\n  );\n  moduleRepository.setStackPointerValue(\n    numberOfInitialPagesNeeded * WASM_PAGE_SIZE,\n  );\n  moduleRepository.setBasePointerValue(\n    numberOfInitialPagesNeeded * WASM_PAGE_SIZE,\n  );\n  moduleRepository.setHeapPointerValue(Math.ceil(dataSegmentSize / 4) * 4); // align to 4 bytes\n\n  const wasmImports =\n    await moduleRepository.createWasmImportsObject(importedModules);\n  await WebAssembly.instantiate(wasm, wasmImports);\n}\n\nexport function generate_processed_C_AST(program: string) {\n  return original_generate_processed_C_AST(program, defaultModuleRepository);\n}\n\nexport function generate_C_AST(program: string) {\n  return original_generate_C_AST(program, defaultModuleRepository);\n}\n"],"names":[],"version":3,"file":"index.d.ts.map"}