Bike.Interpreter.Interpreter.Execute C# (CSharp) Метод

Execute() приватный Метод

private Execute ( string source, string filePath = null ) : object
source string
filePath string
Результат object
        internal object Execute(string source, string filePath = null)
        {
            var oldCurentExecFolder = Context.CurrentExecFolder;
            var currentExecFolder = filePath == null
                ? Directory.GetCurrentDirectory()
                : Path.GetDirectoryName(filePath);
            Context.CurrentExecFolder = currentExecFolder;
            if (currentExecFolder != null)
                Directory.SetCurrentDirectory(currentExecFolder);

            try
            {
                var lexer = new Lexer(source, filePath);
                var parser = new Parser(lexer);
                var ast = parser.Parse();
                return ast.Accept(this);
            }
            finally
            {
                Context.CurrentExecFolder = oldCurentExecFolder;
                if (oldCurentExecFolder != null)
                    Directory.SetCurrentDirectory(oldCurentExecFolder);
            }
        }