示例#1
0
        public virtual string ToLC()
        {
            /*
             * BLOCK:BlockId
             * DISABLED
             * LABEL:My Label
             */

            using var writer = new LoliCodeWriter();

            if (Disabled)
            {
                writer.WriteLine("DISABLED");
            }

            if (Label != ReadableName)
            {
                writer.WriteLine($"LABEL:{Label}");
            }

            // Write all the settings
            foreach (var setting in Settings.Values)
            {
                if (!Descriptor.Parameters.ContainsKey(setting.Name))
                {
                    throw new Exception($"This setting is not a valid input parameter: {setting.Name}");
                }

                writer.AppendSetting(setting, Descriptor.Parameters[setting.Name]);
            }

            return(writer.ToString());
        }
示例#2
0
        public override string ToLC()
        {
            /*
             *   INTERPRETER:Jint
             *   INPUT x,y
             *   BEGIN SCRIPT
             *   var result = x + y;
             *   END SCRIPT
             *   OUTPUT Int result
             */

            using var writer = new LoliCodeWriter(base.ToLC());
            writer.WriteLine($"INTERPRETER:{Interpreter}");
            writer.WriteLine($"INPUT {InputVariables}");
            writer.WriteLine("BEGIN SCRIPT");
            writer.WriteLine(Regex.Replace(Script, $"(\r\n)*$", ""));
            writer.WriteLine("END SCRIPT");

            foreach (var output in OutputVariables)
            {
                writer.WriteLine($"OUTPUT {output.Type} @{output.Name}");
            }

            return(writer.ToString());
        }