| DeclaracionDePrograma | ::= |
"iniciar-programa" [ DeclaracionDeProcedimiento ";" ]... "inicia-ejecucion" ExpresionGeneral [ ";" ExpresionGeneral ]... "termina-ejecucion" "finalizar-programa" EOF |
| DeclaracionDeProcedimiento | ::= |
"define-nueva-instruccion" Identificador [
"(" Identificador ")" ] "como" Expresion |
| ExpresionGeneral | ::= | { Expresion | ExpresionVacia } |
| Expresion | ::= |
{"apagate" | "gira-izquierda" | "avanza" | "coge-zumbador" | "deja-zumbador" | ExpresionLlamada | ExpresionSi | ExpresionMientras | ExpresionPara | "inicio" ExpresionGeneral [ ";" ExpresionGeneral ]... "fin" } |
| ExpresionLlamada | ::= | Identificador [ "(" ExpresionEntera ")" ] |
| ExpresionSi | ::= |
"si" Termino "entonces" Expresion ["sino" Expresion ] |
| ExpresionMientras | ::= |
"mientras" Termino "hacer" Expresion |
| ExpresionPara | ::= |
"repetir" ExpresionEntera "veces" Expresion |
| ExpresionVacia | ::= | |
| Termino | ::= | ClausulaY [ "o" ClausulaY ]... |
| ClausulaY | ::= | ClausulaNo [ "y" ClausulaNo ]... |
| ClausulaNo | ::= | [ "no" ] ClausulaAtomica |
| ClausulaAtomica | ::= | { "si-es-cero" "(" ExpresionEntera ")" | FuncionBooleana | "(" Termino ")" } |
| ExpresionEntera | ::= | { Decimal | Identificador | "precede" "(" ExpresionEntera ")" | "sucede" "(" ExpresionEntera ")" } |
| Identificador | ::= | Letra [ Letra | Digito | "-" ] ... |
| Decimal | ::= |
{ {"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"} [
Digito ] ... | "0" } |
| Cadena | ::= | Cualquier cosa entre comillas en una única línea. |
| FuncionBooleana | ::= |
{"frente-libre" | "frente-bloqueado" | "izquierda-libre" | "izquierda-bloqueada" | "derecha-libre" | "derecha-bloqueada" | "junto-a-zumbador" | "no-junto-a-zumbador" | "algun-zumbador-en-la mochila" | "ningun-zumbador-en-la mochila" | "orientado-al-norte" | "orientado-al-sur" | "orientado-al-este" | "orientado-al-oeste" | "no-orientado-al-norte" | "no-orientado-al-sur" | "no-orientado-al-este" | "no-orientado-al-oeste"} |
| Digito | ::= | {"0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"} |
| Letra | ::= | Una letra del alfabeto |
| EOF | ::= | Marca de final de fichero. |
Definiciones del Panel Instantaneo |
||
| ProgramaInstantaneo | ::= |
ExpresionInstantanea [ ";" ExpresionInstantanea ]... EOF |
| ExpresionInstantanea | ::= | { DeclaracionDeMetodo | DeclaracionDeEnlace | ExpresionGeneral } |
Están soportados los dos estilos de comentario en Pascal:
Están soportados los dos estilos de comentario en Java/C++:
|
Final-de-página