shell-script-pt
[Top][All Lists]
Advanced

[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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]