Pular para o conteúdo principal

Postagens

Mostrando postagens de Dezembro, 2013

[Lua] - Como fazer um parser em Lua

Um parser básico (leitor de arquivo de configuração) em Lua:

file = io.open("file", "r")
all = file:read("*all")
file:close() for line in string.gmatch(all, "([^\n]+)") do
        if string.match(line,"^%a") then
                --print(line)
                for key, value in string.gmatch(line,"(%w*)%s*=%s*(.*)") do
                        print ("Parametro: "..key.." valor ".. value)
                end
        end
end 

O arquivo de configuração de exemplo:
#Version specification
version=1
# base directory
dominio="teste.local"


O resultado do parser sendo executado:
alplab:~$ lua lua_read_file
Parametro: version valor 1
Parametro: dominio valor "teste.local"

As linhas de comentário foram ignoradas e os valores dos parâmetros lidos com sucesso. Mas este parse é bem básico. Precisa ainda, por exemplo, verificar se o arquivo existe mesmo e outros ajustes finos.
:wq!