jueves, 11 de marzo de 2010

UNIDAD 3 ANALISIS LÉXICO (parte2)

EXPRESIONES REGULARES, PALABRAS RESERVADAS Y ESTRUCTURAS DEL LENGUAJE PHP

PHP.JJ

options { LOOKAHEAD = 3;

IGNORE_CASE = true;

STATIC = false;

}

PARSER_BEGIN(PHP)

import java.io.*;

import java.lang.*;

import java.util.*;

import javax.swing.*;

public class PHP{

public FileOutputStream Sint1;

public DataOutputStream Sint2;

public FileOutputStream Token1;

public DataOutputStream Token2;

public String ar[]=new String[1024];

public void archSint_crear(String nombre_arch)

{

try {

Sint1 = new FileOutputStream(nombre_arch);

Sint2 = new DataOutputStream(Sint1);

}

catch (IOException Ex)

{

System.err.println("No se creo el archivo correctamente");

}

}

public void archSint_cerrar()

{

try {

Sint1.close();

}

catch (IOException Ex)

{

System.err.println("No se cerró corectamente");

}

}

public void archSint_escribe(String Mensaje)

{

try {

Sint2.writeBytes(Mensaje+"\r");

Sint1.write('\n');

}

catch(IOException Ex)

{

System.err.println("No se escribio correctamente");

}

}

public void archtoken_crear(String nombre_arch)

{

try {

Token1 = new FileOutputStream(nombre_arch);

Token2 = new DataOutputStream(Token1);

}

catch (IOException Ex)

{

System.err.println("No se creo el archivo correctamente");

}

}

public void archtoken_cerrar()

{

try {

Token1.close();

}

catch (IOException Ex)

{

System.err.println("No se cerró corectamente");

}

}

public void archtoken_escribe(String Mensaje)

{

try {

Token2.writeBytes(Mensaje+"\r");

Token1.write('\n');

}

catch(IOException Ex)

{

System.err.println("No se escribió correctamente");

}

}

public static void main(String args[]) throws ParseException

{

PHP analiza;

if(args.length == 0)

{

System.err.println("Uso del programa: \"java PHP archivo.ejm\"");

}

else

{

if(args.length == 1)

{

try

{

analiza = new PHP (new

java.io.FileInputStream(args[0]));

analiza.archSint_crear("Sint.txt");

//analiza.dtone();

analiza.archSint_cerrar();

}

catch (java.io.FileNotFoundException e)

{

System.out.println("No se pudo leer el archivo : " + args[0] + " ");

}

try

{

analiza = new PHP (new

java.io.FileInputStream(args[0]));

analiza.archtoken_crear("Lex.txt");

analiza.input(analiza);

}

catch (java.io.FileNotFoundException e)

{

System.out.println("No se pudo leer el archivo : " + args[0] + " ");

}

}

else

{

System.out.println("Formato: java PHP nombrearchivo.ejm");

}

}

}

void EscribeSintactico(String mensaje)

{

archSint_escribe(mensaje);

}

}

PARSER_END(PHP)

SKIP :

{

" "

| "\t"

| "\n"

| "\r"

}

TOKEN : {

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

}

TOKEN:

{

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

| | | | >

| | | | | | | | >

}

TOKEN :

{

|

|

|

|

|

| ">

|

| | | |

| | | | >

}

TOKEN :

{

|

|

|

|

|

|

| >

|

|

|

|

|

| =">

|

|

|

|

|

|

|

|

|

| >">

| | | | | | | | | | | | | | | | | | | | | | | | | | | >

}

TOKEN :

{

|

| "php"">">

|

| ">

| ">

| ">

|

|

| )+ >

| (".") >

| | "_") ( | | "_")* >

| | "_")+ >

|

| ( | | | | | | | | | " ")* >

| ( | | | | | | | | | " " | "\n")* >

| | | "_")* ()+ ( | | "_")*) >

| ( | | "_" | )*) | (( | | "_" | )* ) >

| ( | | | | | | | | | " " | "_" | "'")* ) >

| ( | | | | | | | | | " " | "_")* ) >

}

void input(PHP analiza) :

{

String mensaje;

}

{

( mensaje=Checa()

{

System.out.println(mensaje);

analiza.archtoken_escribe(mensaje);

}

)+

}

String Checa() :

{ Token t; }

