summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/repl/repl.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/repl/repl.go b/internal/repl/repl.go
index ed39755..0bcc4cc 100644
--- a/internal/repl/repl.go
+++ b/internal/repl/repl.go
@@ -18,6 +18,23 @@ import (
const historyFile = ".perc_history"
+// RPNState holds the state for RPN operations in REPL
+type RPNState struct {
+ vars *rpn.Variables
+}
+
+var rpnState *RPNState
+
+// getRPNState returns or creates the RPN state
+func getRPNState() *RPNState {
+ if rpnState == nil {
+ rpnState = &RPNState{
+ vars: rpn.NewVariables().(*rpn.Variables),
+ }
+ }
+ return rpnState
+}
+
// executor runs a calculation command and returns the result
func executor(input string) {
input = strings.TrimSpace(input)