knit_script.knit_script_interpreter package
Knit Script Interpreter Package
This package provides the core interpreter infrastructure for the Knit Script language, handling parsing, execution context management, and code generation.
Core Components
- Interpreter Classes:
Knit_Script_Interpreter: Main interpreter class that orchestrates parsing and execution of knit script programs. Knit_Script_Context: Manages execution state, variable scopes, and machine interaction during program execution.
- Parser Infrastructure:
Knit_Script_Parser: Concrete parser implementation using parglare library. knit_script_actions: Action functions for converting parse tree nodes into executable knit script elements.
- Base Classes:
KS_Element: Superclass for all knit script language elements, providing location tracking and common functionality.
Architecture Overview
The interpreter follows a multi-stage execution model:
Parsing Stage: Source code is parsed into an abstract syntax tree using the parglare parser generator with custom grammar rules.
Context Setup: Execution context is established with machine state, variable scopes, and knitout generation infrastructure.
Execution Stage: Statements are executed in order, manipulating machine state and generating knitout instructions.
Output Generation: Final knitout instructions are written to files and knit graphs are generated for visualization.
Key Features
- Language Processing:
Complete knit script grammar implementation
Action-based parse tree transformation
Error handling and location tracking
Module import system support
- Execution Management:
Hierarchical variable scoping
Machine state synchronization
Knitout instruction generation
Context isolation for functions and modules
- Machine Integration:
Direct virtual machine manipulation
Gauge and sheet management
Carrier and yarn control
Needle operation coordination
- Output Generation:
Knitout format compliance
Knit graph visualization
Error recovery and debugging support
Performance optimization
- Error Handling:
Comprehensive exception system
Location-aware error reporting
Graceful failure recovery
Debug output generation
Subpackages
- knit_script.knit_script_interpreter.expressions package
- Submodules
- knit_script.knit_script_interpreter.expressions.Gauge_Expression module
- knit_script.knit_script_interpreter.expressions.Indexed_Expression module
- knit_script.knit_script_interpreter.expressions.accessors module
- knit_script.knit_script_interpreter.expressions.carrier module
- knit_script.knit_script_interpreter.expressions.direction module
- knit_script.knit_script_interpreter.expressions.expressions module
- knit_script.knit_script_interpreter.expressions.formatted_string module
- knit_script.knit_script_interpreter.expressions.function_expressions module
- knit_script.knit_script_interpreter.expressions.instruction_expression module
- knit_script.knit_script_interpreter.expressions.list_expression module
- knit_script.knit_script_interpreter.expressions.machine_accessor module
- knit_script.knit_script_interpreter.expressions.needle_expression module
- knit_script.knit_script_interpreter.expressions.needle_set_expression module
- knit_script.knit_script_interpreter.expressions.not_expression module
- knit_script.knit_script_interpreter.expressions.operator_expressions module
- knit_script.knit_script_interpreter.expressions.values module
- knit_script.knit_script_interpreter.expressions.variables module
- knit_script.knit_script_interpreter.expressions.xfer_pass_racking module
- Submodules
- knit_script.knit_script_interpreter.knitscript_logging package
- knit_script.knit_script_interpreter.scope package
- knit_script.knit_script_interpreter.statements package
- Knit Script Interpreter Statements Package
- Submodules
- knit_script.knit_script_interpreter.statements.Assertion module
- knit_script.knit_script_interpreter.statements.Carriage_Pass_Specification module
- knit_script.knit_script_interpreter.statements.Drop_Pass module
- knit_script.knit_script_interpreter.statements.Import_Statement module
- knit_script.knit_script_interpreter.statements.Print module
- knit_script.knit_script_interpreter.statements.Push_Statement module
- knit_script.knit_script_interpreter.statements.Statement module
- knit_script.knit_script_interpreter.statements.Swap_Statement module
- knit_script.knit_script_interpreter.statements.Variable_Declaration module
- knit_script.knit_script_interpreter.statements.With_Statement module
- knit_script.knit_script_interpreter.statements.assignment module
- knit_script.knit_script_interpreter.statements.branch_statements module
- knit_script.knit_script_interpreter.statements.carrier_statements module
- knit_script.knit_script_interpreter.statements.code_block_statements module
- knit_script.knit_script_interpreter.statements.control_loop_statements module
- knit_script.knit_script_interpreter.statements.express_statement module
- knit_script.knit_script_interpreter.statements.function_dec_statement module
- knit_script.knit_script_interpreter.statements.in_direction_statement module
- knit_script.knit_script_interpreter.statements.instruction_statements module
- knit_script.knit_script_interpreter.statements.return_statement module
- knit_script.knit_script_interpreter.statements.scoped_statement module
- knit_script.knit_script_interpreter.statements.try_catch_statements module
- knit_script.knit_script_interpreter.statements.xfer_pass_statement module
Submodules
- knit_script.knit_script_interpreter.Knit_Script_Interpreter module
- knit_script.knit_script_interpreter.Knit_Script_Parser module
- knit_script.knit_script_interpreter.Machine_Specification module
Machine_Bed_PositionMachine_Bed_Position.FrontMachine_Bed_Position.Front_SliderMachine_Bed_Position.BackMachine_Bed_Position.Back_SliderMachine_Bed_Position.is_frontMachine_Bed_Position.is_sliderMachine_Bed_Position.get_bed()Machine_Bed_Position.__contains__()Machine_Bed_Position.__getitem__()Machine_Bed_Position.__iter__()Machine_Bed_Position.__len__()
- knit_script.knit_script_interpreter.knit_script_actions module
typed_action()program()identifier()declare_variable()declare_global()assertion()print_statement()try_catch()exception_assignment()pause_statement()assignment()float_exp()int_exp()direction_exp()string()f_string_section()formatted_string()call_list()function_call()list_expression()list_comp()indexed_value()slice_index()dict_assign()dict_expression()dict_comp()unpack()code_block()elif_statement()else_statement()if_statement()while_statement()for_each_statement()as_assignment()with_statement()needle_instruction()instruction_assignment()carriage_pass()needle_id()sheet_id()carrier()return_statement()param_list()function_declaration()expression()negation()xfer_rack()xfer_pass()accessor()exp_statement()cut_statement()release_statement()remove_statement()gauge_exp()drop_pass()push_to()push_dir()push_statement()swap_statement()pass_second()import_statement()
- knit_script.knit_script_interpreter.knit_script_context module
Knit_Script_ContextKnit_Script_Context.machine_stateKnit_Script_Context.ks_fileKnit_Script_Context.parserKnit_Script_Context.last_carriage_pass_resultKnit_Script_Context.knitoutKnit_Script_Context.__init__()Knit_Script_Context.variable_scopeKnit_Script_Context.debuggerKnit_Script_Context.versionKnit_Script_Context.gauged_sheet_recordKnit_Script_Context.print()Knit_Script_Context.add_variable()Knit_Script_Context.enter_sub_scope()Knit_Script_Context.exit_current_scope()Knit_Script_Context.sheet_needle_countKnit_Script_Context.directionKnit_Script_Context.carrierKnit_Script_Context.rackingKnit_Script_Context.sheetKnit_Script_Context.gaugeKnit_Script_Context.__class_getitem__()Knit_Script_Context.attach_debugger()Knit_Script_Context.detach_debugger()Knit_Script_Context.execute_statements()Knit_Script_Context.execute_statement()Knit_Script_Context.get_needle()Knit_Script_Context.get_machine_needle()Knit_Script_Context.report_locals()
- knit_script.knit_script_interpreter.ks_element module