Closed erflod5 closed 3 years ago
alguien tuvo problemas con el == y el ** en la parte de Exp?
@MarioRCS Tenes que ponerlas arriba del l '=' y del '*', ya que si los pones abajo te los toma como dos tokens diferentes
muchas gracias
Para la funcion
graficar_ts();
si se hace una traduccion debe mostrar la tabla de simbolos que usamos para la traducción tambien, o solo la tabla de simbolos para la ejecución?
@WSantos35 Ambas, pero cada una en su respectiva fase, en ejecucion ya solo mostrar la tabla de simbolos de ejecucion
La tabla de simbolos de la traduccion debe de tener solo el nombre y el tipo(string,numero..) o tambien tiene que tener el valor?
@aragonjc en traduccion no sabes el valor, no tendrias que tener ese campo
Dentro de las Estructuras de control no pueden venir funciones anidadas?. Ejemplo:
function mifun(){
let numeros = [1, 2, 3];
for (let numero of numeros) {
function f2(){
let mivar = 1 + numero;
}
}
}
Dentro de las Estructuras de control no pueden venir funciones anidadas?. Ejemplo:
function mifun(){
let numeros = [1, 2, 3]; for (let numero of numeros) { function f2(){ let mivar = 1 + numero; } }
}
No compañero, eso lo respondieron unas preguntas arriba. Esta es la respuesta : https://github.com/PvasquezF/ArchivosPruebaOLC2/issues/29#issuecomment-678805384
Me esta dando problemas con el operador || Al parecer jison no lo toma en cuenta, envio screenshots de mi error, no encontre ningun resultado en internet
En la parte del editor esta mi gramatica, y en la consola el error que me da.
@Xvimnt Lo pudiste arreglar?
Me dijeron que en el enunciado estaba OR en vez de || asi que lo cambié
Como podemos generar la imagen del arbol AST? Encontre estas dos librerias:
https://www.npmjs.com/package/graphviz https://github.com/ts-graphviz/ts-graphviz
Solo la de nodejs tiene como generar una imagen y no logro importarla a mi proyecto de angular. No se ni siquiera si es posible compilar el dot a una imagen desde el navegador.
Para la potencia seria asi: Math.pow(2,2) ? //resultado 4
Me esta dando problemas con el operador || Al parecer jison no lo toma en cuenta, envio screenshots de mi error, no encontre ningun resultado en internet
En la parte del editor esta mi gramatica, y en la consola el error que me da.
@Xvimnt Lo pudiste arreglar?
Me dijeron que en el enunciado estaba OR en vez de || asi que lo cambié
Que algun auxiliar lo confirme, porque yo lo tengo como || y &&.
Me esta dando problemas con el operador || Al parecer jison no lo toma en cuenta, envio screenshots de mi error, no encontre ningun resultado en internet
En la parte del editor esta mi gramatica, y en la consola el error que me da.
@Xvimnt Lo pudiste arreglar?
Me dijeron que en el enunciado estaba OR en vez de || asi que lo cambié
Los operadores son
Dentro de las Estructuras de control no pueden venir funciones anidadas?. Ejemplo:
function mifun(){
let numeros = [1, 2, 3]; for (let numero of numeros) { function f2(){ let mivar = 1 + numero; } }
}
No, eso no será válido
Para la potencia seria asi: Math.pow(2,2) ? //resultado 4
Para la potencia se utiliza **
Ejemplo
let a = 4**2;
console.log(a); // Imprime 16
Como podemos generar la imagen del arbol AST? Encontre estas dos librerias:
https://www.npmjs.com/package/graphviz https://github.com/ts-graphviz/ts-graphviz
Solo la de nodejs tiene como generar una imagen y no logro importarla a mi proyecto de angular. No se ni siquiera si es posible compilar el dot a una imagen desde el navegador.
Podes intentar con lo siguiente
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="https://unpkg.com/@hpcc-js/wasm@0.3.11/dist/index.min.js"></script>
<script src="https://unpkg.com/d3-graphviz@3.0.5/build/d3-graphviz.js"></script>
<div id="graph" style="text-align: center;"></div>
<script>
d3.select("#graph").graphviz()
.renderDot('digraph {a -> b}');
</script>
Aqui podes encontrar otros ejemplos
Como podemos generar la imagen del arbol AST? Encontre estas dos librerias:
https://www.npmjs.com/package/graphviz https://github.com/ts-graphviz/ts-graphviz
Solo la de nodejs tiene como generar una imagen y no logro importarla a mi proyecto de angular. No se ni siquiera si es posible compilar el dot a una imagen desde el navegador.
Para los que esten trabajando con angular una buena libreria a utilizar para trabajar con graphviz es d3-graphviz
documentacion e intalacion: https://www.npmjs.com/package/d3-graphviz#examples
repositorio del creador: https://github.com/magjac/d3-graphviz
Ejemplo implementando la libreria en un proyecto simple de angular (tambien realizado por el creador de la libreria): https://github.com/magjac/d3-graphviz-angular
Buenas tardes. Con una consulta. Los arboles que se graficaran seran muy grandes? Es que, estaba probando graficar los archivos de entrada que se encuentran aqui. El archivo del AVL no da ningun problema, pero el de matriz me tira un mensaje de que se quedo sin memoria el compilador dot.
El error que me tira es el siguiente:
abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value 16777216, (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 "). Build with -s ASSERTIONS=1 for more info.
He estado tratando de buscar en el archivo que compila el dot las opciones, pero no logro identificar debido a que el archivo es demasiado grande. Supongo que al graficar con la memoria del navegador, se queda corto. Por si alguien tiene el mismo problema, y logro solucionarlo, le agradeceria que me ayudara.
Estoy utilizando Angular en su version 10 y la libreria viz.js.
como resolvieron la parte de caracteres de escape en las cadenas?
como resolvieron la parte de caracteres de escape en las cadenas?
@MarioRCS con expresiones regulares
@erflod5 gracias así lo haré
No importa el orden de la desanidacion? por ejemplo:
o tendria que ir primero padre y luego padre_hijo?
No importa el orden de la desanidacion? por ejemplo:
o tendria que ir primero padre y luego padre_hijo?
@ypernilloo no, no importa
Como podemos generar la imagen del arbol AST? Encontre estas dos librerias: https://www.npmjs.com/package/graphviz https://github.com/ts-graphviz/ts-graphviz Solo la de nodejs tiene como generar una imagen y no logro importarla a mi proyecto de angular. No se ni siquiera si es posible compilar el dot a una imagen desde el navegador.
Para los que esten trabajando con angular una buena libreria a utilizar para trabajar con graphviz es d3-graphviz
documentacion e intalacion: https://www.npmjs.com/package/d3-graphviz#examples
repositorio del creador: https://github.com/magjac/d3-graphviz
Ejemplo implementando la libreria en un proyecto simple de angular (tambien realizado por el creador de la libreria): https://github.com/magjac/d3-graphviz-angular
@WSantos35 gracias por tu aporte compañero.
Hola tengo unas dudas con respecto a la declaración 1) Todas la variables deben de tener su tipo? let id : tipo; let id;
2) De lo que estoy tomando en cuenta, hay algo mas que tenga que considerar? (let | const) id : tipo ; (let | const) id : tipo [] ; (let | const) id : tipo [] [] ... ; (let | const) id : tipo = valor; (let | const) id : tipo [] = [valor,valor,...] ; (let | const) id : tipo [] [] ... = [[valor,valor,...],[valor,valor,...],[valor,valor,...],...];
Disculpen una pregunta como pueden venir sentencias de control afuera de los métodos entonces para comenzar a ejecutar lo hacemos con la primera instrucción o método que leamos en la entrada verdad?
Disculpen solo para confirmar tengo dos dudas respecto a las variables y sus tipo de datos
1.
let dato;
let dato2:null;
// se aceptan ya que ambas variables tiene valores null
dato=5;
dato2="texto";
//acepta esto ya que su tipo de dato de las variables es null o debe tirar error ya que primero se deben asignar valores null como //en las instrucciones de bajo
dato=3>2;
dato2=3;
//----------
dato=null;
dato2=null;
dato=3>2;
dato2=3;
2.
// ya que a estos a diferencia del anterior se les coloca un tipo diferente de null
let dato:number;
let dato2:string;
// deberia dar error o aceptar estas instrucciones?
dato=null;
dato2=null;
dato=true;
dato2=false;
con esto se refieren que toda función debe traer un tipo? porque typescript si soporta las funciones sin especificar el tipo que retorna.
Para la declaracion y asignacion variables de typos es necesario que venga de ultimo punto y coma o sera sin punto y coma node = { left: null, right: null, height: 0, value: value }
let tree : AVLTree = { root: null };
Hola tengo unas dudas con respecto a la declaración
- Todas la variables deben de tener su tipo? let id : tipo; let id;
- De lo que estoy tomando en cuenta, hay algo mas que tenga que considerar? (let | const) id : tipo ; (let | const) id : tipo [] ; (let | const) id : tipo [] [] ... ; (let | const) id : tipo = valor; (let | const) id : tipo [] = [valor,valor,...] ; (let | const) id : tipo [] [] ... = [[valor,valor,...],[valor,valor,...],[valor,valor,...],...];
Disculpen una pregunta cómo pueden venir sentencias de control afuera de los métodos entonces para comenzar a ejecutar lo hacemos con la primera instrucción o método que leamos en la entrada verdad?
Como se mencionó el dia de la explicación del proyecto, deben hacer las pasadas que consideren necesarias para obtener información de métodos, variables globales y demas cosas que consideren necesarias antes de iniciar la ejecución, luego de esto ya pueden ejecutar desde la primera instrucción.
Disculpen solo para confirmar tengo dos dudas respecto a las variables y sus tipo de datos 1.
let dato;
let dato2:null;
// se aceptan ya que ambas variables tiene valores null
dato=5;
dato2="texto";
//acepta esto ya que su tipo de dato de las variables es null o debe tirar error ya que primero se deben asignar valores null como //en las instrucciones de bajo
dato=3>2;
dato2=3;
//----------dato=null;
dato2=null;
dato=3>2;
dato2=3;
// ya que a estos a diferencia del anterior se les coloca un tipo diferente de null
let dato:number;
let dato2:string;
// deberia dar error o aceptar estas instrucciones?dato=null;
dato2=null;
dato=true;
dato2=false;
Disculpen solo para confirmar tengo dos dudas respecto a las variables y sus tipo de datos 1.
let dato;
let dato2:null;
// se aceptan ya que ambas variables tiene valores null
dato=5;
dato2="texto";
//acepta esto ya que su tipo de dato de las variables es null o debe tirar error ya que primero se deben asignar valores null como //en las instrucciones de bajo
dato=3>2;
dato2=3;
//----------dato=null;
dato2=null;
dato=3>2;
dato2=3;
// ya que a estos a diferencia del anterior se les coloca un tipo diferente de null
let dato:number;
let dato2:string;
// deberia dar error o aceptar estas instrucciones?dato=null;
dato2=null;
dato=true;
dato2=false;
Al asignarle un tipo este ya no se podrá cambiar, esto para facilitar el desarrollo, así que te aconsejo aceptar el valor de null y mantener el tipo de dato.
con esto se refieren que toda función debe traer un tipo? porque typescript si soporta las funciones sin especificar el tipo que retorna.
Si, deben tener el tipo de dato explícito.
Para la declaracion y asignacion variables de typos es necesario que venga de ultimo punto y coma o sera sin punto y coma node = { left: null, right: null, height: 0, value: value }
let tree : AVLTree = { root: null };
Para este caso como es una declaración o asignación si deberia llevar, en la calificación le vamos a agregar el punto y coma
buenas tengo una duda con los types y los arrays vendran instrucciones y expresiones de este estilo ?
id.id.id.areglo[3]=valor; arreglo[3].id.id.id=valor; dato=d.id.arreglo[3].id ;
Disculpen, estaba investigando diferencias en Typescript entre null y undefined. Quisiera saber si en el proyecto necesitamos aplicar estas diferencias o tanto null como undefined tendran el mismo comportamiento para nosotros. Gracias!
Buenas tardes! Tenia una duda con el manejo de los types. Supongan que yo llamo a esta funcion pasandole como parametro un type:
anotarAlumno({nombre: 'juanito', edad:13});
Pero en la definicion de la funcion, no esta estipulado el tipo que se tiene que pasar como parametro. En ese caso que tipo le asignaria ese objeto? Buscaria el primer type que encaje con los nombre y tipos de los campos? O le asignaria el typo any en este caso? Y aprovechando la duda, se va a manejar el tipo any para las variables? Muchas gracias.
buenas tengo una duda con los types y los arrays vendran instrucciones y expresiones de este estilo ?
id.id.id.areglo[3]=valor; arreglo[3].id.id.id=valor; dato=d.id.arreglo[3].id ;
Si
En ese caso que tipo le asignaria ese objeto? Buscaria el primer type que encaje con los nombre y tipos de los campos?
@marckomatic el primer type, por facilidad no vamos a poner dos types iguales, asi no hay ambigüedad en que si encontraron primero uno u otro.
No hay tipo any
Disculpen, puedo concatenar strings con tipos que no sean primitivos?
En el typescript online el resultado de hacer:
console.log('cadena: ' + {nombre: juan, edad:25}
es:
cadena: [Object, object] (1)
El unico caso cuando se muestra la informacion del objeto es cuando se le imprime solo a el y no concatenado.
Quisiera saber si es necesario que nuestro lenguaje imprima esa concatenacion en el formatio de (1). Mi pregunta es porque no veo muy fundamental que lo haga, y la validacion de operandos se vuelve un poco mas complicada aceptando tipos no primitivos. Espero su respuesta, y disculpen las molestias.
Edit: Aprovechando que aun no sea ha resuelto esta duda, quisiera tambien preguntar por los tipos aceptados por los operadores. En el typescript online, detecta errores cuando, por ejemplo, multiplicamos un boolean por un entero, sin embargo, cuando le damos a run, el archivo corre. Supongo que es porque lo traspila a javascript. Nosotros a quien debemos hacerle caso?
Por otro lado, los operadores logicos pueden trabajar con expresiones que NO sean booleanas. Sigue las mismas reglas que javascript en este caso, debemos nosotros tambien apegarnos a las reglas de javascript?
Una consulta, tratando de pasar los archivos locales al hosting de github pages con angular, he tenido el problema de que el navegador (a falta de un servidor), no es capaz de reconocer directivas propias del common JS para el uso de modulos, específicamente "require()". Aún no he probado, pero creo que, el resultado de usar el "import {}" para TS, que es casi lo mismo en su versión transpilada de es2015 para JS, dará el error de que, el archivo que use imports, tiene que ser llamado en el index.html como Githubissues.
Hilo en el que se manejaran las dudas sobre el proyecto.