Exemple #1
0
        public static SprakBoolean IsKeyPressed(
            ExecutionContext context, SprakString key)
        {
            bool result = context.Computer?.Screen.IsKeyPressed(key.Value) ?? false;

            return(SprakBoolean.From(result));
        }
Exemple #2
0
        // H

        public static SprakBoolean HasFunction(ExecutionContext context,
                                               SprakString name)
        {
            bool exists = context.SignatureResolver
                          .FindFunctions(name.Value)
                          .Any();

            return(SprakBoolean.From(exists));
        }
Exemple #3
0
        public override void Execute(ExecutionContext context)
        {
            // Remember, latest first on a stack
            SprakNumber second = context.Memory.PopValue <SprakNumber>();
            SprakNumber first  = context.Memory.PopValue <SprakNumber>();

            SprakBoolean result = SprakBoolean.From(first.Value > second.Value);

            context.Memory.PushValue(result);
        }
Exemple #4
0
        public override void Execute(ExecutionContext context)
        {
            SprakBoolean condition = context.Memory.PopValue <SprakBoolean>();

            if (!condition.Value)
            {
                context.Instructions.Jump(LabelName);
            }
            else
            {
                context.Instructions.Step();
            }
        }
Exemple #5
0
        public LiteralGet(Token token) : base(token)
        {
            switch (Token.Type)
            {
            case TokenType.Boolean:

                if (bool.TryParse(token.Content, out bool boolean))
                {
                    Value = SprakBoolean.From(boolean);
                }

                else
                {
                    throw new TokenCheckException(token, $"Unable to parse boolean from {token}");
                }

                break;

            case TokenType.Number:

                if (double.TryParse(token.Content, out double number))
                {
                    Value = new SprakNumber(number);
                }

                else
                {
                    throw new TokenCheckException(token, $"Unable to parse number from {token}");
                }

                break;

            case TokenType.String:

                Value = new SprakString(token.Content);

                break;

            default: throw new TokenCheckException(
                          token, $"Unsupported token for {nameof(LiteralGet)}: {token}");
            }

            token.ExpressionHint = this;
        }
Exemple #6
0
 public static SprakBoolean NotEqual(SprakString left, SprakString right)
 {
     return(SprakBoolean.From(left != right));
 }
Exemple #7
0
 public static SprakBoolean And(SprakBoolean left, SprakBoolean right)
 {
     return(SprakBoolean.From(left.Value && right.Value));
 }
Exemple #8
0
 public static SprakBoolean Not(SprakBoolean right)
 {
     return(SprakBoolean.From(!right.Value));
 }
Exemple #9
0
 public static SprakBoolean GreaterThanOrEquals(SprakNumber left, SprakNumber right)
 {
     return(SprakBoolean.From(left.Value >= right.Value));
 }
Exemple #10
0
 public static SprakBoolean LessThanOrEquals(SprakNumber left, SprakNumber right)
 {
     return(SprakBoolean.From(left.Value <= right.Value));
 }
Exemple #11
0
 public static SprakBoolean NotEqual(SprakConnection left, SprakConnection right)
 {
     return(SprakBoolean.From(left.ConnectionString != right.ConnectionString));
 }
Exemple #12
0
 public static SprakBoolean NotEqual(Value left, Value right)
 {
     return(SprakBoolean.From(left != right));
 }
Exemple #13
0
 public static SprakBoolean NotEqual(SprakArray left, SprakArray right)
 {
     return(SprakBoolean.From(left != right));
 }
Exemple #14
0
 public static SprakBoolean Or(SprakBoolean left, SprakBoolean right)
 {
     return(SprakBoolean.From(left.Value || right.Value));
 }
Exemple #15
0
 public static SprakBoolean NotEqual(SprakNumber left, SprakNumber right)
 {
     return(SprakBoolean.From(left != right));
 }
Exemple #16
0
 public static SprakBoolean Equal(SprakConnection left, SprakConnection right)
 {
     return(SprakBoolean.From(left == right));
 }
Exemple #17
0
 public static SprakBoolean Equal(SprakBoolean left, SprakBoolean right)
 {
     return(SprakBoolean.From(left.Value == right.Value));
 }