Files
Nex/script.js
T
2025-01-30 13:58:23 +05:30

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;
}