summaryrefslogtreecommitdiff
path: root/internal/rpn/boolean_ops.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rpn/boolean_ops.go')
-rw-r--r--internal/rpn/boolean_ops.go167
1 files changed, 0 insertions, 167 deletions
diff --git a/internal/rpn/boolean_ops.go b/internal/rpn/boolean_ops.go
deleted file mode 100644
index fdad862..0000000
--- a/internal/rpn/boolean_ops.go
+++ /dev/null
@@ -1,167 +0,0 @@
-// SPDX-License-Identifier: MIT
-// Copyright (c) 2026 Paul Buetow
-
-package rpn
-
-import (
- "fmt"
-)
-
-// BooleanOperations provides boolean comparison operator implementations.
-type BooleanOperations struct {
-}
-
-// NewBooleanOperations creates a new BooleanOperations instance.
-func NewBooleanOperations() *BooleanOperations {
- return &BooleanOperations{}
-}
-
-// GT pops two values from stack, compares (a > b), and pushes a boolean result.
-func (o *BooleanOperations) GT(stack *Stack) error {
- b, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for gt: %w", err)
- }
-
- a, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for gt: %w", err)
- }
-
- aF, err := toFloat64(a, "gt")
- if err != nil {
- return err
- }
- bF, err := toFloat64(b, "gt")
- if err != nil {
- return err
- }
-
- stack.Push(NewFloatFromBool(aF > bF))
- return nil
-}
-
-// LT pops two values from stack, compares (a < b), and pushes a boolean result.
-func (o *BooleanOperations) LT(stack *Stack) error {
- b, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for lt: %w", err)
- }
-
- a, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for lt: %w", err)
- }
-
- aF, err := toFloat64(a, "lt")
- if err != nil {
- return err
- }
- bF, err := toFloat64(b, "lt")
- if err != nil {
- return err
- }
-
- stack.Push(NewFloatFromBool(aF < bF))
- return nil
-}
-
-// GTE pops two values from stack, compares (a >= b), and pushes a boolean result.
-func (o *BooleanOperations) GTE(stack *Stack) error {
- b, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for gte: %w", err)
- }
-
- a, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for gte: %w", err)
- }
-
- aF, err := toFloat64(a, "gte")
- if err != nil {
- return err
- }
- bF, err := toFloat64(b, "gte")
- if err != nil {
- return err
- }
-
- stack.Push(NewFloatFromBool(aF >= bF))
- return nil
-}
-
-// LTE pops two values from stack, compares (a <= b), and pushes a boolean result.
-func (o *BooleanOperations) LTE(stack *Stack) error {
- b, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for lte: %w", err)
- }
-
- a, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for lte: %w", err)
- }
-
- aF, err := toFloat64(a, "lte")
- if err != nil {
- return err
- }
- bF, err := toFloat64(b, "lte")
- if err != nil {
- return err
- }
-
- stack.Push(NewFloatFromBool(aF <= bF))
- return nil
-}
-
-// EQ pops two values from stack, compares (a == b), and pushes a boolean result.
-func (o *BooleanOperations) EQ(stack *Stack) error {
- b, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for eq: %w", err)
- }
-
- a, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for eq: %w", err)
- }
-
- aF, err := toFloat64(a, "eq")
- if err != nil {
- return err
- }
- bF, err := toFloat64(b, "eq")
- if err != nil {
- return err
- }
-
- stack.Push(NewFloatFromBool(aF == bF))
- return nil
-}
-
-// NEQ pops two values from stack, compares (a != b), and pushes a boolean result.
-func (o *BooleanOperations) NEQ(stack *Stack) error {
- b, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for neq: %w", err)
- }
-
- a, err := stack.Pop()
- if err != nil {
- return fmt.Errorf("insufficient operands for neq: %w", err)
- }
-
- aF, err := toFloat64(a, "neq")
- if err != nil {
- return err
- }
- bF, err := toFloat64(b, "neq")
- if err != nil {
- return err
- }
-
- stack.Push(NewFloatFromBool(aF != bF))
- return nil
-}