From 8dbe047feaae419d9a5bdc34dfe9153e6704fd7f Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 11 Apr 2026 21:34:01 +0300 Subject: Add constants lookup in rpn_parse.go handleOperator - Added constants lookup after variable lookup in rpn_parse.go - Now constants like pi, e, phi, sqrt2, inf, nan work in RPN expressions --- internal/rpn/rpn_parse.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/rpn/rpn_parse.go b/internal/rpn/rpn_parse.go index 6659c57..45531bb 100644 --- a/internal/rpn/rpn_parse.go +++ b/internal/rpn/rpn_parse.go @@ -465,6 +465,12 @@ func (r *RPN) handleOperator(stack *Stack, token string, tokenIndex int) (string stack.Push(NewNumber(val, r.mode)) return "", nil } + // Check if it's a constant reference (before operators) + if val, exists := r.consts.GetConstant(token); exists { + stack.Push(NewNumber(val, r.mode)) + return "", nil + } + // Handle standard operators (common logic extracted for DRY) // This must be done BEFORE pushing Symbol for unknown identifiers, -- cgit v1.2.3