Você está na página 1de 3

using System;

using System.Collections.Generic;
using System.ComponentModel; _tblResultados.Columns.Add("Tipo",
using System.Data; typeof(string));
using System.Drawing; }
using System.Linq;
using System.Text; private void
using System.Threading.Tasks; btnAnalizar_Click(object sender,
using System.Windows.Forms; EventArgs e)
{
namespace Analizador _tblResultados.Clear();
{
public partial class List<char> _elementos =
frmPrincipal : Form txtExpresion.Text.Replace("
{ ","").ToCharArray().ToList();
List<char> _numeros = new
List<char>(new char[] { if (_elementos.Count > 0)
'0','1','2','3','4','5','6','7','8','9 {
'}); DataRow _fila;
List<char> _variables = new
List<char>(new char[] { 'A', 'B', foreach (char elemento
'C','D','E','F','G','H','I','J','K','L in _elementos)
','M' {
_fila =
,'N','Ñ','O','P','Q','R','S','T','U',' _tblResultados.NewRow();
V','W','X','Y','Z'});
List<char> _operadores = new if
List<char>(new char[] { '+', '-', '*', (_numeros.Contains(elemento))
'/' ,'%'}); {
List<char> _delimitadores = _fila["Token"]
new List<char>(new char[] { '(', = elemento;
')','[',']' }); _fila["Tipo"]
List<char> _extra = new = "Numero";
List<char>(new char[] }
{'#','&','¡','"','!','?','¿'}); else if
(_variables.Contains(elemento.ToString
DataTable _tblResultados = new ().ToUpper()[0]))
DataTable();//Para cualquier otro {
simbolo _fila["Token"]
= elemento;
public frmPrincipal() _fila["Tipo"]
{ = "Variable";
InitializeComponent(); }
} else if
(_operadores.Contains(elemento))
private void {
frmPrincipal_Load(object sender, _fila["Token"]
EventArgs e) = elemento;
{ _fila["Tipo"]
= "Operador";
_tblResultados.Columns.Add("Token", }
typeof(char)); else if
(_delimitadores.Contains(elemento))
{

Página
1
_fila["Token"]
= elemento; private void
_fila["Tipo"] btnSalir_Click(object sender,
= "Delimitador"; EventArgs e)
} {
else if this.Close();
(_extra.Contains(elemento)) }
{
_fila["Token"] private void
= elemento; txtExpresion_TextChanged(object
_fila["Tipo"] sender, EventArgs e)
= "Extra"; {
}
else }
{ }
_fila["Token"] }
= elemento;
_fila["Tipo"]
= "Error";
}

_tblResultados.Rows.Add(_fila);
}

dgvResultados.DataSource =
_tblResultados;

dgvResultados.Refresh();
}
else
{

dgvResultados.DataSource = null;

dgvResultados.Refresh();
}
}

private void
btnLimpiar_Click(object sender,
EventArgs e)
{
txtExpresion.Clear();
_tblResultados.Clear();
dgvResultados.DataSource =
null;
dgvResultados.Refresh();
}

private void
dgvResultados_CellContentClick(object
sender, DataGridViewCellEventArgs e)
{

Página
2

Você também pode gostar