{

t=

{ return ( t.image +"\t\t Palabra reservada abstract"); }

| t=

{ return ( t.image +"\t\t Palabra reservada array");}

| t=

{ return ( t.image +"\t\t Palabra reservada break");}

| t=

{ return ( t.image +"\t\t Palabra reservada catch");}

| t=

{ return ( t.image +"\t\t Palabra reservada case");}

| t=

{ return ( t.image +"\t\t Palabra reservada class");}

| t=

{ return ( t.image +"\t\t Palabra reservada clone");}

| t=

{ return ( t.image +"\t\t Palabra reservada const");}

| t=

{ return ( t.image +"\t\t Palabra reservada continue");}

| t=

{ return ( t.image +"\t\t Palabra reservada declare");}

| t=

{ return ( t.image +"\t\t Palabra reservada default");}

| t=

{ return ( t.image +"\t\t Palabra reservada die");}

| t=

{ return ( t.image +"\t\t Palabra reservada echo");}

| t=

{ return ( t.image +"\t\t Palabra reservada do");}

| t=

{ return ( t.image +"\t\t Palabra reservada else");}

| t=

{ return ( t.image +"\t\t Palabra reservada elseif");}

hinfvn| t=

{ return ( t.image +"\t\t Palabra reservada empty");}

| t=

{ return ( t.image +"\t\t Palabra reservada enddeclare");}

| t=

{ return ( t.image +"\t\t Palabra reservada endfor");}

| t=

{ return ( t.image +"\t\t Palabra reservada endforeach");}

| t=

{ return ( t.image +"\t\t Palabra reservada endif");}

| t=

{ return ( t.image +"\t\t Palabra reservada endswitch");}

| t=

{ return ( t.image +"\t\t Palabra reservada endwhile");}

| t=

{ return ( t.image +"\t\t Palabra reservada eval");}

| t=

{ return ( t.image +"\t\t Palabra reservada exit");}

| t=

{ return ( t.image +"\t\t Palabra reservada extends");}

| t=

{ return ( t.image +"\t\t Palabra reservada final");}

| t=

{ return ( t.image +"\t\t Palabra reservada for");}

| t=

{ return ( t.image +"\t\t Palabra reservada foreach");}

| t=

{ return ( t.image +"\t\t Palabra reservada function");}

| t=

{ return ( t.image +"\t\t Palabra reservada global");}

| t=

{ return ( t.image +"\t\t Palabra reservada if");}

| t=

{ return ( t.image +"\t\t Palabra reservada implements");}

| t=

{ return ( t.image +"\t\t Palabra reservada include");}

| t=

{ return ( t.image +"\t\t Palabra reservada final");}

| t=

{ return ( t.image +"\t\t Palabra reservada interface");}

| t=

{ return ( t.image +"\t\t Palabra reservada isset");}

| t=

{ return ( t.image +"\t\t Palabra reservada list");}

| t=

{ return ( t.image +"\t\t Palabra reservada new");}

| t=

{ return ( t.image +"\t\t Palabra reservada print");}

| t=

{ return ( t.image +"\t\t Palabra reservada sprintf");}

| t=

{ return ( t.image +"\t\t Palabra reservada private");}

| t=

{ return ( t.image +"\t\t Palabra reservada protected");}

| t=

{ return ( t.image +"\t\t Palabra reservada require");}

| t=

{ return ( t.image +"\t\t Palabra reservada public");}

| t=

{ return ( t.image +"\t\t Palabra reservada require_once");}

| t=

{ return ( t.image +"\t\t Palabra reservada return");}

| t=

{ return ( t.image +"\t\t Palabra reservada static");}

| t=

{ return ( t.image +"\t\t Palabra reservada switch");}

| t=

{ return ( t.image +"\t\t Palabra reservada this");}

| t=

{ return ( t.image +"\t\t Palabra reservada throw");}

| t=

{ return ( t.image +"\t\t Palabra reservada try");}

| t=

{ return ( t.image +"\t\t Palabra reservada unset");}

| t=

{ return ( t.image +"\t\t Palabra reservada use");}

| t=

{ return ( t.image +"\t\t Palabra reservada var");}

| t=

{ return ( t.image +"\t\t Palabra reservada while");}

| t=

{ return ( t.image +"\t\t Simbolo ;");}

| t=

{ return ( t.image +"\t\t Simbolo :");}

| t=

{ return ( t.image +"\t\t Simbolo ,");}

| t=

{ return ( t.image +"\t\t Simbolo .");}

| t=

{ return ( t.image +"\t\t Operador (");}

| t=

{ return ( t.image +"\t\t Operador )");}

| t=

{ return ( t.image +"\t\t Operador [");}

| t=

{ return ( t.image +"\t\t Operador ]");}

| t=

{ return ( t.image +"\t\t Operador {");}

| t=

{ return ( t.image +"\t\t Operador }");}

| t=

{ return ( t.image +"\t\t Operador \\");}

| t=

{ return ( t.image +"\t\t Operador de concatenacion");}

| t=

{ return ( t.image +"\t\t Comentario multiple ");}

| t=

{ return ( t.image +"\t\t Operador = ");}

| t=

{ return ( t.image +"\t\t Operador > ");}

| t=

{ return ( t.image +"\t\t Operador < ");}

| t=

{ return ( t.image +"\t\t Operador <= ");}

| t=

{ return ( t.image +"\t\t Operador >= ");}

| t=

{ return ( t.image +"\t\t Operador + ");}

| t=

{ return ( t.image +"\t\t Operador - ");}

| t=

{ return ( t.image +"\t\t Operador / ");}

| t=

{ return ( t.image +"\t\t Operador * ");}

| t=

{ return ( t.image +"\t\t Operador % ");}

| t=

{ return ( t.image +"\t\t Operador << ");}

| t=

{ return ( t.image +"\t\t Operador >> ");}

| t=

{ return ( t.image +"\t\t Operador ++ ");}

| t=

{ return ( t.image +"\t\t Operador -- ");}

| t=

{ return ( t.image +"\t\t Operador === ");}

| t=

{ return ( t.image +"\t\t Operador == ");}

| t=

{ return ( t.image +"\t\t Operador != ");}

| t=

{ return ( t.image +"\t\t Operador binario NOT [~, No] ");}

| t=

{ return ( t.image +"\t\t Operador binario & ");}

| t=

{ return ( t.image +"\t\t Operador binario OR [|, O] ");}

| t=

{ return ( t.image +"\t\t Operador binario xor [^, Xor] ");}

| t=

{ return ( t.image +"\t\t Operador logico ! ");}

| t=

{ return ( t.image +"\t\t Operador logico xor ");}

| t=

{ return ( t.image +"\t\t Operador logico AND [&&, and] ");}

| t=

{ return ( t.image +"\t\t Operador logico Or [||, or]");}

| t=

{ return ( t.image +"\t\t Operador asignacion += ");}

| t=

{ return ( t.image +"\t\t Operador asignacion por referencia &");}

| t=

{ return ( t.image +"\t\t Operador asignacion -= ");}

| t=

{ return ( t.image +"\t\t Operador asignacion *= ");}

| t=

{ return ( t.image +"\t\t Operador asignacion /= ");}

| t=

{ return ( t.image +"\t\t Operador asignacion %= ");}

| t=

{ return ( t.image +"\t\t Apertura de script ");}

| t=

{ return ( t.image +"\t\t Apertura de script ");}

| t=

{ return ( t.image +"\t\t Apertura de script ");}

| t=

{ return ( t.image +"\t\t Apertura de script ");}

| t=

{ return ( t.image +"\t\t Cierre de script ");}

| t=

{ return ( t.image +"\t\t Cierre de script ");}

| t=

{ return ( t.image +"\t\t Cierre de script ");}

| t=

{ return ( t.image +"\t\t Digito ");}

| t=

{ return ( t.image +"\t\t Identificador ");}

| t=

{ return ( t.image +"\t\t Numero Entero ");}

| t=

{ return ( t.image +"\t\t Numero real ");}

| t=

{ return ( t.image +"\t\t Caracter no valido ");}

| t=

{ return ( t.image +"\t\t Cadena no valida ");}

| t=

{ return ( t.image +"\t\t Cadena no valida ");}

| t=

{ return ( t.image +"\t\t Comentario multilinea ");}

| t=

{ return ( t.image +"\t\t Cadena ");}

| t=

{ return ( t.image +"\t\t Cadena 2 ");}

| t=

{ return ( t.image +"\t\t Letra ");}

| t=

{ return ( t.image +"\t\t Palabra ");}

| t=

{ return ( t.image +"\t\t Comentario Simple ");}

}

