FwStack

Pilha LIFO (last-in-first-out) do framework TLPP. Util pra parsers, navegacao de arvore, undo/redo.

Assinatura: oStack := FwStack():New() // :Push(x), :Pop(), :Top(), :Size()

Retorna: FwStack object

FwStack e a pilha LIFO classica em TLPP. Usado em algoritmos recursivos (eliminando recursao via stack explicita), parsing, navegacao de arvore.

#include "tlpp-core.th"

User Function PilhaTeste()
    Local oPilha := FwStack():New()

    oPilha:Push("nivel-1")
    oPilha:Push("nivel-2")
    oPilha:Push("nivel-3")

    ConOut(oPilha:Top())   // "nivel-3" (sem remover)
    ConOut(oPilha:Pop())   // "nivel-3" (remove)
    ConOut(oPilha:Pop())   // "nivel-2"
    ConOut(oPilha:Size())  // 1
Return

Caso classico — undo/redo

oUndo := FwStack():New()
oRedo := FwStack():New()

User Function MyEdit(cNovo)
    oUndo:Push(cValorAtual)
    cValorAtual := cNovo
    // limpa redo a cada nova acao
    While !oRedo:IsEmpty()
        oRedo:Pop()
    EndDo
Return

Pegadinhas

Veja também