knit_script.knit_script_interpreter package
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
- Module contents
- Submodules
- knit_script.knit_script_interpreter.scope package
- knit_script.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.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.try_catch_statements module
- knit_script.knit_script_interpreter.statements.xfer_pass_statement module
- Module contents
- Submodules
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_Position
Machine_Bed_Position.Front
Machine_Bed_Position.Front_Slider
Machine_Bed_Position.Back
Machine_Bed_Position.Back_Slider
Machine_Bed_Position.is_front
Machine_Bed_Position.is_slider
Machine_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
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_Context
Knit_Script_Context.variable_scope
Knit_Script_Context.last_carriage_pass_result
Knit_Script_Context.__init__()
Knit_Script_Context.gauged_sheet_record
Knit_Script_Context.add_variable()
Knit_Script_Context.enter_sub_scope()
Knit_Script_Context.exit_current_scope()
Knit_Script_Context.sheet_needle_count
Knit_Script_Context.direction
Knit_Script_Context.carrier
Knit_Script_Context.racking
Knit_Script_Context.sheet
Knit_Script_Context.version
Knit_Script_Context.gauge
Knit_Script_Context.execute_statements()
Knit_Script_Context.get_needle()
Knit_Script_Context.get_machine_needle()
- knit_script.knit_script_interpreter.ks_element module
Module contents
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