diff options
Diffstat (limited to 'internal/rpn/rpn_parse.go')
| -rw-r--r-- | internal/rpn/rpn_parse.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/internal/rpn/rpn_parse.go b/internal/rpn/rpn_parse.go index 92292ae..51c64c7 100644 --- a/internal/rpn/rpn_parse.go +++ b/internal/rpn/rpn_parse.go @@ -405,6 +405,19 @@ func extractVariableName(token string) string { return token } +// extractVarName extracts a variable name from a StackValue. +// Handles Symbol and StringNum types, falls back to String(). +func extractVarName(val StackValue) string { + switch v := val.(type) { + case *Symbol: + return v.Name() + case *StringNum: + return v.String() + default: + return val.String() + } +} + // checkStackOverflow returns an error if the stack has reached the maximum size. func (r *RPN) checkStackOverflow(stack *Stack) error { if stack.Len() >= r.maxStack { |
