コード例 #1
0
ファイル: kOSException.cs プロジェクト: Nivekk/KOS
 public kOSException(String message, ExecutionContext context)
     : this(message)
 {
     this.LineNumber = context.Line;
     this.Context = context;
     this.Program = context.FindClosestParentOfType<ContextRunProgram>();
 }
コード例 #2
0
        public ImmediateMode(ExecutionContext parent)
            : base(parent)
        {
            StdOut("kOS Operating System");
            StdOut("KerboScript v" + Core.VersionInfo.ToString());
            StdOut("");

            bool autoexecExists = false;
            if (SelectedVolume.GetByName("autoexec") != null) {
                autoexecExists = true;
            } else {
                Volume ArchiveVolume = GetVolume("Archive");

                if (ArchiveVolume.GetByName("autoexec") != null) {
                    Add("copy autoexec from archive.");
                    autoexecExists = true;
                }
            }

            if (autoexecExists) {
                StdOut("Executing autoexec...");
                Add("run autoexec.");
            } else {
                StdOut("Autoexec was not found.");
            }

            StdOut("Proceed.");
        }
コード例 #3
0
ファイル: Atmosphere.cs プロジェクト: Nivekk/KOS
        public Atmosphere(CelestialBody body, ExecutionContext context)
        {
            BodyRef = body;

            AddSuffix("HEIGHT", null, ()=>{ return BodyRef.atmosphereDepth; });
            AddSuffix("OXYGEN", null, () => { return BodyRef.atmosphere && BodyRef.atmosphereContainsOxygen; });
            AddSuffix("SEALEVELPRESSURE", null, () => { return BodyRef.atmospherePressureSeaLevel; });
        }
コード例 #4
0
ファイル: InterpreterImmediate.cs プロジェクト: raad287/KOS
 public ImmediateMode(ExecutionContext parent)
     : base(parent)
 {
     StdOut("kOS Operating System Build " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Revision);
     StdOut("KerboScript v0.8");
     StdOut("");
     StdOut("Proceed.");
 }
コード例 #5
0
ファイル: InterpreterImmediate.cs プロジェクト: Jabe/KOS
 public ImmediateMode(ExecutionContext parent)
     : base(parent)
 {
     StdOut("kOS Operating System");
     StdOut("KerboScript v" + Core.VersionInfo.ToString());
     StdOut("");
     StdOut("Proceed.");
 }
コード例 #6
0
ファイル: InterpreterBootup.cs プロジェクト: Nivekk/KOS
        public InterpreterBootup(ExecutionContext parent)
            : base(parent)
        {
            //ShowAnimationFrame(0);
            PrintAt("BOOTING UP...", 22, 20);

            State = ExecutionState.WAIT;
        }
コード例 #7
0
ファイル: Expression.cs プロジェクト: BGog/KOS
        public Expression(String text, ExecutionContext context)
        {
            this.executionContext = context;

            text = text.Trim();
            Text = text;

            UnwrapFullBrackets(ref text);

            Process(text);
        }
コード例 #8
0
ファイル: InterpreterEdit.cs プロジェクト: BGog/KOS
        public InterpreterEdit(String fileName, ExecutionContext parent)
            : base(parent)
        {
            File = SelectedVolume.GetByName(fileName);

            if (File == null)
            {
                File = new File(fileName);
                File.Add("");
            }

            CursorX = 0;
            CursorY = 2;
        }
コード例 #9
0
ファイル: Command.cs プロジェクト: Nivekk/KOS
        public static Command Get(String input, ExecutionContext context, int line)
        {
            try
            {
                Command retCommand = Get(input, context);
                retCommand.Line = line;

                return retCommand;
            }
            catch (kOSException e)
            {
                e.LineNumber = line;
                throw e;
            }
        }
コード例 #10
0
ファイル: Expression.cs プロジェクト: raad287/KOS
        public Expression(String text, ExecutionContext context)
        {
            this.executionContext = context;

            text = text.Trim();
            Text = text;

            if (!Utils.DelimterMatch (text))
            {
                throw new kOSException ("Error: mismatching delimiter.");
            }

            UnwrapFullBrackets(ref text);

            Process(text);
        }
コード例 #11
0
        public Expression(String text, ExecutionContext context)
        {
            this.executionContext = context;

            text = text.Trim();
            Text = text;

            if (!CheckForBrackets(text))
            {
                throw new kOSException("Bracket matching error.");
            }

            UnwrapFullBrackets(ref text);

            Process(text);
        }
