コード例 #1
0
ファイル: PrintToConsole.cs プロジェクト: LloydLion/DuMir
        public override void Execute(InterpretatorContext ctx)
        {
            var attr = InnerCodeAttributes[0];

            if (attr.StartsWith("$"))
            {
                attr = ctx.GetVariable(InnerCodeAttributes[0][1..]).CurrentValue.ToString();
コード例 #2
0
ファイル: Delay.cs プロジェクト: LloydLion/DuMir
        public override void Execute(InterpretatorContext ctx)
        {
            var attr = 0;

            if (InnerCodeAttributes[0].StartsWith("$"))
            {
                attr = (int)ctx.GetVariable(InnerCodeAttributes[0][1..]).CurrentValue;
コード例 #3
0
 public override void Execute(InterpretatorContext ctx)
 {
     if (SelectedVariant == 0)
     {
         ctx.GetVariable(InnerCodeAttributes[0]).SetValue(new ExpressionHandler(InnerCodeAttributes[1]).Run(ctx));
     }
 }
コード例 #4
0
        public override void OnStart(InterpretatorContext ctx)
        {
            ctx.ExecutablesIterators.Add(-1);

            for (int i = 0; i < Executables.Count; i++)
            {
                var exec = Executables[i];
                ctx.ExecutablesIterators[^ 1] = i;
コード例 #5
0
ファイル: IfBlock.cs プロジェクト: LloydLion/DuMir
        public override IList <CodeExecutable> GetExecutablesForBlockExecute(InterpretatorContext ctx)
        {
            var value = (bool)new ExpressionHandler(InnerCodeAttributes[0]).Run(ctx);

            if (value == true)
            {
                return(base.GetExecutablesForBlockExecute(ctx));
            }
            else
            {
                return(new List <CodeExecutable>());
            }
        }
コード例 #6
0
 public override void Execute(InterpretatorContext ctx)
 {
 }
コード例 #7
0
 public override void Execute(InterpretatorContext ctx)
 {
     ctx.GetVariable(InnerCodeAttributes[0]).SetValue(ConsoleHandler.Global.ReadLine());
 }
コード例 #8
0
 public override void Execute(InterpretatorContext ctx)
 {
     ctx.ChangeIterators(ctx.GetBookmark(InnerCodeAttributes[0]).InterpretatorPointer);
 }
コード例 #9
0
 public override void Execute(InterpretatorContext ctx)
 {
     GetExecutablesForBlockExecute(ctx).InvokeForAll(s => s.Execute(ctx));
 }
コード例 #10
0
 public virtual IList <CodeExecutable> GetExecutablesForBlockExecute(InterpretatorContext ctx) => Executables;
コード例 #11
0
        public override void Execute(InterpretatorContext ctx)
        {
            var var = ctx.Variables.Single(s => s.Name == InnerCodeAttributes[0]);

            var.SetValue(new ExpressionHandler(InnerCodeAttributes[1]).Run(ctx));
        }
コード例 #12
0
        public override void OnStart(InterpretatorContext ctx)
        {
            var var = new ProgramVariable(InnerCodeAttributes[0], DefineBlock);

            ctx.Variables.Add(var);
        }
コード例 #13
0
 public override void OnStart(InterpretatorContext ctx)
 {
     ctx.Bookmarks.Add(new ProgramBookmark(InnerCodeAttributes[0], ctx.ExecutablesIterators.ToArray(), DefineBlock));
 }
コード例 #14
0
 public virtual void OnStart(InterpretatorContext ctx)
 {
 }
コード例 #15
0
 public abstract void Execute(InterpretatorContext ctx);
コード例 #16
0
ファイル: Pragma.cs プロジェクト: LloydLion/DuMir
        public override void Execute(InterpretatorContext ctx)
        {
            var value = SelectedVariant == 1;

            ctx.Pragmas.SetOrAddValue((PragmaKey)Enum.Parse(typeof(PragmaKey), InnerCodeAttributes[0]), value);
        }