<html>
<title> analizador de tokens </title>
<?php
function whitespace($z)
{
return(($z=="") or($z=="\t") or($z=="\r")
or($z=="\n" )or($z=="\f") or($z=="\r\n"));
}
function comment($z)
{
return($z=='//');
}
function keyword($z)
{
return($z=='boolean' or$z=='else'
or$z=='if' or$z=='int' or$z=='main'
or$z=='void' or$z=='while');
}
function letter($z)
{
return($z=='a' or$z=='b' or$z=='c' or$z=="d"
or$z=='e' or$z=='f' or$z=='g' or$z=='h'
or$z=='i' or$z=='j' or$z=='k' or$z=='l'
or$z=='m' or$z=='n' or$z=='ñ' or$z=='o'
or$z=='p' or$z=='q' or$z=='r' or$z=='s'
or$z=='t' or$z=='u' or$z=='v' or$z=='w'
or$z=='x' or$z=='y' or$z=='z'
or$z=='A' or$z=='B' or$z=='C' or$z=='D'
or$z=='E' or$z=='F' or$z=='G' or$z=='H'
or$z=='I' or$z=='J' or$z=='K' or$z=='L'
or$z=='M' or$z=='N' or$z=='Ñ' or$z=='O'
or$z=='P' or$z=='Q' or$z=='R' or$z=='S'
or$z=='T' or$z=='U' or$z=='V' or$z=='W'
or$z=='X' or$z=='Y' or$z=='Z');
}
function digit($z)
{
return($z=='0' or$z=='1' or$z=='2' or$z=='3'
or$z=='4' or$z=='5' or$z=='6' or$z=='7'
or$z=='8' or$z=='9');
}
function separator($z)
{
return($z=='(' or$z==')' or$z=='{'
or$z=='}' or$z==';' or$z==',');
}
function operator($z)
{
return($z=='=' or$z=='+' or$z=='-'
or$z=='*' or$z=='/' or$z=='<'
or$z=='<=' or$z=='>' or$z=='>='
or$z=='==' or$z=='!=' or$z=='&&'
or$z=='!' or$z=='');
}
?>
<body>
<?php
$x=0;
$archivo=fopen("ejemplo.txt","r");
if($archivo)
{
while(!feof($archivo))
{
$linea=fgets($archivo,255);
$palabra=strtok($linea," ");
while($palabra)
{
$palabra1[$x]="$palabra";
$x++;
$palabra=strtok(" ");
}
}
}
fclose($archivo);
$whilespace=0;
$comment=0;
$keyword=0;
$letter=0;
$digit=0;
$separator=0;
$noenc=0;
$operator=0;
for($x=0;$x<count($palabra1);$x++)
{
$sienc=0;
if(whitespace($palabra1[$x]))
{
$whitespace++;
$sienc=1;
}
elseif(keyword($palabra1[$x]))
{
$keyword++;
$sienc=1;
}
elseif(letter($palabra1[$x]))
{
$letter++;
$sienc=1;
}
elseif(digit($palabra1[$x]))
{
$digit++;
$sienc=1;
}
elseif(separator($palabra1[$x]))
{
$separator++;
$sienc=1;
}
elseif(operator($palabra1[$x]))
{
$operator++;
$sienc=1;
}
else
{
$max=strlen($palabra1[$x])+1;
$a=0;
$b=1;
$conta=1;
while($conta<$max)
{
$corte=substr($palabra1[$x],$a,$b);
if(substr($palabra1[$x],$a+1,$b)==";")
{
if($corte==n)
{
$identifier++;
$a=$conta;
$b=1;
$sienc=1;
}
else
{
$literal++;
$a=$conta;
$b=1;
$sienc=1;
}
}
elseif(substr($palabra1[$x],$a+1,$b)=="=")
{
if($corte==n)
{
$identifier++;
$a=$conta;
$b=1;
$sienc=1;
}
else
{
$literal++;
$a=$conta;
$b=1;
$sienc=1;
}
}
elseif(($corte=="boolean")OR($corte=="else")OR($corte=="if")OR($corte=="int")OR($corte=="main")or($corte=="void")or($corte=="while"))
{
$keyword++;
$a=$conta;
$b=1;
$sienc=1;
}
elseif(($corte=="true")OR($corte=="false"))
{
$boolean++;
$a=$conta;
$b=1;
$sienc=1;
}
elseif(($corte=="(")OR($corte==")")OR($corte=="{")OR($corte=="}")OR($corte==";")or($corte==","))
{
$separator++;
$a=$conta;
$b=1;
$sienc=1;
}
elseif(($corte=="=")OR($corte=="+")OR($corte=="/")OR($corte=="*")OR($corte=="-")OR($corte=="<")OR($corte=="<=")OR($corte==">")OR($corte==">=")OR($corte=="==")OR($corte=="!=")OR($corte=="&&")OR($corte=="|")OR($corte=="!"))
{
$operator++;
$a=$conta;
$b=1;
$sienc=1;
}
else
{
$b++;
}
$conta++;
} //FIN DEL WHILE
} //FIN DEL ELSE
if($sienc==0)
$noenc++;
} //FIN DEL FOR
if($whitespace!=0)
echo "white Space Encontrados ............... \n".$whitespace."<br>";
if($comment!=0)
echo "comentarios Encontrados ...................\n".$comment."<br>";
if($letter!=0)
echo "letras Encontrados.................... \n".$letter."<br>";
if($digit!=0)
echo "numeros Encontrados .................... \n".$digit."<br>";
if($separator!=0)
echo "separadores Encontrados ................ \n".$separator."<br>";
if($operator!=0)
echo "operadores Encontrados ................. \n".$operator."<br>";
if($literals!=0)
echo "Literals Encontrados ................. \n".$literals."<br>";
if($noenc!=0)
echo "Palabras No Encontrados .................... \n".$noenc."<br>";
if($keyword!=0)
echo "funciones o keywords Encontrados ............ \n".$keyword."<br>";
?>
</body>
</html> |
|