nex-lang
Version:
A linguagem de programação Nex com palavras-chave criativas.
42 lines (39 loc) • 2.3 kB
JavaScript
// Função para traduzir de JavaScript para Nex
const translateToNex = (jsCode) => {
let nexCode = jsCode;
nexCode = nexCode.replace(/\blet\b/g, 'flux');
nexCode = nexCode.replace(/\bconst\b/g, 'essência');
nexCode = nexCode.replace(/console\.log([^)]+)/g, 'ecoar($1)');
nexCode = nexCode.replace(/function\s+(\w+)\s*([^)]*)\s*{([^}]+)}/g, 'invocar $1($2) {$3}');
nexCode = nexCode.replace(/return\s+([^;]+);/g, 'retornar $1;');
nexCode = nexCode.replace(/if\s*([^)]+)\s*{([^}]+)}/g, 'despertar($1) {$2}');
nexCode = nexCode.replace(/else if\s*([^)]+)\s*{([^}]+)}/g, 'rastro($1) {$2}');
nexCode = nexCode.replace(/else\s*{([^}]+)}/g, 'caos {$1}');
nexCode = nexCode.replace(/for\s*([^;]+); ([^;]+); ([^;]+)\s*{([^}]+)}/g, 'ciclo($1; $2; $3) {$4}');
nexCode = nexCode.replace(/\btry\b/g, 'tentar');
nexCode = nexCode.replace(/\bcatch\b/g, 'capturar');
nexCode = nexCode.replace(/\bthrow\b/g, 'lançar');
nexCode = nexCode.replace(/\brequire\b/g, 'invocar-artefato');
nexCode = nexCode.replace(/\bimport\b/g, 'trazer-energia');
return nexCode;
};
// Função para traduzir de Nex para JavaScript
const translateToJS = (nexCode) => {
let jsCode = nexCode;
jsCode = jsCode.replace(/\bflux\b/g, 'let');
jsCode = jsCode.replace(/\bessência\b/g, 'const');
jsCode = jsCode.replace(/ecoar([^)]+)/g, 'console.log($1)');
jsCode = jsCode.replace(/invocar\s+(\w+)\s*([^)]*)\s*{([^}]+)}/g, 'function $1($2) {$3}');
jsCode = jsCode.replace(/retornar\s+([^;]+);/g, 'return $1;');
jsCode = jsCode.replace(/despertar([^)]+)\s*{([^}]+)}/g, 'if ($1) {$2}');
jsCode = jsCode.replace(/rastro([^)]+)\s*{([^}]+)}/g, 'else if ($1) {$2}');
jsCode = jsCode.replace(/caos\s*{([^}]+)}/g, 'else {$1}');
jsCode = jsCode.replace(/ciclo([^;]+); ([^;]+); ([^;]+)\s*{([^}]+)}/g, 'for($1; $2; $3) {$4}');
jsCode = jsCode.replace(/\btentar\b/g, 'try');
jsCode = jsCode.replace(/\bcapturar\b/g, 'catch');
jsCode = jsCode.replace(/\blançar\b/g, 'throw');
jsCode = jsCode.replace(/\binvocar-artefato\b/g, 'require');
jsCode = jsCode.replace(/\btrazer-energia\b/g, 'import');
return jsCode;
};
module.exports = { translateToNex, translateToJS };