private VariableExpresionNode Variable() { List <int> c; if (this.lookahead.token == Token.VARIABLE) { String nombreVariable = this.lookahead.sequence; NextToken(); if (this.lookahead != null && this.lookahead.token == Token.ASIGNACION) { NextToken(); ExpresionNode exp = Expresion(); c = exp.GetConjunto(); this.variables.Add(nombreVariable, c); } else { c = variables[nombreVariable]; if (c == null) { throw new Exception("Variable no definida"); } } return(new VariableExpresionNode(c)); } return(null); }
private ExpresionNode Expresion() { ExpresionNode node = Conjunto(); if (node != null) { return(node); } node = Variable(); if (node != null) { return(node); } node = Creacion(); if (node != null) { return(node); } node = Mostrar(); if (node != null) { return(node); } node = Maximo(); if (node != null) { return(node); } node = Minimo(); if (node != null) { return(node); } node = Media(); if (node != null) { return(node); } node = Extraer(); if (node != null) { return(node); } return(null); }
private void Parse(List <Token> tokens) { //Para hacer una copia de la lista this.tokens = new LinkedList <Token>(); foreach (var item in tokens) { this.tokens.AddLast(item); } NextToken(); while (this.lookahead != null) { ExpresionNode e = Expresion(); } }