Ethgoin commited on
Commit
1a3fc34
verified
1 Parent(s): cc67875

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +20 -13
main.py CHANGED
@@ -1,42 +1,50 @@
 
1
  import json
 
2
  from lexer import lexer
3
  from parser import Parser
4
  from semantico import AnalizadorSemantico
5
  from codigo_intermedio import GeneradorIntermedio
6
  from sugerencias_nlp import procesar_comentarios
7
 
8
- # Funci贸n temporal para generar sugerencias tipo NLP (puede reemplazarse por API real)
9
- def sugerencia_dummy(mensaje):
10
- return f"(sugerencia generada para: {mensaje})"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  def main():
13
  with open("entrada.txt", "r", encoding="utf-8") as f:
14
  codigo = f.read()
15
 
16
- # Fase l茅xica
17
  tokens = lexer(codigo)
18
-
19
- # Fase sint谩ctica
20
  parser = Parser(tokens)
21
  ast = parser.parse()
22
-
23
- # Fase sem谩ntica
24
  semantico = AnalizadorSemantico(ast)
25
  resultado = semantico.analizar()
26
 
27
- # Agregar sugerencias a errores
28
  errores_ext = [
29
- {"mensaje": err, "sugerencia": sugerencia_dummy(err)}
30
  for err in resultado["errores_semanticos"]
31
  ]
32
 
33
- # Extraer comentarios y sugerencias NLP
34
  comentarios_ext = [
35
  {"comentario": c, "sugerencia": s}
36
  for c, s in procesar_comentarios(codigo)
37
  ]
38
 
39
- # An谩lisis completo combinado
40
  analisis_completo = {
41
  "variables_declaradas": resultado["variables_declaradas"],
42
  "errores_semanticos": errores_ext,
@@ -46,7 +54,6 @@ def main():
46
  with open("analisis.json", "w", encoding="utf-8") as f:
47
  json.dump(analisis_completo, f, indent=2)
48
 
49
- # C贸digo intermedio
50
  generador = GeneradorIntermedio()
51
  intermedio = generador.generar(ast)
52
 
 
1
+ import os
2
  import json
3
+ import requests
4
  from lexer import lexer
5
  from parser import Parser
6
  from semantico import AnalizadorSemantico
7
  from codigo_intermedio import GeneradorIntermedio
8
  from sugerencias_nlp import procesar_comentarios
9
 
10
+ HF_TOKEN = os.environ.get("HF_TOKEN", "")
11
+ HEADERS = {"Authorization": f"Bearer {HF_TOKEN}"}
12
+ API_URL = "https://api-inference.huggingface.co/models/gpt2"
13
+
14
+ def sugerencia_nlp_error(error_msg):
15
+ payload = {
16
+ "inputs": f"ERROR: {error_msg}\nSUGERENCIA:",
17
+ "parameters": {
18
+ "max_new_tokens": 30,
19
+ "temperature": 0.8,
20
+ "return_full_text": False
21
+ }
22
+ }
23
+ response = requests.post(API_URL, headers=HEADERS, json=payload)
24
+ if response.status_code == 200:
25
+ return response.json()[0]["generated_text"].strip()
26
+ return f"(sin sugerencia: {response.status_code})"
27
 
28
  def main():
29
  with open("entrada.txt", "r", encoding="utf-8") as f:
30
  codigo = f.read()
31
 
 
32
  tokens = lexer(codigo)
 
 
33
  parser = Parser(tokens)
34
  ast = parser.parse()
 
 
35
  semantico = AnalizadorSemantico(ast)
36
  resultado = semantico.analizar()
37
 
 
38
  errores_ext = [
39
+ {"mensaje": err, "sugerencia": sugerencia_nlp_error(err)}
40
  for err in resultado["errores_semanticos"]
41
  ]
42
 
 
43
  comentarios_ext = [
44
  {"comentario": c, "sugerencia": s}
45
  for c, s in procesar_comentarios(codigo)
46
  ]
47
 
 
48
  analisis_completo = {
49
  "variables_declaradas": resultado["variables_declaradas"],
50
  "errores_semanticos": errores_ext,
 
54
  with open("analisis.json", "w", encoding="utf-8") as f:
55
  json.dump(analisis_completo, f, indent=2)
56
 
 
57
  generador = GeneradorIntermedio()
58
  intermedio = generador.generar(ast)
59