コード例 #12
0
ファイル: Command.cs プロジェクト: Nivekk/KOS
        public static Command Get(String input, ExecutionContext context)
        {
            input = input.Trim();//.Replace("\n", " ");

            foreach (var kvp in CommandRegistry.Bindings)
            {
                Match match = Regex.Match(input, kvp.Key, RegexOptions.IgnoreCase);
                if (match.Success)
                {
                    var command = (Command)Activator.CreateInstance(kvp.Value, match, context);
                    return command;
                }
            }

            throw new kOSException("Syntax Error.", context);
        }
コード例 #13
0
ファイル: InterpreterImmediate.cs プロジェクト: Nivekk/KOS
        public ImmediateMode(ExecutionContext parent)
            : base(parent)
        {
            //StdOut("kOS Operating System");
            //StdOut("KerboScript v" + Core.VersionInfo.ToString());

            for (var y = 13; y < 16; y++)
            {
                string output = "";
                for (var x = 11; x < 16; x++)
                {
                    output += ((char)((y*16) + x)).ToString();
                }

                if (y == 15) output += " v" + Core.VersionInfo.ToString();

                StdOut(output);
            }

            StdOut("");
            StdOut("");
            StdOut("Proceed.");
        }
コード例 #14
0
ファイル: BodyTarget.cs プロジェクト: Nivekk/KOS
        public Body(CelestialBody target, ExecutionContext context)
        {
            this.Context = context;
            this.BodyRef = target;

            AddSuffix("NAME", null, () => { return BodyRef.name; });
            AddSuffix("DESCRIPTION", null, () => { return BodyRef.bodyDescription; });
            AddSuffix("MASS", null, () => { return BodyRef.Mass; });
            AddSuffix("POSITION", null, () => { return new Vector(BodyRef.position); });
            AddSuffix("ALTITUDE", null, () => { return BodyRef.orbit.altitude; });
            AddSuffix("APOAPSIS", null, () => { return BodyRef.orbit.ApA; });
            AddSuffix("PERIAPSIS", null, () => { return BodyRef.orbit.PeA; });
            AddSuffix("VELOCITY", null, () => { return new Vector(BodyRef.orbit.GetVel()); });
            AddSuffix("DISTANCE", null, () => { return (float)GetDistance(); });
            AddSuffix("BODY", null, () => { return new Body(BodyRef.orbit.referenceBody, Context); });
            AddSuffix("MU", null, () => { return BodyRef.gravParameter; });
            AddSuffix("ROTATIONPERIOD", null, () => { return BodyRef.rotationPeriod; });
            AddSuffix("RADIUS", null, () => { return BodyRef.Radius; });
            AddSuffix("GRAVITY", null, () => { return BodyRef.gravParameter; });
            AddSuffix("OCEANIC", null, () => { return BodyRef.ocean; });
            AddSuffix("ATMOSPHERE", null, () => { return new Atmosphere(BodyRef, Context); });
            AddSuffix("ATM", null, () => { return new Atmosphere(BodyRef, Context); });
        }
コード例 #15
0
ファイル: CommandBasicIO.cs プロジェクト: civilwargeeky/KOS
 public CommandSetOff(Match regexMatch, ExecutionContext context) : base(regexMatch, context)
 {
 }
コード例 #16
0
ファイル: Command.cs プロジェクト: Nivekk/KOS
 public Command(String input, ExecutionContext context)
     : base(context)
 {
     this.Input = input;
 }
コード例 #17
0
 public virtual void Push(ExecutionContext newChild)
 {
     ChildContext = newChild;
 }
コード例 #18
0
ファイル: CommandFlowControl.cs プロジェクト: niomaster/KOS
 public CommandBreak(Match regexMatch, ExecutionContext context)
     : base(regexMatch, context)
 {
 }
コード例 #19
0
ファイル: CommandFlowControl.cs プロジェクト: niomaster/KOS
 public CommandBlock(String directInput, ExecutionContext context)
     : base(Regex.Match(directInput, "^([\\S\\s]*)$"), context)
 {
 }
コード例 #20
0
ファイル: CommandBasicIO.cs プロジェクト: civilwargeeky/KOS
 public CommandToggle(Match regexMatch, ExecutionContext context) : base(regexMatch, context)
 {
 }
コード例 #21
0
 public CommandVesselListings(Match regexMatch, ExecutionContext context)
     : base(regexMatch, context)
 {
 }
コード例 #22
0
 public Command(String input, ExecutionContext context) : base(context)
 {
     this.Input = input;
 }
コード例 #23
0
ファイル: CommandBasicIO.cs プロジェクト: civilwargeeky/KOS
 public CommandShutdown(Match regexMatch, ExecutionContext context) : base(regexMatch, context)
 {
 }
