예제 #1
0
        public static Nodo Primer_Nivel(ParseTreeNode entrada)
        {
            //TODO: validar si es id o array
            int linea   = entrada.ChildNodes[0].Span.Location.Line;
            int columna = entrada.ChildNodes[0].Span.Location.Column;

            if (entrada.ChildNodes.Count == 3)
            {
                string nombre = entrada.ChildNodes[0].Token.Text;

                Acceso primero = new Acceso(linea, columna, nombre, null);

                Acceso retorno = Asignaciones.Niveles_abajo(entrada.ChildNodes[2], primero);

                return(retorno);
            }
            else if (entrada.ChildNodes.Count == 6)
            {
                string            nombre      = entrada.ChildNodes[0].Token.Text;
                LinkedList <Nodo> dimensiones = Main.lista_expresion(entrada.ChildNodes[2]);
                Acceso            primero     = new Acceso(linea, columna, nombre, null, dimensiones);
                Acceso            retorno     = Asignaciones.Niveles_abajo(entrada.ChildNodes[5], primero);

                return(retorno);
            }
            return(null);
        }