FestivAlgo/assets/js/compil2.js

91 lines
3.4 KiB
JavaScript

function detecte_instruction(recu, langage_source) {
mot = recu.toLowerCase();
if(mot == "∠")
mot = unescape("%u2220");
if(((mot == "lire" || mot == "afficher" || mot == "si" || mot == "alors" || mot == "sinon" || mot == "fin_si" || mot == "tant_que" || mot == "fin_tant_que" || mot == "pour" || mot == "allant_de" || mot == "à" || mot == "fin_pour" || mot == "prend_la_valeur" || mot == "hasard" || mot == "et" || mot == "ou" || mot == "partie_entière" || mot == "partie_décimale" || mot == "valeur_absolue" || mot == "fin_programme") && langage_source == 1) || ((mot == "?" || escape(mot) == "%u2220" || mot == "ifend" || mot == "for" || mot == "to" || mot == "next" || mot == "#ran" || mot == "int" || mot == "frac" || mot == "abs") && langage_source == 2) || ((mot == "input" || mot == "disp" || mot == "end" || mot == "for(" || mot == "rand" || mot == "int(" || mot == "fpart(" || mot == "abs(") && langage_source == 3) || ((mot == "if" || mot == "then" || mot == "else" || mot == "while" || mot == "whileend" || escape(mot) == "%u2192" || mot == "and" || mot == "or" || mot == "stop") && (langage_source == 2 || langage_source == 3)))
return mot;
else
return "undefined";
}
function detecte_signe(mot) {
if(mot == "=" || mot == "<" || mot == ">" || escape(mot) == "%u2265" || escape(mot) == "%u2264" || escape(mot) == "%u2260")
return "signe";
else
return "undefined";
}
function detecte_operation(mot) {
if(mot == "+" || mot == "-" || mot == "*" || mot == "/" ||mot == "%" || mot == "^")
return "operation";
else
return "undefined";
}
function detecte_parenthese(mot) {
if(mot == "(" || mot == ")")
return "parenthese";
else
return "undefined";
}
function detecte_outils(mot, langage_source) {
mot = mot.toLowerCase();
if(mot == "racine_carrée" || mot == "exp" || mot == "ln" || (langage_source == 1 && (mot == "hasard" || mot == "partie_décimale" || mot == "partie_entière" || mot == "valeur_absolue")) || (langage_source == 2 && (mot == "#ran" || mot == "int" || mot == "frac" || mot == "abs")) || (langage_source == 3 && (mot == "rand" || mot == "int" || mot == "fpart" || mot == "abs")))
return "outils";
else
return "undefined";
}
function verifie_conditions(mot_recu, ligne) {
if(conditions_ouvertes - conditions_fermees <= 0)
{
erreur_syntaxe[4 * nb_erreurs + 1] = mot_recu;
erreur_syntaxe[4 * nb_erreurs + 2] = "instruction_illegale";
erreur_syntaxe[4 * nb_erreurs + 3] = ligne;
erreur_syntaxe[4 * nb_erreurs + 4] = "conditions";
nb_erreurs++;
}
}
function verifie_boucles(mot_recu, ligne, langage) {
if(boucles_ouvertes - boucles_fermees <= 0)
{
erreur_syntaxe[4 * nb_erreurs + 1] = mot_recu;
erreur_syntaxe[4 * nb_erreurs + 2] = "instruction_illegale";
erreur_syntaxe[4 * nb_erreurs + 3] = ligne;
if(langage == 1)
erreur_syntaxe[4 * nb_erreurs + 4] = "boucles \"Tant_que\"";
else
erreur_syntaxe[4 * nb_erreurs + 4] = "boucles \"While\"";
nb_erreurs++;
}
}
function verifie_pour(mot_recu, ligne, langage) {
if(pour_ouverts - pour_fermes <= 0)
{
erreur_syntaxe[4 * nb_erreurs + 1] = mot_recu;
erreur_syntaxe[4 * nb_erreurs + 2] = "instruction_illegale";
erreur_syntaxe[4 * nb_erreurs + 3] = ligne;
if(langage == 1)
erreur_syntaxe[4 * nb_erreurs + 4] = "boucles \"Pour\"";
else
erreur_syntaxe[4 * nb_erreurs + 4] = "boucles \"For\"";
nb_erreurs++;
}
}
function affiche_resultats() {
var z, n = 0;
for(z = 0; z < j; z++)
{
if(z == indices[n])
{
alert("ok");
n++;
}
alert(code[z]);
}
}