/// <summary>
        /// 翻译公式
        /// </summary>
        /// <param name="formula">公式</param>
        /// <param name="availableMethodsType">包含公式中可用静态方法的类型</param>
        /// <returns></returns>
        public string Interpret(string formula, Type availableMethodsType)
        {
            AntlrInputStream input = new AntlrInputStream(formula);
            FormulaLexer     lexer = new FormulaLexer(input);

            lexer.RemoveErrorListeners();
            lexer.AddErrorListener(LexerErrorListener.Instance);
            CommonTokenStream tokens = new CommonTokenStream(lexer);
            FormulaParser     parser = new FormulaParser(tokens);

            parser.RemoveErrorListeners();
            parser.AddErrorListener(ParserErrorListener.Instance);
            FormulaCSListener listener = new FormulaCSListener(availableMethodsType);

            ParseTreeWalker walker = new ParseTreeWalker();

            walker.Walk(listener, parser.formula());
            return(listener.Result);
        }