diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/repl/repl.go | 17 |
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) |
