Skip to content

backend

Classes:

Builder

Builder()

Bases: Builder

Methods:

Source code in src/irx/builder/backend.py
60
61
62
63
64
65
def __init__(self) -> None:
    """
    title: Initialize Builder.
    """
    super().__init__()
    self.translator = self._new_translator()

activate_runtime_feature

activate_runtime_feature(feature_name: str) -> None
Source code in src/irx/builder/base.py
250
251
252
253
254
255
256
257
def activate_runtime_feature(self, feature_name: str) -> None:
    """
    title: Activate a native runtime feature for this compilation unit.
    parameters:
      feature_name:
        type: str
    """
    self.runtime_feature_names.add(feature_name)

build

build(node: AST, output_file: str) -> None
Source code in src/irx/builder/backend.py
105
106
107
108
109
110
111
112
113
114
115
def build(self, node: astx.AST, output_file: str) -> None:
    """
    title: Build.
    parameters:
      node:
        type: astx.AST
      output_file:
        type: str
    """
    result = self.translate(node)
    self._build_from_ir(result, output_file)

build_modules

build_modules(
    root: ParsedModule,
    resolver: ImportResolver,
    output_file: str,
) -> None
Source code in src/irx/builder/backend.py
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
def build_modules(
    self,
    root: ParsedModule,
    resolver: ImportResolver,
    output_file: str,
) -> None:
    """
    title: Build a reachable graph of parsed modules.
    parameters:
      root:
        type: ParsedModule
      resolver:
        type: ImportResolver
      output_file:
        type: str
    """
    result = self.translate_modules(root, resolver)
    self._build_from_ir(result, output_file)

module

module() -> Module
Source code in src/irx/builder/base.py
231
232
233
234
235
236
237
def module(self) -> astx.Module:
    """
    title: Create a new ASTx Module.
    returns:
      type: astx.Module
    """
    return astx.Module()

run

run(
    *,
    capture_stderr: bool = True,
    raise_on_error: bool = True,
    debug: bool = False,
) -> CommandResult
Source code in src/irx/builder/base.py
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
def run(
    self,
    *,
    capture_stderr: bool = True,
    raise_on_error: bool = True,
    debug: bool = False,
) -> CommandResult:
    """
    title: Run the generated executable.
    parameters:
      capture_stderr:
        type: bool
        default: true
      raise_on_error:
        type: bool
        default: true
      debug:
        type: bool
        default: false
    returns:
      type: CommandResult
    """
    return run_command(
        [self.output_file],
        capture_stderr=capture_stderr,
        raise_on_error=raise_on_error,
        debug=debug,
    )

translate

translate(expr: AST) -> str
Source code in src/irx/builder/backend.py
75
76
77
78
79
80
81
82
83
84
85
def translate(self, expr: astx.AST) -> str:
    """
    title: Translate.
    parameters:
      expr:
        type: astx.AST
    returns:
      type: str
    """
    self.translator = self._new_translator()
    return self.translator.translate(expr)

translate_modules

translate_modules(
    root: ParsedModule, resolver: ImportResolver
) -> str
Source code in src/irx/builder/backend.py
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
def translate_modules(
    self,
    root: ParsedModule,
    resolver: ImportResolver,
) -> str:
    """
    title: Translate a reachable graph of parsed modules.
    parameters:
      root:
        type: ParsedModule
      resolver:
        type: ImportResolver
    returns:
      type: str
    """
    self.translator = self._new_translator()
    return self.translator.translate_modules(root, resolver)