using System;
using System.Collections.Generic;
using System.Windows.Forms;
public class CompiladorSimulador : Form
{
private Stack<int> pila = new Stack<int>();
private TextBox txtCodigo;
private ListBox lstPila;
public CompiladorSimulador()
{
// Inicialización de componentes
txtCodigo = new TextBox { Multiline = true, Width = 300, Height = 400 };
lstPila = new ListBox { Width = 300, Height = 400 };
Button btnEjecutar = new Button { Text = "Ejecutar" };
btnEjecutar.Click += BtnEjecutar_Click;
// Diseño de la interfaz
this.Controls.Add(txtCodigo);
this.Controls.Add(lstPila);
this.Controls.Add(btnEjecutar);
}
private void BtnEjecutar_Click(object sender, EventArgs e)
{
string[] lineas = txtCodigo.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
foreach (var linea in lineas)
{
EjecutarLinea(linea.Trim());
}
}
private void EjecutarLinea(string linea)
{
if (linea.StartsWith("PUSH"))
{
int valor = int.Parse(linea.Split(' ')[1]);
pila.Push(valor);
}
else if (linea == "POP")
{
if (pila.Count > 0)
pila.Pop();
}
// Actualiza la visualización de la pila
lstPila.Items.Clear();
foreach (var item in pila)
{
lstPila.Items.Add(item);
}
}
}