[SP-pm] Como montar gramáticas com do{}
Luis Motta Campos
luismottacampos em yahoo.co.uk
Quarta Março 12 07:20:00 PDT 2008
Hum. Eu estava codificando uma ferramentinha para ajudar o pessoal daqui
a encontrar coisas nos arquivos de log (nós temos 10+ anos de logs
aqui), e escrevi isso aqui para montar uma expressão regular simples
para capturar e verificar datas (sem muito estresse):
my $option_re = do { # grammar definition
my $year = qr{(199\d|20[01]\d)}; # year: 1990 to 2038.
my $month = qr{(0[1-9]|1[012])}; # month: 01 to 12.
my $day = qr{(0[1-9]|[12]\d|3[01])}; # day: 01 to 31.
my $date = qr{ $year $month $day }x; # date: "YYYYMMDD"
qr{ $date \s*\-\s* $date }xms; # interval: "YYYYMMDD-YYYYMMDD"
};
Reparem que não sobram "variáveis auxiliares" depois que $option_re
recebe a expressão regular que vai ser usada em seguida.
Eu acredito que todo mundo aqui tenha o conceito de gramática e
produções, como se aprende na cadeira de Compiladores, na faculdade.
Vocês conseguem enxergar isso como uma "definição auto-documentada" de
gramática?
Comentários e perguntas são (sempre) bem-vindos.
Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}
Mais detalhes sobre a lista de discussão SaoPaulo-pm