public IEnumerable <object> Parse(string script)
        {
            var lines = script.Split(Environment.NewLine);

            foreach (var line in lines)
            {
                if (CreateVariable.IsMatch(line))
                {
                    yield return(new CreateVariable(line));
                }
                else if (Assignment.IsMatch(line))
                {
                    yield return(new Assignment(line));
                }
                else if (MethodCall.IsMatch(line))
                {
                    yield return(new MethodCall(line));
                }
                else if (Branch.IsMatch(line))
                {
                    yield return(new Branch(line));
                }
                else if (EndBranch.IsMatch(line))
                {
                    yield return(new EndBranch());
                }
            }
        }