Dans les sections suivantes du code, je reçois des erreurs que je ne suis pas sûr pourquoi je les reçois malgré l'utilisation de toutes mes ressources pour les rechercher. C'est le codage SMLNJ.Erreur de syntaxe SML aide
compComm (DeallocComm(var, exp), env, ip, codes, contIP)=
let val loc = lookupEnv var env;
val codes1 = emitByte(LDC, ip, codes);
val codes2 = emitByte(Arg loc, ip + 1, codes1);
val (ip', codes3) = compExp(exp, env, ip+2, codes2);
val codes4 = emitByte(ADEALLOC, ip', codes3);
in(ip'+1, codes4, nil, contIP)
end;
donne
hw4.sml: 339,5 à 433,6 Erreur: non constructeur appliquée à l'argument de motif: DeallocComm hw4.sml: 427,26 à 427,29 erreur: Variable non lié ou constructeur: var
hw4.sml: 430,31 à 430,34 erreur: Variable non lié ou constructeur: exp
et
ADEALLOC => let val (n, stack') = popStack stack
val (loc, stack'') = popStack stack';
fun loop'(n, loc, store) =
val store' = updateTable (loc, defaultIntValue, store);
in loop'(n-1, loc+1, store) =
val store'' = loop'(n, loc, store) end;
in loop(ip+1, store'', stack'') end;
donne
hw4.sml: 612,14 Erreur: erreur de syntaxe: l'insertion EQUALOP
hw4.sml: Erreur 615,8 à 615,11: erreur de syntaxe: remplacement VAL avec END
toute aide sur ces points seraient appréciés .
@Crowbreak, essayez de donner des conseils plus directifs à l'utilisateur, –
Droit, désolé. Je vous remercie! – Crowbeak