示例#1
0
        string CodeToSingleLine(File.Code c, string context, bool keep_newline = false)
        {
            string code = null;

            if (c.Size == 0)
            {
                Debug.WriteLine("Code '" + c.Name + "' has no data but is regestered?");
            }
            if (c.Size > 0)
            {
                BlockToCode output = CreateOutput(context);
                GetScriptWriter(output).WriteCode(c);
                code = output.ToString();
                Debug.Assert(!string.IsNullOrWhiteSpace(code));
                if (!keep_newline)
                {
                    code = regex_newline.Replace(code, ";");
                    // replace all double/tripple commas and puts a space next to any statements so its slightly easyer to read in a line
                    code = regex_commas.Replace(code, "; ");
                    code = code.Trim();
                }
                return(code);
            }
            return(null);
        }
示例#2
0
 public virtual void Write(File.Code code)
 {
     using (var output = new BlockToCode(new ErrorContext(code.Name), this))
     {
         new GameMaker.Writer(output).WriteCode(code);
         Write(output.ToString());
     }
 }