コード例 #24
0
ファイル: CommandBasicIO.cs プロジェクト: civilwargeeky/KOS
 public CommandReboot(Match regexMatch, ExecutionContext context) : base(regexMatch, context)
 {
 }
コード例 #25
0
 public VesselTarget(Vessel target, ExecutionContext context)
 {
     this.context = context;
     this.target  = target;
 }
コード例 #26
0
 public ExecutionContext(ExecutionContext parent)
 {
     this.ParentContext = parent;
 }
コード例 #27
0
 public CommandVesselStage(Match regexMatch, ExecutionContext context)
     : base(regexMatch, context)
 {
 }
コード例 #28
0
ファイル: CommandBasicIO.cs プロジェクト: civilwargeeky/KOS
 public CommandClearScreen(Match regexMatch, ExecutionContext context) : base(regexMatch, context)
 {
 }
コード例 #29
0
ファイル: BodyTarget.cs プロジェクト: niomaster/KOS
 public BodyTarget(CelestialBody target, ExecutionContext context)
 {
     this.context = context;
     Target = target;
 }
コード例 #30
0
 public static String Evaluate(String text, ExecutionContext context)
 {
     Expression e = new Expression(text, context);
     return e.GetValue().ToString();
 }
コード例 #31
0
ファイル: CommandTemporal.cs プロジェクト: raad287/KOS
 public CommandOnEvent(Match regexMatch, ExecutionContext context)
     : base(regexMatch, context)
 {
 }
コード例 #32
0
ファイル: ExecutionContext.cs プロジェクト: phcorcoran/KOS
        public virtual void Update(float time)
        {
            // Process Command locks
            foreach (Command command in new List<Command>(CommandLocks))
            {
                command.Update(time);
            }

            if (ChildContext != null)
            {
                if (ChildContext.State == ExecutionState.DONE)
                {
                    ChildContext = null;
                }
                else
                {
                    ChildContext.Update(time);
                }
            }
        }
コード例 #33
0
ファイル: CommandFlowControl.cs プロジェクト: niomaster/KOS
 public CommandUntilLoop(Match regexMatch, ExecutionContext context)
     : base(regexMatch, context)
 {
 }
コード例 #34
0
ファイル: VesselTarget.cs プロジェクト: palaslet/KOS
 public VesselTarget(Vessel target, ExecutionContext context)
 {
     this.context = context;
     this.target = target;
 }
コード例 #35
0
ファイル: CommandBasicIO.cs プロジェクト: civilwargeeky/KOS
 public CommandDeclareVar(Match regexMatch, ExecutionContext context) : base(regexMatch, context)
 {
 }
コード例 #36
0
ファイル: CommandBasicIO.cs プロジェクト: civilwargeeky/KOS
 public CommandPrintAt(Match regexMatch, ExecutionContext context) : base(regexMatch, context)
 {
 }
コード例 #37
0
ファイル: ExecutionContext.cs プロジェクト: phcorcoran/KOS
 public virtual void Push(ExecutionContext newChild)
 {
     ChildContext = newChild;
 }
コード例 #38
0
ファイル: BodyTarget.cs プロジェクト: Nivekk/KOS
 public Body(String name, ExecutionContext context)
     : this(VesselUtils.GetBodyByName(name), context)
 {
 }
コード例 #39
0
ファイル: ExecutionContext.cs プロジェクト: phcorcoran/KOS
 public ExecutionContext(ExecutionContext parent)
 {
     this.ParentContext = parent;
 }
コード例 #40
0
 public Command(Match regexMatch, ExecutionContext context) : base(context)
 {
     this.RegexMatch = regexMatch;
 }
コード例 #41
0
ファイル: Command.cs プロジェクト: Nivekk/KOS
 public Command(Match regexMatch, ExecutionContext context)
     : base(context)
 {
     Input = regexMatch.ToString();
     this.RegexMatch = regexMatch;
 }
コード例 #42
0
ファイル: CommandBasicIO.cs プロジェクト: civilwargeeky/KOS
 public CommandSetTerminator(Match regexMatch, ExecutionContext context) : base(regexMatch, context)
 {
 }
コード例 #43
0
ファイル: CommandFileIO.cs プロジェクト: BGog/KOS
 public CommandDelete(Match regexMatch, ExecutionContext context)
     : base(regexMatch, context)
 {
 }
コード例 #44
0
 public kOSException(String message, ExecutionContext context) : this (message)
 {
     this.LineNumber = context.Line;
     this.Context = context;
     this.Program = context.FindClosestParentOfType<ContextRunProgram>();
 }