knit_script.knit_script_interpreter.expressions.machine_accessor module
Accessor for components of the machine state.
This module provides expression classes for accessing machine state and sheet components in knit script programs. It includes the Machine_Accessor for direct machine access and Sheet_Expression for referencing specific sheets with gauge configurations.
- class Machine_Accessor(parser_node)[source]
Bases:
Expression
Used to access machine state directly.
The Machine_Accessor class provides direct access to the knitting machine state from knit script expressions. It serves as the bridge between knit script code and the underlying machine state, allowing scripts to access machine properties and needle collections.
This accessor is typically used with attribute access operations to get specific machine components like needle sets, carrier systems, or machine configuration parameters.
- Parameters:
parser_node (
LRStackNode
)
- __init__(parser_node)[source]
Initialize the Machine_Accessor.
- Parameters:
parser_node (LRStackNode) – The parser node from the parse tree.
- evaluate(context)[source]
Evaluate the expression to get the machine state.
- Parameters:
context (Knit_Script_Context) – The current context of the knit_script_interpreter.
- Returns:
The current machine state from the execution context.
- Return type:
Knitting_Machine
- property line_number: int
Get the line number of the symbol that generated this statement.
- Returns:
The line number where this element appears in the source file.
- Return type:
- property location: Location
Get the location of this symbol in KnitScript file.
- Returns:
The location of this symbol in the source file, including file name, line number, and position information.
- Return type:
Location
- class Sheet_Expression(parser_node, sheet_id, gauge_id=None)[source]
Bases:
Expression
Identifies sheets.
The Sheet_Expression class handles the creation and evaluation of sheet identifiers in knit script programs. It supports both simple sheet references and complex sheet specifications with custom gauge values, parsing sheet identifier strings and creating appropriate Sheet_Identifier objects.
This expression type is essential for multi-sheet knitting operations where specific sheets need to be referenced with their gauge configurations. It handles various sheet identifier formats including embedded gauge specifications.
- _sheet_id
The identifier of the sheet, either as an expression or string.
- Type:
- _gauge_id
Optional gauge identifier expression.
- Type:
Expression | None
- Parameters:
parser_node (
LRStackNode
)sheet_id (
Expression
|str
)gauge_id (
Expression
|None
)
- __init__(parser_node, sheet_id, gauge_id=None)[source]
Initialize the Sheet_Expression.
- Parameters:
parser_node (LRStackNode) – The parser node from the parse tree.
sheet_id (Expression | str) – The identifier of the sheet, which can be a string with embedded gauge information or an expression.
gauge_id (Expression | None, optional) – The identifier of the gauge, defaults to current gauge if not specified. Defaults to None.
- evaluate(context)[source]
Evaluate the expression to create a sheet identifier.
Processes the sheet identifier, extracting gauge information if embedded in the string format, and creates a Sheet_Identifier with the appropriate sheet and gauge values.
- Parameters:
context (Knit_Script_Context) – The current context of the knit_script_interpreter.
- Returns:
Identifier for the sheet at the specified or current gauge.
- Return type:
Note
String sheet identifiers can include embedded gauge information in the format “s<sheet>:g<gauge>” where <sheet> and <gauge> are numeric values.
- property line_number: int
Get the line number of the symbol that generated this statement.
- Returns:
The line number where this element appears in the source file.
- Return type:
- property location: Location
Get the location of this symbol in KnitScript file.
- Returns:
The location of this symbol in the source file, including file name, line number, and position information.
- Return type:
Location