Sei sulla pagina 1di 3

Gramáticas PHP

Do While:
Gramática:
SDOWHILE ::=
Do Llave_a BLOCAL Break P_coma Llave_c While Parentesis_a COMPARACION Parentesis_c
P_coma|

Do Llave_a BLOCAL Llave_c While Parentesis_a COMPARACION Parentesis_c P_coma|

Do Llave_a Break P_coma Llave_c While Parentesis_a COMPARACION Parentesis_c P_coma|

Do Llave_a Llave_c While Parentesis_a COMPARACION Parentesis_c P_coma

;
Nuestra gramática para la sentencia do while, tenemos que comenzar con el terminal
do(Do) seguido del la llave que abre (Llave_a) luego de esta nos permite tener conjunto
de instrucciones (BLOCAL) dentro y en algunos casos un terminal break (Break)
acompañado del Break o puede que el do while no contenga instrucciones y cerramos
las llaves (Llave_c) seguido se debe de poner el while (While) y entre paréntesis
colocamos la comparación (COMPARACION) que obligatoriamente debe ir.
Ejemplos:
do {
BLOCAL
} while (COMPARACION);

For:
Para la sentencia for inicializamos con la gramática SFOR.
En lo realizado debería ser for(S1FOR;COMPARACION;S2FOR) pero en php nos dice
que el S1FOR, COMPARACION y S2FOR puede ir o no asi que ralizaremos la
gramática con cada combinación posible
Gramática:
SFOR ::=
For Parentesis_a S1FOR P_coma COMPARACION P_coma S2FOR Parentesis_c Llave_a
BLOCAL Llave_c|
For Parentesis_a P_coma COMPARACION P_coma S2FOR Parentesis_c Llave_a BLOCAL
Llave_c|
For Parentesis_a P_coma P_coma S2FOR Parentesis_c Llave_a BLOCAL Llave_c|
For Parentesis_a S1FOR P_coma COMPARACION P_coma Parentesis_c Llave_a BLOCAL
Llave_c|
For Parentesis_a S1FOR P_coma P_coma Parentesis_c Llave_a BLOCAL Llave_c|
For Parentesis_a S1FOR P_coma P_coma S2FOR Parentesis_c Llave_a BLOCAL Llave_c|
For Parentesis_a P_coma COMPARACION P_coma Parentesis_c Llave_a BLOCAL Llave_c|
For Parentesis_a P_coma P_coma Parentesis_c Llave_a BLOCAL Llave_c|
For Parentesis_a S1FOR P_coma COMPARACION P_coma S2FOR Parentesis_c Llave_a
Llave_c|
For Parentesis_a P_coma COMPARACION P_coma S2FOR Parentesis_c Llave_a Llave_c|
For Parentesis_a P_coma P_coma S2FOR Parentesis_c Llave_a Llave_c|
For Parentesis_a S1FOR P_coma COMPARACION P_coma Parentesis_c Llave_a Llave_c|
For Parentesis_a S1FOR P_coma P_coma Parentesis_c Llave_a Llave_c|
For Parentesis_a S1FOR P_coma P_coma S2FOR Parentesis_c Llave_a Llave_c|
For Parentesis_a P_coma COMPARACION P_coma Parentesis_c Llave_a Llave_c|
For Parentesis_a P_coma P_coma Parentesis_c Llave_a Llave_c

;
La gramatica del S1FOR nos permite asignar un valor a una o mas variables.
S1FOR ::=
VARIABLE Asignacion PS1FOR|VARIABLE Asignacion PS1FOR Coma S1FOR

;
El PS1FOR es donde diremos que valor se le puede asignar, en este caso es de otra
variable, un real o un entero.
PS1FOR ::=
VARIABLE|Real|Entero

;
La gramática del S2FOR es para decir si queremos una o mas veces escribir.
S2FOR ::=
PS2FOR|PS2FOR Coma S2FOR

;
PS2FOR permite incrementar la variable imprimirla o ponerle un echo
PS2FOR ::=
Opic VARIABLE|Print VARIABLE|Echo VARIABLE|VARIABLE PPS2FOR

;
Si se elige una variable primero nos envía a la gramática de PPS2FOR para comparar
con una cadena o que el incremento este a la derecha.
PPS2FOR ::=
Opic|Opcomart PS1FOR|Opcomcad Cadena

;
Ejemplos:
for ($i = 1; ; $i++)
for (; ; )
for ($i = 1, $j = 0; $i <= 10; $i++);

Switch:
La gramatica de la sentencia switch en php comienza llamando al terminal switch
acampañado del paréntesis que abre luego lo mandamos a VARIABLE que es ($ Identificador)
que nosotros elijamos luego cerramos el paréntesis y andamos a la gramática PSWITCH.

SSWITCH ::=
Switch Parentesis_a VARIABLE Parentesis_c PSWITCH

;
PSWITCH nos manda a las dos formas en que se puede escribir instrucciones en el
switch uno de ellas es entre llaves y las instrucciones para el switch que nobramos como
no terminal BLOQUECASE, y la otra forma es poner dos puntos BLOQUECASE finalizamos
con el endwitch y coma respectivamente.

PSWITCH ::=
Llave_a BLOQUECASE Llave_c|Dospuntos BLOQUECASE Endswitch P_coma

; Ejemplos:
switch (VARIABLE) {
BLOQUECASE
}

switch (VARIABLE):
BLOQUECASE
endswitch;

Potrebbero piacerti anche