diff --git a/SLS_Python/sls_calc/__init__.py b/SLS_Python/sls_calc/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/SLS_Python/sls_calc/__main__.py b/SLS_Python/sls_py/calc/__main__.py similarity index 95% rename from SLS_Python/sls_calc/__main__.py rename to SLS_Python/sls_py/calc/__main__.py index d1a29b7..819c4db 100644 --- a/SLS_Python/sls_calc/__main__.py +++ b/SLS_Python/sls_py/calc/__main__.py @@ -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)