EJEMPLO DE ARCHIVOS PARA SU COMPILACION.

ARCHIVO Bueno.txt

print "Con o sin etiquetas HTML.";

$una_variable = "pepe";

print "Nombre de usuario: $una_variable";

$valor = "pepe"; // por valor

$ref = &$valor; // por referencia

$ref ="sam";

$a = (10.5+13) - 6;

$b = $a;

if ($a > $b){

print "$a es mayor que $b";

}elseif ($a == $b){

print "$a es igual que $b";

}else{

print "$a es menor que $b";

}

$i = 6;

do {

print "Cabecera h$i\n";

$i--;

} while ($i > 0);

$a = array("uno" => 1, "dos" => 2, "tres" => 3);

foreach( $a as $key => $value ) {

echo "ýndice: $key; Valor: $value
\n";

}

switch ($i) {

case 0:

print "i es igual a 0";

break;

case 1:

print "i es igual a 1";

break;

case 2:

print "i es igual a 2";

break;

default:

print "i no es igual a 0, 1 o 2";

}

function fact ($n)

{

$result = 1;

for ($i=1; $i <= $n; $i++)

$result *= $i;

return $result;

}

function por_valor ($str)

{

$str .= " concatenaciýn.";

}

function por_referencia (&$str)

{

$str .= " concatenaciýn.";

}

