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 : { | | | | | | | | | | | | | | | | | | | } 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 " $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 " $i--; } while ($i > 0); $a = array("uno" => 1, "dos" => 2, "tres" => 3); foreach( $a as $key => $value ) { echo "ýndice: $key; Valor: $value } 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 " while ($linea == pg_fetch_array($resultado, null, $PGSQL_ASSOC)) { echo "\t foreach ($linea as $valor_col) { echo "\t\t } echo "\t } echo " // 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 " $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 } 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 " while ($linea == pg_fetch_array($resultado, null, $PGSQL_ASSOC)) { echo "\t foreach ($linea as $valor_col) { echo "\t\t } echo "\t } echo " // 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 " ; 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 ; 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 ; Simbolo ; por_referencia Palabra ( Operador ( $cad Identificador ) Operador ) ; Simbolo ; echo Palabra reservada echo "$cad ; 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 " ; 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 " ; 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 ; Simbolo ; foreach Palabra reservada foreach ( Operador ( $linea Identificador as Palabra reservada as $valor_col Identificador ) Operador ) { Operador { echo Palabra reservada echo "\t\t ; Simbolo ; } Operador } echo Palabra reservada echo "\t ; Simbolo ; } Operador } echo Palabra reservada echo " ; 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
\n";
";
";
" ;\n";
\n";\n"; \n";$valor_col \n";
\n";
";
";
" ;\n";
\n";\n"; \n";$valor_col \n";
\n" Cadena
" Cadena
" Cadena
" Cadena \n" Cadena
\n" Cadena \n" Cadena \n" Cadena $valor_col \n" Cadena