public ScriptLine(string line, VariablesFile script, IScriptReader parentScriptReader)
        {
            Content = line;
            Type = LineType.Comment;//untill proven wrong
            if (line.Trim().Length == 0 || line.Trim().Substring(0, 2).Equals(VariablesFile.SCRIPT_COMMENT))
                {
                    //comment or blank - ignore
                }
                else
                {
                    if (line.Substring(0, 3).ToUpper().Equals(VariablesFile.SCRIPT_COMMAND_VARIABLE))
                    {
                        //variable definition
                        line = line.Substring(3).Trim(); //
                        string varName = line.Substring(0, line.IndexOf("=")).Trim();
                        string varValue = line.Substring(line.IndexOf("=") + 1).Trim();
                        Variable = new Variable(varName,varValue);

                        Type = LineType.Variable;//untill proven wrong
                    }
                    else if (line.Substring(0, 4).ToUpper().Equals(VariablesFile.SCRIPT_COMMAND_LOAD))
                    {
                        line = line.Substring(4).Trim();
                        //should preserver this files path so a sibling file can use relative pathing
                        script.LoadFile(line);

                        Type = LineType.Command;//untill proven wrong
                    }
                    else
                    {
                        //continue to write code for cmds - script language - borring!!!!
                        if (parentScriptReader != null)
                            parentScriptReader.ParseScriptLine(line);
                    }
                }
        }