Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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";
            }
        }
Ejemplo n.º 3
0
        //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);
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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);
        }