mirror of
https://github.com/0x5t4l1n/Nex.git
synced 2026-05-26 11:35:53 +00:00
60 lines
2.0 KiB
JavaScript
60 lines
2.0 KiB
JavaScript
// Function to evaluate basic expressions
|
|
function evaluateExpression(expr) {
|
|
try {
|
|
expr = expr.trim();
|
|
// Check for basic arithmetic validity (numbers, operators, parentheses)
|
|
if (/^[\d+\-*/().\s]+$/.test(expr)) {
|
|
return eval(expr); // Use JavaScript eval for arithmetic
|
|
} else {
|
|
return "Error: Invalid arithmetic expression - " + expr;
|
|
}
|
|
} catch (e) {
|
|
return "Error: " + e.message;
|
|
}
|
|
}
|
|
|
|
// Simulate 'ullitu' user input
|
|
function ullitu(prompt) {
|
|
const userInput = document.getElementById('user-input').value;
|
|
return userInput ? `${prompt}: ${userInput}` : 'No input provided';
|
|
}
|
|
|
|
// Main function to handle running the code
|
|
function runCode() {
|
|
const code = document.getElementById('code-input').value;
|
|
const outputElement = document.getElementById('output');
|
|
let output = '';
|
|
|
|
const statements = code.split('\n');
|
|
|
|
statements.forEach(statement => {
|
|
statement = statement.trim();
|
|
|
|
if (statement.startsWith("accu(")) {
|
|
// Handle 'accu' function (similar to print)
|
|
const content = statement.match(/accu\((.*?)\)/);
|
|
if (content) {
|
|
let parts = content[1].split(',').map(p => p.trim());
|
|
let result = '';
|
|
parts.forEach(part => {
|
|
if (/^".*"$/.test(part)) {
|
|
result += part.slice(1, -1); // Remove quotes
|
|
} else if (/^[\d+\-*/().\s]+$/.test(part)) {
|
|
result += evaluateExpression(part);
|
|
} else if (part.includes("ullitu")) {
|
|
const prompt = part.match(/ullitu\("(.*?)"\)/);
|
|
if (prompt) {
|
|
result += ullitu(prompt[1]);
|
|
}
|
|
}
|
|
});
|
|
output += result + '\n';
|
|
}
|
|
} else {
|
|
output += "Error: Invalid content - " + statement + '\n';
|
|
}
|
|
});
|
|
|
|
outputElement.textContent = output;
|
|
}
|