-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgramatica.txt
More file actions
executable file
·77 lines (58 loc) · 3.08 KB
/
gramatica.txt
File metadata and controls
executable file
·77 lines (58 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
declaracionPrincipal -> VAR especiales declaracion
declaracion -> variable declaracion | €
variable -> nombresV DOSPUNTOS tipo PUNTOCOMA | nombresV DOSPUNTOS tipo ARRAY PUNTOCOMA
tipo -> INTEGER | DOUBLE | STRING | BOOLEAN | ARRAY | STACK | QUEUE | LIST | GRAPH
nombresV -> ID | ID COMA nombresV
asignar -> arregloID ASIGNACION operacion PUNTOCOMA | arregloID ASIGNACION NULL PUNTOCOMA | asignarRecord
arregloID -> ID | ID ARRAY
par -> opmath | PA par PC parAux
opmath -> valor mathsymbol par | valor
mathsymbol -> MAS | MENOS | POR | DIVIDIR | DIV | MOD
techo -> CEIL PA opmath PC
piso -> FLOOR PA opmath PC
parAux -> mathsymbol par | €
valor -> ID | INTEGERVAL | DOUBLEVAL | STRINGVAL | TRUE | FALSE | techo | piso |longitud | dequeue | pop | get | getq | getp | size | sizequeue | sizestack | deep | width | llamar
longitud -> LENGTH PA STRINGVAL PC PUNTOCOMA
llamar -> CALL ID PA valoresCall PC | CALL ID PA PC
valoresCall -> valor | valor COMA valoresCall
dequeue -> DEQUEUE PA ID PC
pop -> POP PA ID PC
size -> SIZE PA ID PC
sizequeue -> SIZE_QUEUE PA ID PC
sizestack -> SIZE_STACK PA ID PC
get -> GET PA ID COMA INTEGERVAL PC
getq -> GET_P PA ID PC
getp -> GET_Q PA ID PC
deep -> DEEP PA ID PC
width -> WIDTH PA ID PC
especiales -> registro especiales | funcion especiales | procedimiento especiales | €
parametros -> MODOVALOR ID| MODOREFERENCIA ID | MODOVALOR ID COMA parametros | MODOREFERENCIA ID COMA parametros
funcion -> FUNCTION ID PA parametros PC bloqueFuncion PUNTOCOMA
procedimiento -> PROCEDURE ID PA parametros PC bloque PUNTOCOMA
registro -> RECORD ID BEGIN declaracion END PUNTOCOMA | €
asignarRecord -> ID punto ID ASIGNACION operacion PUNTOCOMA | ID punto asignarRecord
operacion -> par | SUBARRAY
escribir -> WRITELN PA par PC PUNTOCOMA
addList -> ADD PA ID COMA valor PC PUNTOCOMA
enqueue -> ENQUEUE PA ID COMA valor PC PUNTOCOMA
push -> PUSH PA ID COMA valor PC PUNTOCOMA
addnode -> ADD_NODE PA ID COMA valor PC PUNTOCOMA
addtrans -> ADD_TRANS PA ID COMA valor COMA valor COMA valor PC PUNTOCOMA
remove -> REMOVE PA ID COMA valor PC PUNTOCOMA
remove_node -> REMOVE_NODE PA ID COMA valor PC PUNTOCOMA
remove_trans -> REMOVE_TRANS PA ID COMA valor COMA valor COMA valor PC PUNTOCOMA
para -> FOR ID ASIGNACION INTEGERVAL TO INTEGERVAL DO bloque
mientras -> WHILE PA condicion PC DO bloque
repetir -> REPEAT bloqueContenido UNTIL PA condicion PC
si -> IF PA condicion PC THEN bloque sino
sino -> ELSE bloque | €
condicion -> negacion par comparar par continuidad
comparar -> MAYOR | MENOR | MAYORIGUAL | MENORIGUAL | IGUAL | DIFERENTE
oplogico -> AND | OR
continuidad -> oplogico condicion | €
negacion -> NOT | €
bloqueP -> declaracionPrincipal bloque
bloque -> BEGIN bloqueContenido END
bloqueFuncion -> BEGIN bloqueContenido retorno END *** SOLO VA UN RETORNO DEBEMOS MIRAR ESO***
retorno -> RETURN valor | €
bloqueContenido -> si bloqueContenido| para bloqueContenido | mientras bloqueContenido | repeat bloqueContenido | asignar bloqueContenido | escribir bloqueContenido |€