91 lines
3.4 KiB
JavaScript
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]);
|
|
}
|
|
} |