$cad = "El . es el operador de";

por_valor($cad);

echo "$cad
";

por_referencia($cad);

echo "$cad
";

$base = mysql_connect('$servidor','$usuario', '$password');

mysql_select_db('test', $base); /*Conexiýn a la base*/

$sql = 'SELECT * FROM `nombre de la tabla` WHERE nombre='.$_POST['nombre'].';';

$sql_ejecutar = mysql_query($sql);

$sql_return = mysql_num_rows($sql_ejecutar);

if ($sql_return > 0){

echo "Tu nombre ya esta en la base de datos";

}

else{

mysql_query($sql);

}

$num = 50;

$i = 1;

for ( $s = 1; $s <>

if ($i > 10) {

break;

}

print $i;

}

$archivos = array ('nombre', 'tipo', 'valor');

for ($i = 0; $i <>

include $archivos[$i];

}

echo "Antes del return";

if ( 1 ) {

return 27;

}

switch ($i) {

case 0:

print "i es igual a 0";

break;

case 1:

print "i es igual a 1";

break;

case 2:

print "i es igual a 2";

break;

default:

print "i no es igual a 0, 1 o 2";

}

if (isset($_POST['muestra']))

{

echo 'Hola, '.$_POST['nombre'].', tu comida favorita es:'. $_POST['comida'].'';

} else {

echo 'No hay comida favorita';

}

echo $_SERVER['PHP_SELF'];

echo "Escritura de texto." ;

echo "
" ;

$conexion_bd = pg_connect("host=localhost dbname=publicaciones user=www password=foo");

$consulta = 'SELECT * FROM autores';

$resultado = pg_query($consulta);

echo "

\n";

while ($linea == pg_fetch_array($resultado, null, $PGSQL_ASSOC)) {

echo "\t

\n";

foreach ($linea as $valor_col) {

echo "\t\t

\n";

}

echo "\t

\n";

}

echo "

$valor_col
\n";

// Liberar conjunto de resultados

pg_free_result($resultado);

// Cerrar conexion

pg_close($conexion_bd);

$imageinfo = getimagesize($_FILES['userfile']);

if($imageinfo['mime'] != 'image/gif') {

echo "Sýlo se aceptan ficheros GIF y JPEG \n"; # Es un ejemplo, podemos montar un array con los tipos de fichero permitidos

exit();

}

$blacklist = array(".php", ".phtml", ".php3", ".php4", ".php5");

foreach ($blacklist as $item) {

if(true) {

echo "No estý permitido subir ficheros PHP\n";

exit;

}

}

$uploaddir = '/var/spool/uploads/'; # Fuera del web root

$uploadfile = $uploaddir . "baseDAtos";

if(move_uploaded_file($uploadfile)) {

echo "Fichero výlido y fue correctamente subido.\n";

} else {

echo "Error al subir el fichero.\n";

}

print "Con o sin etiquetas HTML.";

$una_variable = "pepe";

?>

ARCHIVO Malo.txt

$una_variable = "pepe";

$valor = "pepe"; // por valor

$ref = &$valor; // por referencia

$ref ="sam"

$a = 10.5;

b = $a;

if ($a > $b){

print "$a es mayor que $b";

}elseif ($a == $b){

print "$a es igual que $b";

}else{

print "$a es menor que $b";

}

$i = 6;

do {

print "Cabecera h$i\n";

$i--;

} while ($i > 0);

$a = array("uno" => 1, "dos" => 2, "tres" => 3);

print "Con o sin etiquetas HTML.";

print "Nombre de usuario: $una_variable";

foreach( $a as $key => $value) {

echo "ýndice: $key; Valor: $value
\n";

}

