public bool expressao_r(Expressoes expr) { int guarda = index; Expressao_r exper_r = new Expressao_r(); exper_r.expr1 = new Expressao(); exper_r.opr = new Operador(); exper_r.expr2 = new Expressao(); if (expressao(exper_r.expr1)) { if (operador(exper_r.opr)) { if (expressao_r(exper_r.expr2)) { expr = exper_r; if (notPrinted(guarda)) { ExprReduce(guarda); } return(true); } } } index = guarda; Expressao_ident expr_ident = new Expressao_ident(); expr_ident.ident = new Identificador(); if (identificador(ref expr_ident.ident)) { expr = expr_ident; return(true); } index = guarda; Expressao_int expr_int = new Expressao_int(); if (tokens[index].nome.ToString() == "Inteiro") { expr_int.inteiro = tokens[index].valor.ToString(); expr = expr_int; index++; return(true); } index = guarda; Expressao_real expr_real = new Expressao_real(); if (tokens[index].nome.ToString() == "Real") { expr_real.real = tokens[index].valor.ToString(); expr = expr_real; index++; return(true); } return(false); }
private bool expressao(Expressao expr) { int guarda = index; Expressao_ident expr_ident = new Expressao_ident(); expr_ident.ident = new Identificador(); if (identificador(ref expr_ident.ident)) { expr = expr_ident; return(true); } index = guarda; Expressao_int expr_int = new Expressao_int(); if (tokens[index].nome.ToString() == "Inteiro") { expr_int.inteiro = tokens[index].valor.ToString(); expr = expr_int; index++; return(true); } index = guarda; Expressao_real expr_real = new Expressao_real(); if (tokens[index].nome.ToString() == "Real") { expr_real.real = tokens[index].valor.ToString(); expr = expr_int; index++; return(true); } return(false); }