jump to navigation

animal.rex traduzido para português do brasil pt_BR 2016/08/11

Posted by gsavix in aprendizado, programas autonômicos, regras de inferência, rexx.
Tags:
comments closed

/* adaptado por gsavix@gmail.com */
/* agosto 2016 */

parse arg infile .
say ‘============================================’
say ‘| Programa animalptbr.rexx                  |’
say ‘| Por motivos diversos recomendamos         |’
say ‘| Nao usar caracteres acentuados            |’
say ‘| apenas caracteres ascii e numeros         |’
say ‘| responda S para sim                       |’
say ‘| responda N para nao                       |’
say ‘| responda caracteristica ou nome do animal |’
say ‘| responda nome de arquivo para salvar      |’
say ‘=============================================’

if infile\=” then
do while lines(infile)>0
interpret linein(infile) ;
end
else
base = ‘elefante’

do until left(answer,1) = ‘N’
where = ‘BASE’
finished = 0
do while finished = 0
if symbol(where’.S’)=’VAR’ then do
say value(where)
pull answer
if left(space(answer),1) = ‘N’ then
where = where’.N’
else
where = where’.S’
end; else do
finished = 1;
say ‘Pensando em ‘value(where)’?’
pull answer
if left(answer,1) = ‘S’ then
say ‘Legal!!!’
else do
say ‘HHHMMM, Pensando em …?’
parse pull newanimal
say ‘Qual pergunta permite diferenciar entre ‘newanimal’ e ‘,
value(where)’:’
parse pull quest
say ‘Qual resposta (S ou N) para ‘newanimal’?’
pull answer
answer = space(answer)
if left(answer,1) = ‘S’ then do
interpret where’.N =’ where
interpret where’.S = newanimal’
interpret where ‘= quest’
end; else do
interpret where’.S =’ where
interpret where’.N = newanimal’
interpret where ‘= quest’
end
end
end
end
say ‘Continuar deduzindo (S ou N)?’
pull answer
answer = space(answer)
end

say ‘Informe arquivo para salvar (deixar em branco para NAO salvar!)?’
parse pull filename
if filename\=” then do
call lineout filename,, 1
signal on notready
call dump ‘BASE’
end

exit 0

dump: procedure expose filename base base.
parse arg arg
if symbol(arg)=’VAR’ then do
call lineout filename, arg’=”‘insulate(value(arg))'”‘
call dump arg’.S’
call dump arg’.N’
end
return ;

insulate:
parse arg string
pos = -1
do until pos=0
pos = pos(‘”‘, string, pos+2)
if (pos>0) then
string = left(string,pos-1) || ‘””‘ || substr(string,pos+1)
end
return string

notready:
say ‘erro salvando arquivo. processo encerrado.’
exit 1