DefGI Menu Declarations TYPE DECISON SYMBOL {Menu, menu} SUBGI Fim Behaviour EVSEQ (GInit + GinsPal + GRemPal + ViewConsPal)* + Fim SubGI DefGI Fim Declarations TYPE DECISION Behaviour EndGI EndGI DefGI GInit Declarations TYPE SYNTH Behaviour EXEC INIT() EndGI DefGI GInsPal Declarations TYPE SYNTH SYMBOL {GInsPal, inspal} ARGS pal: Pal; sig: Sig Behaviour INIT pal = ""; sig = "" EVSEQ input(pal).input(sig) TRANS input(pal): (pal != "") && not(EXISTPAL(pal)) => EXCEP pal=="" -> out("Palavra nula!"); pal!="" -> out("Erro!") OK: CANCEL: EXEC INSPAL(pal, sig) EndGI DefGI GRemPal Declarations TYPE SYNTH SYMBOL {GRemPal, rempal} ARGS pal: Pal VAR-UI sig: Sig Behaviour CONTEXT not(EMPTYDIC()) INIT pal = ""; sig = "" EVSEQ input(pal) TRANS input(pal): EXISTPAL(pal) => sig = CONSPAL(pal) EXCEP out("Erro!") OK: CANCEL: EXEC REMPAL(pal) EndGI DefGI ViewConsPal Declarations TYPE SYNTH SYMBOL {ViewConsPal, conspal} SUBGI DoConsPal VAR-UI sig: Sig Behaviour CONTEXT not(EMPTYDIC()) INIT sig = "" EVSEQ DoConsPal(sig) TRANS OK: SubGI DefGI DoConsPal: Sig Declarations TYPE VALSYNTH SYMBOL {DoConsPal} ARGS pal: Pal Behaviour CONTEXT not(EMPTYDIC()) INIT pal = "" EVSEQ input(pal) TRANS input(pal): EXISTPAL(pal) => EXCEP out("Erro!") OK: CANCEL: EXEC CONSPAL(pal) EndGI EndGI