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 void buttonResultado_Click(object sender, EventArgs e) { Expressoes E = new Expressoes(getExpressao()); double resultado = E.CalculaExpressao(); if (!Double.IsNaN(resultado)) { txtbxResultado.Text = Convert.ToString(resultado); } else { txtbxResultado.Text = "Erro"; } }
//Método que verifica as atribuições private bool atribuicao(Atribuicao atr) { Identificador n = new Identificador(); int guarda; if (identificador(ref n)) { atr.ident = n; if (tokens[index].valor.Equals('=')) { guarda = index - 1; index++; Expressoes expr = new Expressoes(); if (expressoes(expr)) { atr.expr = expr; if (tokens[index].valor.ToString() == ";") { index++; contaLinha++; return(true); } else { throw new System.Exception("Declaracao: \';\' esperado na linha: " + contaLinha); } } } } else { throw new System.Exception("Declaracao: \'=\' esperado!"); } return(false); }
public static string RetornaExpressao(Expressoes reg) { string Ex = ""; switch (reg) { case Expressoes.ER1: Ex = @"^[0-9]{2}$"; break; case Expressoes.ER2: Ex = @"[0-9]{7}$"; break; case Expressoes.ER3: Ex = @"[0-9]{44}$"; break; case Expressoes.ER4: Ex = @"^[0-9]{14}$"; break; case Expressoes.ER5: Ex = @"^[0-9]{3,14}$"; break; case Expressoes.ER6: Ex = @"^[0-9]{0}|[0-9]{14}$"; break; case Expressoes.ER7: Ex = @"^[0-9]{11}$"; break; case Expressoes.ER8: Ex = @"^[0-9]{3,11}$"; break; case Expressoes.ER9: Ex = @"^(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))$"; break; case Expressoes.ER10: Ex = @"^0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?$"; break; case Expressoes.ER11: Ex = @"^0\.[0-9]{1}[1-9]{1}|0\.[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?$"; break; case Expressoes.ER12: Ex = @"^0|0\.[0-9]{3}|[1-9]{1}[0-9]{0,7}(\.[0-9]{3})?$"; break; case Expressoes.ER13: Ex = @"^0\.[1-9]{1}[0-9]{2}|0\.[0-9]{2}[1-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,7}(\.[0-9]{3})?$"; break; case Expressoes.ER14: Ex = @"^0|0\.[0-9]{4}|[1-9]{1}[0-9]{0,7}(\.[0-9]{4})?$"; break; case Expressoes.ER15: Ex = @"^0\.[1-9]{1}[0-9]{3}|0\.[0-9]{3}[1-9]{1}|0\.[0-9]{2}[1-9]{1}[0-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{2}|[1-9]{1}[0-9]{0,7}(\.[0-9]{4})?$"; break; case Expressoes.ER16: Ex = @"^0\.[1-9]{1}[0-9]{5}|0\.[0-9]{1}[1-9]{1}[0-9]{4}|0\.[0-9]{2}[1-9]{1}[0-9]{3}|0\.[0-9]{3}[1-9]{1}[0-9]{2}|0\.[0-9]{4}[1-9]{1}[0-9]{1}|0\.[0-9]{5}[1-9]{1}|[1-9]{1}[0- 9]{0,8}(\.[0-9]{6})?$"; break; case Expressoes.ER17: Ex = @"^0|0\.[0-9]{4}|[1-9]{1}[0-9]{0,10}(\.[0-9]{4})?$"; break; case Expressoes.ER18: Ex = @"^0\.[1-9]{1}[0-9]{3}|0\.[0-9]{3}[1-9]{1}|0\.[0-9]{2}[1-9]{1}[0-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{2}|[1-9]{1}[0-9]{0,10}(\.[0-9]{4})?$"; break; case Expressoes.ER19: Ex = @"^0|0\.[0-9]{3}|[1-9]{1}[0-9]{0,11}(\.[0-9]{3})?$"; break; case Expressoes.ER20: Ex = @"^0\.[1-9]{1}[0-9]{2}|0\.[0-9]{2}[1-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,11}(\.[0-9]{3})?$"; break; case Expressoes.ER21: Ex = @"^0|0\.[0-9]{4}|[1-9]{1}[0-9]{0,11}(\.[0-9]{4})?$"; break; case Expressoes.ER22: Ex = @"^0\.[1-9]{1}[0-9]{3}|0\.[0-9]{3}[1-9]{1}|0\.[0-9]{2}[1-9]{1}[0-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{2}|[1-9]{1}[0-9]{0,11}(\.[0-9]{4})?$"; break; case Expressoes.ER23: Ex = @"^0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?$"; break; case Expressoes.ER24: Ex = @"^0\.[0-9]{1}[1-9]{1}|0\.[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?$"; break; case Expressoes.ER25: Ex = @"^[0-9]{2,14}$"; break; case Expressoes.ER26: Ex = @"^[0-9]{0,14}|ISENTO|PR[0-9]{4,8}$"; break; case Expressoes.ER27: Ex = @"^[0-9]{1,4}$"; break; case Expressoes.ER28: Ex = @"^[1-9]{1}[0-9]{0,8}$"; break; case Expressoes.ER29: Ex = @"^[0-9]{15}$"; break; case Expressoes.ER30: Ex = @"^0|[1-9]{1}[0-9]{0,2}$"; break; case Expressoes.ER31: Ex = @"^[0-9]{3}$"; break; case Expressoes.ER32: Ex = @"^[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}$"; break; case Expressoes.ER33: Ex = @"^[0-9]{8}$"; break; case Expressoes.ER34: Ex = @"^(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))- (29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$"; break; case Expressoes.ER35: Ex = @"^[0-9]{1}$"; break; case Expressoes.ER36: Ex = @"^[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}$"; break; case Expressoes.ER37: Ex = @"^[1-9]{1}[0-9]{1,8}$"; break; case Expressoes.ER38: Ex = @"^[0-9]{8,9}$"; break; case Expressoes.ER39: Ex = @"^[0-9]{1,20}$"; break; case Expressoes.ER40: Ex = @"^1\.04$"; break; case Expressoes.ER41: Ex = @"^[1-9]{1}[0-9]{0,3}|ND$"; break; case Expressoes.ER42: Ex = @"^[A-Z0-9]+$"; break; case Expressoes.ER43: Ex = @"^[0-9]{1,6}$"; break; case Expressoes.ER44: Ex = @"^CTe[0-9]{44}$"; break; case Expressoes.ER45: Ex = @"^[0-9]{7,10}$"; break; case Expressoes.ER46: Ex = @"^[123567][0-9]([0-9][1-9]|[1-9][0-9])$"; break; case Expressoes.ER47: Ex = @"^[^@]+@[^\.]+\..+$"; break; case Expressoes.ER48: Ex = @"^[0-9]{1,15}$"; break; case Expressoes.ER49: Ex = @"^(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])$"; break; case Expressoes.ER50: Ex = @"^[A-Z]{3}(([1-9]\d{3})|(0[1-9]\d{2})|(00[1-9]\d)|(000[1-9]))$"; break; case Expressoes.ER51: Ex = @"^[0-9]{12}$"; break; case Expressoes.ER52: Ex = @"^[1-9]{1}[0-9]{0,5}$"; break; case Expressoes.ER53: Ex = @"^0|[1-9]{1}[0-9]{0,5}$"; break; case Expressoes.ER54: Ex = @"^[0-9]{9}$"; break; case Expressoes.ER55: Ex = @"^M$"; break; case Expressoes.ER56: Ex = @"^[1-9]{1}[0-9]{0,9}$"; break; } return Ex; }
public static string RetornaExpressao(Expressoes reg) { string Ex = ""; switch (reg) { case Expressoes.ER1: Ex = @"^[0-9]{2}$"; break; case Expressoes.ER2: Ex = @"[0-9]{7}$"; break; case Expressoes.ER3: Ex = @"[0-9]{44}$"; break; case Expressoes.ER4: Ex = @"^[0-9]{14}$"; break; case Expressoes.ER5: Ex = @"^[0-9]{3,14}$"; break; case Expressoes.ER6: Ex = @"^[0-9]{0}|[0-9]{14}$"; break; case Expressoes.ER7: Ex = @"^[0-9]{11}$"; break; case Expressoes.ER8: Ex = @"^[0-9]{3,11}$"; break; case Expressoes.ER9: Ex = @"^(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))$"; break; case Expressoes.ER10: Ex = @"^0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?$"; break; case Expressoes.ER11: Ex = @"^0\.[0-9]{1}[1-9]{1}|0\.[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?$"; break; case Expressoes.ER12: Ex = @"^0|0\.[0-9]{3}|[1-9]{1}[0-9]{0,7}(\.[0-9]{3})?$"; break; case Expressoes.ER13: Ex = @"^0\.[1-9]{1}[0-9]{2}|0\.[0-9]{2}[1-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,7}(\.[0-9]{3})?$"; break; case Expressoes.ER14: Ex = @"^0|0\.[0-9]{4}|[1-9]{1}[0-9]{0,7}(\.[0-9]{4})?$"; break; case Expressoes.ER15: Ex = @"^0\.[1-9]{1}[0-9]{3}|0\.[0-9]{3}[1-9]{1}|0\.[0-9]{2}[1-9]{1}[0-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{2}|[1-9]{1}[0-9]{0,7}(\.[0-9]{4})?$"; break; case Expressoes.ER16: Ex = @"^0\.[1-9]{1}[0-9]{5}|0\.[0-9]{1}[1-9]{1}[0-9]{4}|0\.[0-9]{2}[1-9]{1}[0-9]{3}|0\.[0-9]{3}[1-9]{1}[0-9]{2}|0\.[0-9]{4}[1-9]{1}[0-9]{1}|0\.[0-9]{5}[1-9]{1}|[1-9]{1}[0- 9]{0,8}(\.[0-9]{6})?$"; break; case Expressoes.ER17: Ex = @"^0|0\.[0-9]{4}|[1-9]{1}[0-9]{0,10}(\.[0-9]{4})?$"; break; case Expressoes.ER18: Ex = @"^0\.[1-9]{1}[0-9]{3}|0\.[0-9]{3}[1-9]{1}|0\.[0-9]{2}[1-9]{1}[0-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{2}|[1-9]{1}[0-9]{0,10}(\.[0-9]{4})?$"; break; case Expressoes.ER19: Ex = @"^0|0\.[0-9]{3}|[1-9]{1}[0-9]{0,11}(\.[0-9]{3})?$"; break; case Expressoes.ER20: Ex = @"^0\.[1-9]{1}[0-9]{2}|0\.[0-9]{2}[1-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,11}(\.[0-9]{3})?$"; break; case Expressoes.ER21: Ex = @"^0|0\.[0-9]{4}|[1-9]{1}[0-9]{0,11}(\.[0-9]{4})?$"; break; case Expressoes.ER22: Ex = @"^0\.[1-9]{1}[0-9]{3}|0\.[0-9]{3}[1-9]{1}|0\.[0-9]{2}[1-9]{1}[0-9]{1}|0\.[0-9]{1}[1-9]{1}[0-9]{2}|[1-9]{1}[0-9]{0,11}(\.[0-9]{4})?$"; break; case Expressoes.ER23: Ex = @"^0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?$"; break; case Expressoes.ER24: Ex = @"^0\.[0-9]{1}[1-9]{1}|0\.[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?$"; break; case Expressoes.ER25: Ex = @"^[0-9]{2,14}$"; break; case Expressoes.ER26: Ex = @"^[0-9]{0,14}|ISENTO|PR[0-9]{4,8}$"; break; case Expressoes.ER27: Ex = @"^[0-9]{1,4}$"; break; case Expressoes.ER28: Ex = @"^[1-9]{1}[0-9]{0,8}$"; break; case Expressoes.ER29: Ex = @"^[0-9]{15}$"; break; case Expressoes.ER30: Ex = @"^0|[1-9]{1}[0-9]{0,2}$"; break; case Expressoes.ER31: Ex = @"^[0-9]{3}$"; break; case Expressoes.ER32: Ex = @"^[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}$"; break; case Expressoes.ER33: Ex = @"^[0-9]{8}$"; break; case Expressoes.ER34: Ex = @"^(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))- (29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$"; break; case Expressoes.ER35: Ex = @"^[0-9]{1}$"; break; case Expressoes.ER36: Ex = @"^[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}$"; break; case Expressoes.ER37: Ex = @"^[1-9]{1}[0-9]{1,8}$"; break; case Expressoes.ER38: Ex = @"^[0-9]{8,9}$"; break; case Expressoes.ER39: Ex = @"^[0-9]{1,20}$"; break; case Expressoes.ER40: Ex = @"^1\.04$"; break; case Expressoes.ER41: Ex = @"^[1-9]{1}[0-9]{0,3}|ND$"; break; case Expressoes.ER42: Ex = @"^[A-Z0-9]+$"; break; case Expressoes.ER43: Ex = @"^[0-9]{1,6}$"; break; case Expressoes.ER44: Ex = @"^CTe[0-9]{44}$"; break; case Expressoes.ER45: Ex = @"^[0-9]{7,10}$"; break; case Expressoes.ER46: Ex = @"^[123567][0-9]([0-9][1-9]|[1-9][0-9])$"; break; case Expressoes.ER47: Ex = @"^[^@]+@[^\.]+\..+$"; break; case Expressoes.ER48: Ex = @"^[0-9]{1,15}$"; break; case Expressoes.ER49: Ex = @"^(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])$"; break; case Expressoes.ER50: Ex = @"^[A-Z]{3}(([1-9]\d{3})|(0[1-9]\d{2})|(00[1-9]\d)|(000[1-9]))$"; break; case Expressoes.ER51: Ex = @"^[0-9]{12}$"; break; case Expressoes.ER52: Ex = @"^[1-9]{1}[0-9]{0,5}$"; break; case Expressoes.ER53: Ex = @"^0|[1-9]{1}[0-9]{0,5}$"; break; case Expressoes.ER54: Ex = @"^[0-9]{9}$"; break; case Expressoes.ER55: Ex = @"^M$"; break; case Expressoes.ER56: Ex = @"^[1-9]{1}[0-9]{0,9}$"; break; } return(Ex); }