switch ($i) {

case 0:

print "i es igual a 0";

break;

case 1:

print "i es igual a 1";

break;

case 2:

print "i es igual a 2";

break;

default:

print "i no es igual a 0, 1 o 2";

}

function fact ($n)

{

$result = 1;

for ($i=1; $i <= $n; $i++)

$result *= $i;

return $result;

}

function por_valor ($str)

{

$str .= " concatenaciýn.";

}

function por_referencia (&$str)

{

$str .= " concatenaciýn.";

$cad = "El . es el operador de";

por_valor($cad);

echo "$cad
";

por_referencia($cad);

echo "$cad
";

$base = mysql_connect('$servidor','$usuario', '$password');

mysql_select_db('test', $base); /*Conexiýn a la base*/

$sql = 'SELECT * FROM `nombre de la tabla` WHERE nombre='.$_POST['nombre'].';';

$sql_ejecutar = mysql_query($sql);

$sql_return = mysql_num_rows($sql_ejecutar);

if ($sql_return > 0){

echo "Tu nombre ya esta en la base de datos";

}

else{

mysql_query($sql);

}

$num = 50;

$i = 1;

for ( $s = 1; $s <>

if ($i > 10) {

break;

}

print $i;

}

$archivos = array ('nombre', 'tipo', 'valor');

for ($i = 0; $i <>

include $archivos[$i];

}

echo "Antes del return";

if ( 1 ) {

return 27;

}

switch ($i) {

case 0:

print "i es igual a 0";

break;

case 1:

print "i es igual a 1";

break;

case 2:

print "i es igual a 2";

break;

default:

print "i no es igual a 0, 1 o 2";

}

if (isset($_POST['muestra']))

{

echo 'Hola, '.$_POST['nombre'].', tu comida favorita es:'. $_POST['comida'].'';

} else {

echo 'No hay comida favorita';

}

echo $_SERVER['PHP_SELF'];

echo "Escritura de texto." ;

echo "
" ;

$conexion_bd = pg_connect("host=localhost dbname=publicaciones user=www password=foo");

$consulta = 'SELECT * FROM autores';

$resultado = pg_query($consulta);

echo "

\n";

while ($linea == pg_fetch_array($resultado, null, $PGSQL_ASSOC)) {

echo "\t

\n";

foreach ($linea as $valor_col) {

echo "\t\t

\n";

}

echo "\t

\n";

}

echo "

$valor_col
\n";

// Liberar conjunto de resultados

pg_free_result($resultado);

// Cerrar conexion

pg_close($conexion_bd);

$imageinfo = getimagesize($_FILES['userfile']);

if($imageinfo['mime'] != 'image/gif') {

echo "Sýlo se aceptan ficheros GIF y JPEG \n"; # Es un ejemplo, podemos montar un array con los tipos de fichero permitidos

exit();

}

$blacklist = array(".php", ".phtml", ".php3", ".php4", ".php5");

foreach ($blacklist as $item) {

if(true) {

echo "No estý permitido subir ficheros PHP\n";

exit;

}

}

$uploaddir = '/var/spool/uploads/'; # Fuera del web root

$uploadfile = $uploaddir . "baseDAtos";

if(move_uploaded_file($uploadfile)) {

echo "Fichero výlido y fue correctamente subido.\n";

} else {

echo "Error al subir el fichero.\n";

}

print "Con o sin etiquetas HTML.";

$una_variable = "pepe";

?>

GENERACIÓN DEL PARCER CON JAVACC

Generación de parcer:

GENERA ARCHIVOS.JAVA :

COMPILACIÓN DE ARCHIVOS .JAVA:

GENERACIÓN DEL LÉXICO:

ARCHIVO GENERADO POR LEXICO:

Apertura de script

$una_variable Identificador

= Operador =

"pepe" Cadena

; Simbolo ;

$valor Identificador

= Operador =

"pepe" Cadena

; Simbolo ;

$ref Identificador

= Operador =

&$valor Operador asignacion por referencia &

; Simbolo ;

$ref Identificador

= Operador =

"sam" Cadena

$a Identificador

= Operador =

10.5 Numero real

; Simbolo ;

b Palabra

= Operador =

$a Identificador

; Simbolo ;

if Palabra reservada if

( Operador (

$a Identificador

> Operador >

$b Identificador

) Operador )

{ Operador {

print Palabra reservada print

"$a es mayor que $b" Cadena

; Simbolo ;

} Operador }

elseif Palabra reservada elseif

( Operador (

$a Identificador

== Operador ==

$b Identificador

) Operador )

{ Operador {

print Palabra reservada print

"$a es igual que $b" Cadena

; Simbolo ;

} Operador }

else Palabra reservada else

{ Operador {

print Palabra reservada print

"$a es menor que $b" Cadena

; Simbolo ;

} Operador }

$i Identificador

= Operador =

6 Numero Entero

; Simbolo ;

do Palabra reservada do

{ Operador {

print Palabra reservada print

"Cabecera h$i\n" Cadena

; Simbolo ;

$i Identificador

-- Operador --

; Simbolo ;

} Operador }

while Palabra reservada while

( Operador (

$i Identificador

> Operador >

0 Numero Entero

) Operador )

; Simbolo ;

$a Identificador

= Operador =

array Palabra reservada array

( Operador (

"uno" Cadena

=> Operador =>

1 Numero Entero

, Simbolo ,

"dos" Cadena

=> Operador =>

2 Numero Entero

, Simbolo ,

"tres" Cadena

=> Operador =>

3 Numero Entero

) Operador )

; Simbolo ;

print Palabra reservada print

"Con o sin etiquetas HTML." Cadena

; Simbolo ;

print Palabra reservada print

"Nombre de usuario: $una_variable" Cadena

; Simbolo ;

foreach Palabra reservada foreach

( Operador (

$a Identificador

as Palabra reservada as

$key Identificador

=> Operador =>

$value Identificador

) Operador )

{ Operador {

echo Palabra reservada echo

"Índice: $key; Valor: $value
\n" Cadena

; Simbolo ;

} Operador }

switch Palabra reservada switch

( Operador (

$i Identificador

) Operador )

{ Operador {

case Palabra reservada case

0 Numero Entero

: Simbolo :

print Palabra reservada print

"i es igual a 0" Cadena

; Simbolo ;

break Palabra reservada break

; Simbolo ;

case Palabra reservada case

1 Numero Entero

: Simbolo :

print Palabra reservada print

"i es igual a 1" Cadena

; Simbolo ;

break Palabra reservada break

; Simbolo ;

case Palabra reservada case

2 Numero Entero

: Simbolo :

print Palabra reservada print

"i es igual a 2" Cadena

; Simbolo ;

break Palabra reservada break

; Simbolo ;

default Palabra reservada default

: Simbolo :

print Palabra reservada print

"i no es igual a 0, 1 o 2" Cadena

; Simbolo ;

} Operador }

function Palabra reservada function

fact Palabra

( Operador (

$n Identificador

) Operador )

{ Operador {

$result Identificador

= Operador =

1 Numero Entero

; Simbolo ;

for Palabra reservada for

( Operador (

$i Identificador

= Operador =

1 Numero Entero

; Simbolo ;

$i Identificador

<= Operador <=

$n Identificador

; Simbolo ;

$i Identificador

++ Operador ++

) Operador )

$result Identificador

*= Operador asignacion *=

$i Identificador

; Simbolo ;

return Palabra reservada return

$result Identificador

; Simbolo ;

} Operador }

function Palabra reservada function

por_valor Palabra

( Operador (

$str Identificador

) Operador )

{ Operador {

$str Identificador

.= Operador concatenacion .=

" concatenación." Cadena

; Simbolo ;

} Operador }

function Palabra reservada function

por_referencia Palabra

( Operador (

&$str Operador asignacion por referencia &

) Operador )

{ Operador {

$str Identificador

.= Operador concatenacion .=

" concatenación." Cadena

; Simbolo ;

$cad Identificador

= Operador =

"El . es el operador de" Cadena

; Simbolo ;

por_valor Palabra

( Operador (

$cad Identificador

) Operador )

; Simbolo ;

echo Palabra reservada echo

"$cad
" Cadena

; Simbolo ;

por_referencia Palabra

( Operador (

$cad Identificador

) Operador )

; Simbolo ;

echo Palabra reservada echo

"$cad
" Cadena

; Simbolo ;

$base Identificador

= Operador =

mysql_connect Palabra

( Operador (

'$servidor' Cadena

, Simbolo ,

'$usuario' Cadena

, Simbolo ,

'$password' Cadena

) Operador )

; Simbolo ;

mysql_select_db Palabra

( Operador (

'test' Cadena

, Simbolo ,

$base Identificador

) Operador )

; Simbolo ;

$sql Identificador

= Operador =

'SELECT * FROM `nombre de la tabla` WHERE nombre=' Cadena

. Simbolo .

$_POST Identificador

[ Operador [

'nombre' Cadena

] Operador ]

. Simbolo .

';' Cadena

; Simbolo ;

$sql_ejecutar Identificador

= Operador =

mysql_query Palabra

( Operador (

$sql Identificador

) Operador )

; Simbolo ;

$sql_return Identificador

= Operador =

mysql_num_rows Palabra

( Operador (

$sql_ejecutar Identificador

) Operador )

; Simbolo ;

if Palabra reservada if

( Operador (

$sql_return Identificador

> Operador >

0 Numero Entero

) Operador )

{ Operador {

echo Palabra reservada echo

"Tu nombre ya esta en la base de datos" Cadena

; Simbolo ;

} Operador }

else Palabra reservada else

{ Operador {

mysql_query Palabra

( Operador (

$sql Identificador

) Operador )

; Simbolo ;

} Operador }

$num Identificador

= Operador =

50 Numero Entero

; Simbolo ;

$i Identificador

= Operador =

1 Numero Entero

; Simbolo ;

for Palabra reservada for

( Operador (

$s Identificador

= Operador =

1 Numero Entero

; Simbolo ;

$s Identificador

< Operador <

10 Numero Entero

; Simbolo ;

$s Identificador

++ Operador ++

) Operador )

{ Operador {

if Palabra reservada if

( Operador (

$i Identificador

> Operador >

10 Numero Entero

) Operador )

{ Operador {

break Palabra reservada break

; Simbolo ;

} Operador }

print Palabra reservada print

$i Identificador

; Simbolo ;

} Operador }

$archivos Identificador

= Operador =

array Palabra reservada array

( Operador (

'nombre' Cadena

, Simbolo ,

'tipo' Cadena

, Simbolo ,

'valor' Cadena

) Operador )

; Simbolo ;

for Palabra reservada for

( Operador (

$i Identificador

= Operador =

0 Numero Entero

; Simbolo ;

$i Identificador

< Operador <

10 Numero Entero

; Simbolo ;

$i Identificador

++ Operador ++

) Operador )

{ Operador {

include Palabra reservada include

$archivos Identificador

[ Operador [

$i Identificador

] Operador ]

; Simbolo ;

} Operador }

echo Palabra reservada echo

"Antes del return" Cadena

; Simbolo ;

if Palabra reservada if

( Operador (

1 Numero Entero

) Operador )

{ Operador {

return Palabra reservada return

27 Numero Entero

; Simbolo ;

} Operador }

switch Palabra reservada switch

( Operador (

$i Identificador

) Operador )

{ Operador {

case Palabra reservada case

0 Numero Entero

: Simbolo :

print Palabra reservada print

"i es igual a 0" Cadena

; Simbolo ;

break Palabra reservada break

; Simbolo ;

case Palabra reservada case

1 Numero Entero

: Simbolo :

print Palabra reservada print

"i es igual a 1" Cadena

; Simbolo ;

break Palabra reservada break

; Simbolo ;

case Palabra reservada case

2 Numero Entero

: Simbolo :

print Palabra reservada print

"i es igual a 2" Cadena

; Simbolo ;

break Palabra reservada break

; Simbolo ;

default Palabra reservada default

: Simbolo :

print Palabra reservada print

"i no es igual a 0, 1 o 2" Cadena

; Simbolo ;

} Operador }

if Palabra reservada if

( Operador (

isset Palabra reservada isset

( Operador (

$_POST Identificador

[ Operador [

'muestra' Cadena

] Operador ]

) Operador )

) Operador )

{ Operador {

echo Palabra reservada echo

'Hola, ' Cadena

. Simbolo .

$_POST Identificador

[ Operador [

'nombre' Cadena

] Operador ]

. Simbolo .

', tu comida favorita es:' Cadena

. Simbolo .

$_POST Identificador

[ Operador [

'comida' Cadena

] Operador ]

. Simbolo .

'' Cadena

; Simbolo ;

} Operador }

else Palabra reservada else

{ Operador {

echo Palabra reservada echo

'No hay comida favorita' Cadena

; Simbolo ;

} Operador }

echo Palabra reservada echo

$_SERVER Identificador

[ Operador [

'PHP_SELF' Cadena

] Operador ]

; Simbolo ;

echo Palabra reservada echo

"Escritura de texto." Cadena

; Simbolo ;

echo Palabra reservada echo

"
" Cadena

; Simbolo ;

$conexion_bd Identificador

= Operador =

pg_connect Palabra

( Operador (

"host=localhost dbname=publicaciones user=www password=foo" Cadena

) Operador )

; Simbolo ;

$consulta Identificador

= Operador =

'SELECT * FROM autores' Cadena

; Simbolo ;

$resultado Identificador

= Operador =

pg_query Palabra

( Operador (

$consulta Identificador

) Operador )

; Simbolo ;

echo Palabra reservada echo

"

\n" Cadena

; Simbolo ;

while Palabra reservada while

( Operador (

$linea Identificador

== Operador ==

pg_fetch_array Palabra

( Operador (

$resultado Identificador

, Simbolo ,

null Palabra reservada null

, Simbolo ,

$PGSQL_ASSOC Identificador

) Operador )

) Operador )

{ Operador {

echo Palabra reservada echo

"\t

\n" Cadena

; Simbolo ;

foreach Palabra reservada foreach

( Operador (

$linea Identificador

as Palabra reservada as

$valor_col Identificador

) Operador )

{ Operador {

echo Palabra reservada echo

"\t\t

\n" Cadena

; Simbolo ;

} Operador }

echo Palabra reservada echo

"\t

\n" Cadena

; Simbolo ;

} Operador }

echo Palabra reservada echo

"

$valor_col
\n" Cadena

; Simbolo ;

pg_free_result Palabra

( Operador (

$resultado Identificador

) Operador )

; Simbolo ;

pg_close Palabra

( Operador (

$conexion_bd Identificador

) Operador )

; Simbolo ;

$imageinfo Identificador

= Operador =

getimagesize Palabra

( Operador (

$_FILES Identificador

[ Operador [

'userfile' Cadena

] Operador ]

) Operador )

; Simbolo ;

if Palabra reservada if

( Operador (

$imageinfo Identificador

[ Operador [

'mime' Cadena

] Operador ]

!= Operador !=

'image/gif' Cadena

) Operador )

{ Operador {

echo Palabra reservada echo

"Sólo se aceptan ficheros GIF y JPEG \n" Cadena

; Simbolo ;

exit Palabra reservada exit

( Operador (

) Operador )

; Simbolo ;

} Operador }

$blacklist Identificador

= Operador =

array Palabra reservada array

( Operador (

".php" Cadena

, Simbolo ,

".phtml" Cadena

, Simbolo ,

".php3" Cadena

, Simbolo ,

".php4" Cadena

, Simbolo ,

".php5" Cadena

) Operador )

; Simbolo ;

foreach Palabra reservada foreach

( Operador (

$blacklist Identificador

as Palabra reservada as

$item Identificador

) Operador )

{ Operador {

if Palabra reservada if

( Operador (

true Palabra reservada true

) Operador )

{ Operador {

echo Palabra reservada echo

"No está permitido subir ficheros PHP\n" Cadena

; Simbolo ;

exit Palabra reservada exit

; Simbolo ;

} Operador }

} Operador }

$uploaddir Identificador

= Operador =

'/var/spool/uploads/' Cadena

; Simbolo ;

$uploadfile Identificador

= Operador =

$uploaddir Identificador

. Simbolo .

"baseDAtos" Cadena

; Simbolo ;

if Palabra reservada if

( Operador (

move_uploaded_file Palabra

( Operador (

$uploadfile Identificador

) Operador )

) Operador )

{ Operador {

echo Palabra reservada echo

"Fichero válido y fue correctamente subido.\n" Cadena

; Simbolo ;

} Operador }

else Palabra reservada else

{ Operador {

echo Palabra reservada echo

"Error al subir el fichero.\n" Cadena

; Simbolo ;

} Operador }

print Palabra reservada print

"Con o sin etiquetas HTML." Cadena

; Simbolo ;

$una_variable Identificador

= Operador =

"pepe" Cadena

; Simbolo ;

?> Cierre de script

GENERADOR DE SINTACTICO:

ARCHIVO GENERADO POR SINTACTICO:

Error en la linea: 6 : : Error en ASIGNACION

ParseException: Encountered "= \"sam\" $a.

Was expecting one of:

"++" ...

"--" ...

";" ...

"[" ...

"=" ...

"=" ...

"=" "." ...

"=" "," ...

"=" ";" ...

"->" ...

Error en la linea: 156 : : Error en D_FUNCION

ParseException: Encountered "?>.

Was expecting one of:

"}" ...

...

...

...

...

...

...

...

"++" ...

"--" ...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

"(" ...

...

...

...

...

...

...

: : SE HAN ENCONTRADO ERRORES EN LA COMPILACION : :

Numero de errores: 2

Numero de lineas: 156