Example #1
0
        public Atributo(string nombre, string valor,
                        IDTokens tipoDato, string acceso)
        {
            _Nombre = nombre;
            _Acceso = acceso;
            switch (tipoDato)
            {
            case IDTokens.NumeroInt:
                _TipoDato = TypeDato.Int;
                _Valor    = valor;
                break;

            case IDTokens.NumeroFlt:
                _TipoDato = TypeDato.Float;
                _Valor    = valor;
                break;

            case IDTokens.Caracter:
                _TipoDato = TypeDato.Char;
                _Valor    = valor;
                break;

            default:
                _TipoDato = TypeDato.Empty;
                _Valor    = valor;
                break;
            }
        }
Example #2
0
 private void PReservadas(Type infoEnum, IDTokens asignToken)
 {
     foreach (var item in Enum.GetNames(infoEnum))
     {
         _PReservadas.Add(item.ToLower(), asignToken);
     }
 }
Example #3
0
 protected bool IsMatch(IDTokens id, Action doBefore = null)
 {
     if (_ID == id)
     {
         doBefore?.Invoke();
         Match(id);
         return(true);
     }
     return(false);
 }
Example #4
0
 protected IDTokens Match(IDTokens id)
 {
     if (id == _ID)
     {
         NextTokenTrue();
         return(id);
     }
     else
     {
         throw new InvalidDataException(
                   String.Format("Se espera {0}, en la Linea {1}, Columna {2}",
                                 id.ToString(), _Fila, _Columna));
     }
 }
Example #5
0
        private void NewNodo(IDTokens valor, int cantidad)
        {
            List <int> listaNodos;
            bool       newKey;

            listaNodos = (newKey = !_NodosLex.TryGetValue(valor, out listaNodos)) ?
                         new List <int>()
            {
                0
            } : listaNodos;
            for (int i = 0; i < cantidad; i++)
            {
                listaNodos.Add(_GrafoTokens.Add(valor));
            }

            if (newKey)
            {
                _NodosLex.Add(valor, listaNodos);
            }
        }