예제 #1
0
 private void creaProd(string prod)
 {
     string[] esplitiado;
     esplitiado = prod.Split(new string[] { "->" }, StringSplitOptions.None);
     this._nT   = new NoTerm(esplitiado[0]);
     this.separaTokens(esplitiado[1]);
 }
예제 #2
0
 public Produccion(Produccion p, List <Term> listaTokenBusq)
 {
     this._nT            = p.nT;
     this._listProd      = p._listProd;
     this._listTokenBusq = new List <Term>(listaTokenBusq);
     this._punto         = p._punto;
 }
예제 #3
0
파일: Produccion.cs 프로젝트: imxrako/LR-1-
 private void creaProd(string prod)
 {
     string[] esplitiado;
     esplitiado = prod.Split(new string[]{"->"}, StringSplitOptions.None);
     this._nT = new NoTerm(esplitiado[0]);
     this.separaTokens(esplitiado[1]);   
 }
예제 #4
0
파일: Produccion.cs 프로젝트: imxrako/LR-1-
 public Produccion(Produccion p,List<Term>listaTokenBusq)
 {
     this._nT = p.nT;
     this._listProd = p._listProd;
     this._listTokenBusq = new List<Term>(listaTokenBusq);
     this._punto = p._punto;
 }
예제 #5
0
        /// <summary>
        /// Agrega las producciones de inicio del NT recibido
        /// Calculando los tokens de busqueda de cada producción
        /// </summary>
        /// <param name="NT">No Terminal que agregara sus Producciones al estado</param>
        private void agregaProduccionesInicio(NoTerm NT, List <Term> listTokenBusq)
        {
            Produccion prodAux;

            foreach (Produccion p in NT.listProdInicio)
            {
                prodAux = new Produccion(p);
                if (prodAux.listProd[prodAux.punto].GetType().Name.Equals("NoTerm"))
                {
                    listTokenBusq = listTokenBusq.Union(prodAux.regresaPrimeroProd()).ToList();
                }
                prodAux.agregaTokenBusqueda(listTokenBusq);
                this._listProd.Add(prodAux);
            }
        }
예제 #6
0
파일: Estado.cs 프로젝트: imxrako/LR-1-
        /// <summary>
        /// Agrega las producciones de inicio del NT recibido
        /// Calculando los tokens de busqueda de cada producción
        /// </summary>
        /// <param name="NT">No Terminal que agregara sus Producciones al estado</param>
        private void agregaProduccionesInicio(NoTerm NT,List<Term>listTokenBusq)
        {
            Produccion prodAux;

            foreach (Produccion p in NT.listProdInicio)
            {
                prodAux = new Produccion(p);
                if (prodAux.listProd[prodAux.punto].GetType().Name.Equals("NoTerm"))
                {
                    listTokenBusq = listTokenBusq.Union(prodAux.regresaPrimeroProd()).ToList();
                }
                    prodAux.agregaTokenBusqueda(listTokenBusq);
                    this._listProd.Add(prodAux);
            }
        }