Ethgoin commited on
Commit
5dab460
verified
1 Parent(s): e770843

Update semantico.py

Browse files
Files changed (1) hide show
  1. semantico.py +60 -0
semantico.py CHANGED
@@ -1,3 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  class AnalizadorSemantico:
2
  def __init__(self, ast):
3
  self.ast = ast
@@ -70,6 +123,13 @@ class AnalizadorSemantico:
70
  return "error"
71
 
72
  def validar_funcion(self, nombre, arg):
 
 
 
 
 
 
 
73
  funciones_sin_argumento = {
74
  "ACTIVATE_ALARM", "ACTIVATE_SENSOR", "BREAK", "CHARGE_BATTERY", "CHECK_BATTERY",
75
  "CLOSE_DOOR", "CONTINUE", "DEACTIVATE_ALARM", "DEACTIVATE_SENSOR", "DECREASE_SPEED",
 
1
+ FUNCIONES_VALIDAS = {
2
+ "ACTIVATE_ALARM": "Activa la alarma del robot",
3
+ "ACTIVATE_SENSOR": "Activa el sensor del robot",
4
+ "BREAK": "Interrumpe el ciclo actual",
5
+ "CHARGE_BATTERY": "Inicia la carga de bater铆a del robot",
6
+ "CHECK_BATTERY": "Verifica el nivel de bater铆a",
7
+ "CLOSE_DOOR": "Cierra la puerta del robot",
8
+ "CONTINUE": "Contin煤a al siguiente ciclo",
9
+ "DEACTIVATE_ALARM": "Desactiva la alarma",
10
+ "DEACTIVATE_SENSOR": "Desactiva el sensor",
11
+ "DECREASE_SPEED": "Disminuye la velocidad actual",
12
+ "DOWNLOAD": "Inicia la descarga de datos",
13
+ "REBOOT": "Reinicia el sistema del robot",
14
+ "READ_SENSOR": "Lee un sensor",
15
+ "RESET": "Reinicia las configuraciones",
16
+ "RESUME": "Reanuda la ejecuci贸n previa",
17
+ "REVERSE": "Invierte el sentido de movimiento",
18
+ "SHUTDOWN": "Apaga el sistema del robot",
19
+ "SHUT_OFF": "Desconecta inmediatamente",
20
+ "START": "Inicia el programa principal",
21
+ "STOP": "Detiene el movimiento actual",
22
+ "STOP_IMMEDIATELY": "Frena inmediatamente",
23
+ "TOGGLE_LIGHT": "Cambia el estado de la luz",
24
+ "TURN_DOWN": "Inclina hacia abajo",
25
+ "TURN_LEFT": "Gira a la izquierda",
26
+ "TURN_RIGHT": "Gira a la derecha",
27
+ "TURN_UP": "Inclina hacia arriba",
28
+ "UNLOCK": "Desbloquea el acceso",
29
+ "LOG": "Registra una entrada en el log",
30
+ "INIT": "Inicializa el sistema",
31
+ "LOCK": "Bloquea el acceso",
32
+ "LOW_BATTERY": "Indica bater铆a baja",
33
+ "OPEN_DOOR": "Abre la puerta",
34
+ "PAUSE": "Pausa temporal del programa"
35
+ "CALIBRATE": "Calibra un sensor o componente",
36
+ "COPY_FILE": "Copia un archivo en el sistema",
37
+ "DELETE_FILE": "Elimina un archivo del sistema",
38
+ "MOVE_BACKWARD": "El robot se mover谩 hacia atr谩s",
39
+ "MOVE_FORWARD": "El robot se mover谩 hacia adelante",
40
+ "MOVE_TO": "El robot se mover谩 a una posici贸n espec铆fica",
41
+ "PRINT": "Imprime un mensaje en pantalla",
42
+ "RENAME_FILE": "Cambia el nombre de un archivo",
43
+ "ROTATE": "Gira en su eje cierto n煤mero de grados",
44
+ "SAVE_FILE": "Guarda informaci贸n en un archivo",
45
+ "SCAN": "Escanea el entorno",
46
+ "SET": "Establece una variable o configuraci贸n",
47
+ "SET_SPEED": "Establece una nueva velocidad",
48
+ "UPLOAD": "Sube informaci贸n al servidor",
49
+ "UPLOAD_FILE": "Sube un archivo al servidor",
50
+ "WAIT": "Hace una pausa durante X tiempo"
51
+ }
52
+
53
+
54
  class AnalizadorSemantico:
55
  def __init__(self, ast):
56
  self.ast = ast
 
123
  return "error"
124
 
125
  def validar_funcion(self, nombre, arg):
126
+ if nombre not in FUNCIONES_VALIDAS:
127
+ self.errores.append(f"Funci贸n '{nombre}' no reconocida.")
128
+ return
129
+
130
+ descripcion = FUNCIONES_VALIDAS[nombre]
131
+ self.anotaciones.append(f"{nombre}: {descripcion}")
132
+
133
  funciones_sin_argumento = {
134
  "ACTIVATE_ALARM", "ACTIVATE_SENSOR", "BREAK", "CHARGE_BATTERY", "CHECK_BATTERY",
135
  "CLOSE_DOOR", "CONTINUE", "DEACTIVATE_ALARM", "DEACTIVATE_SENSOR", "DECREASE_SPEED",