Moved sls_py.calc

This commit is contained in:
Kyler Olsen 2025-12-08 00:07:27 -07:00
parent 56dcf72241
commit 36dad7e5e8
2 changed files with 14 additions and 8 deletions

View File

@ -6,7 +6,13 @@ Implements classic HP calculator interface with stack display
import tkinter as tk
from tkinter import ttk, font as tkfont
import sls_py
from .. import (
InterpreterState,
LexerInfo,
lexical_analysis,
TokenType,
StackType,
)
class SlsCalculator:
def __init__(self, root):
@ -16,8 +22,8 @@ class SlsCalculator:
self.root.resizable(False, False)
# Initialize interpreter
self.interp = sls_py.InterpreterState()
self.lexer = sls_py.LexerInfo()
self.interp = InterpreterState()
self.lexer = LexerInfo()
# Current entry buffer
self.entry_buffer = ""
@ -199,10 +205,10 @@ class SlsCalculator:
self.lexer.column = 1
self.lexer.line = 1
tokens = sls_py.lexical_analysis(self.lexer)
tokens = lexical_analysis(self.lexer)
for token in tokens:
if token.type == sls_py.TokenType.EOF:
if token.type == TokenType.EOF:
break
if not self.interp.execute(token):
print(f"Error executing: {code}")
@ -235,9 +241,9 @@ class SlsCalculator:
def format_stack_entry(self, entry):
"""Format a stack entry for display"""
if entry.type == sls_py.StackType.I64:
if entry.type == StackType.I64:
return str(entry.value)
elif entry.type == sls_py.StackType.DOUBLE:
elif entry.type == StackType.DOUBLE:
val = entry.value
# Format with appropriate precision
if abs(val) < 1e-10 and val != 0:
@ -246,7 +252,7 @@ class SlsCalculator:
return f"{val:.6e}"
else:
return f"{val:.10g}"
elif entry.type == sls_py.StackType.BOOLEAN:
elif entry.type == StackType.BOOLEAN:
return str(entry.value)
else:
return str(entry.value)