[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
edno fernandes |
Date: |
Sat, 2 Oct 2004 11:03:12 -0300 (ART) |
Pessoal,
Estou tentando fazer um script que faz uma analise de uma expressão matematica.
ex: eu entro com a expressão (10+20)*30
e a saida eh:
( -> delimitador
10 -> numeral
+ -> operador
20 -> numero
* -> operador
30 -> numero
ou seja ele analisa a expressão, reconhece se eh valida. (analise lexica) e
classifica cada componente.
abaixo eu mando o que eu consegui fazer ate agora, mas não esta terminado.
algume pode me ajudar..
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
#!/bin/ksh
a=\{\[\(23+45\)/2\]-345\}+6
for i in `echo $a| sed 's/./& /g'`
do
teste=`expr $i + 0 1>&1 2>/dev/null`
if [ "$teste" != "" ]; then
num=$num$teste
unset teste
else
case $i in
+) echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
-) echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
*) echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
/) echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
")") echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
"(") echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
"]") echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
"[") echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
"}") echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
"{") echo "$num" \=\> Numero
unset num
echo $i \=\> Operador;;
esac
fi
done
echo "$num" \=\> Numero
---------------------------------
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
[As partes desta mensagem que não continham texto foram removidas]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [no subject],
edno fernandes <=