UniSet 2.45.1
Пространство имен st2js.codegen

Классы

class  GenerateStats
class  CodeGenerator

Функции

str generate (IRProgram program, SensorMapping mapping, bool debug=False)
tuple[str, GenerateStatsgenerate_with_stats (IRProgram program, SensorMapping mapping, bool debug=False)

Переменные

dict _OPERATOR_MAP
dict _DEFAULT_VALUES

Подробное описание

JavaScript code generator for the st2js converter.

Walks the typed IR and emits JavaScript source code compatible with the
UniSet2 JScript extension. Generates:
  - load("uniset2-iec61131.js") import
  - uniset_inputs / uniset_outputs sensor arrays
  - Local variable declarations
  - uniset_on_step() function wrapping the PROGRAM body

Sensor variable substitution:
  - VAR_INPUT variables become in_<SensorName>
  - VAR_OUTPUT variables become out_<SensorName>
  - VAR local variables keep their original names

Функции

◆ generate()

str st2js.codegen.generate ( IRProgram program,
SensorMapping mapping,
bool debug = False )
Generate JavaScript source from a typed IRProgram and sensor mapping.

Args:
    program: The typed IRProgram (after type checking).
    mapping: The sensor mapping configuration.
    debug: If True, emit trace instrumentation and program metadata.

Returns:
    A complete JavaScript source string.

◆ generate_with_stats()

tuple[str, GenerateStats] st2js.codegen.generate_with_stats ( IRProgram program,
SensorMapping mapping,
bool debug = False )
Generate JavaScript source and collect statistics.

Returns:
    Tuple of (JavaScript source string, GenerateStats).

Переменные

◆ _DEFAULT_VALUES

dict st2js.codegen._DEFAULT_VALUES
protected
Инициализатор
1= {
2 IECType.BOOL: False,
3 # Signed integers
4 IECType.SINT: 0,
5 IECType.INT: 0,
6 IECType.DINT: 0,
7 IECType.LINT: 0,
8 # Unsigned integers
9 IECType.USINT: 0,
10 IECType.UINT: 0,
11 IECType.UDINT: 0,
12 IECType.ULINT: 0,
13 # Bit-string types
14 IECType.BYTE: 0,
15 IECType.WORD: 0,
16 IECType.DWORD: 0,
17 IECType.LWORD: 0,
18 # Floating point
19 IECType.REAL: 0.0,
20 IECType.LREAL: 0.0,
21 # Other
22 IECType.TIME: 0,
23 IECType.STRING: '""',
24 IECType.WSTRING: '""',
25}

◆ _OPERATOR_MAP

dict st2js.codegen._OPERATOR_MAP
protected
Инициализатор
1= {
2 "=": "===",
3 "<>": "!==",
4 "AND": "&&",
5 "OR": "||",
6 "XOR": "!==",
7 "MOD": "%",
8 "+": "+",
9 "-": "-",
10 "*": "*",
11 "/": "/",
12 ">": ">",
13 "<": "<",
14 ">=": ">=",
15 "<=": "<=",
16}