public void Visit(DeclarationContext parserRule, IFunctionCil cilTree, IContextCil contextCil)
        {
            contextCil.Define(parserRule.idText);
            var Id = new LocalCil(contextCil.variables[parserRule.idText].Name);

            cilTree.LocalCils.Add(Id);
            IHolderCil value;

            if (parserRule.expression != null)
            {
                value = Visit(parserRule.expression, cilTree, contextCil);
            }
            else if (parserRule.type.Text == "Int")
            {
                value = CreateABasicType(cilTree, CilAst.Int);
            }
            else if (parserRule.type.Text == "String")
            {
                value = CreateABasicType(cilTree, CilAst.String);
            }
            else if (parserRule.type.Text == "Bool")
            {
                value = CreateABasicType(cilTree, CilAst.Bool);
            }
            else
            {
                value = Visit_void(cilTree);
            }
            cilTree.ThreeDirInses.Add(new AssigCil(Id, value));
        }
        public void Visit(FormalContext parserRule, IFunctionCil cilTree, IContextCil contextCil)
        {
            contextCil.Define(parserRule.idText);
            var arg = new ArgCil(contextCil.variables[parserRule.idText].Name);

            cilTree.ArgCils.Add(arg);
        }