Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ottimizza Verbi con Prendi Implicito #14

Open
3 tasks
tajmone opened this issue Aug 21, 2019 · 0 comments
Open
3 tasks

Ottimizza Verbi con Prendi Implicito #14

tajmone opened this issue Aug 21, 2019 · 0 comments
Labels
⭐ verbi 🎬 Concerne: verbi/sintassi ⚡ ottimizzazioni Sorgenti Libreria » Ottimizzazioni

Comments

@tajmone
Copy link
Owner

tajmone commented Aug 21, 2019

Rimuovi dai verbi le clausole IF di verifica che un prendi-implicito sia andato a buon termine, poiché supeflue.

  • Individua tutti i verbi che contengono tali clausole.
  • Rimuovi il blocco IF e lascia solo il codice.
  • Cerca di trovare altri verbi che utilizzino clausole superfluo di questo tipo, anche se non relative al prendi-implicito.

Spiegazione

Nei vari verbi che impiegano un "prendi implicito" è presente una clausola IF per verificare che esso sia andato in porto. Esempio (tratto da lib_classi.i, verbo dai_a su luquido):

    DOES ONLY
      -- >>> prendi implicito: >>>
      IF THIS NOT IN hero
        THEN
          IF THIS:recipiente = recipiente_fittizio
          OR THIS:recipiente IS NOT prendibile
            THEN SAY mia_AT:impossibile_maneggiare_liq1.
            ELSE LOCATE recipiente OF THIS IN hero.
              "(prima prendi" SAY THE THIS:recipiente. SAY THIS:prep_DI. "$1)$n"
          END IF.
      END IF.
      -- <<< prendi implicito <<<

      IF THIS IN hero -- (se il prendi implicito è andato a buon fine)
        THEN
          "Consegni" SAY THE THIS:recipiente. SAY THIS:prep_DI. "$1"
                     SAY png:prep_A. "$2."
          LOCATE recipiente OF THIS IN png.
      END IF.

Questa clausola è inutile dato che se il LOCATE del prendi-implicito dovesse fallire per qualsiasi ragione (e.s. l'oggetto è posseduto da un attore) allora l'esecuzione del verbo si interromperebbe.

Ho eseguito dei test che confermano quanto sopra, quindi è un'operazione sicura.

@tajmone tajmone added the ⚡ ottimizzazioni Sorgenti Libreria » Ottimizzazioni label Aug 21, 2019
@tajmone tajmone added the ⭐ verbi 🎬 Concerne: verbi/sintassi label Aug 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⭐ verbi 🎬 Concerne: verbi/sintassi ⚡ ottimizzazioni Sorgenti Libreria » Ottimizzazioni
Projects
None yet
Development

No branches or pull requests

1 participant