:py:mod:`raesl.compile.machine_files.relation_instances`
========================================================
.. py:module:: raesl.compile.machine_files.relation_instances
.. autoapi-nested-parse::
Line matcher state machines for relation instances.
Module Contents
---------------
Functions
~~~~~~~~~
.. autoapisummary::
raesl.compile.machine_files.relation_instances._process_relinst_header
raesl.compile.machine_files.relation_instances._process_new_relinst
raesl.compile.machine_files.relation_instances._process_relinst_argheader
raesl.compile.machine_files.relation_instances._process_instance_arguments
Attributes
~~~~~~~~~~
.. autoapisummary::
raesl.compile.machine_files.relation_instances._RELATION_HEADER_SPEC
raesl.compile.machine_files.relation_instances._RELATION_INSTANCE_SPEC
raesl.compile.machine_files.relation_instances._RELATION_ARGUMENT_HEADER_SPEC
raesl.compile.machine_files.relation_instances.MACHINES
.. py:data:: _RELATION_HEADER_SPEC
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
relation_header:
start initial;
start -> s1 [RELATION_KW] tag=relation;
end accept=relation_header;
s1 -> end [NL_TK];
s1 -> end [EOF_TK];
"""
.. raw:: html
.. py:function:: _process_relinst_header(tags: raesl.compile.machine_files.typing.TokensDict, _accept: str, builder: raesl.compile.typechecking.ast_builder.AstBuilder) -> None
.. py:data:: _RELATION_INSTANCE_SPEC
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
relation_instance:
start initial;
start -> s1 [NAME] tag=relation_inst_name;
s1 -> s2 [COLON_TK];
s2 -> s3 [NAME] tag=relation_def_name;
end accept=instance_line;
s3 -> end [NL_TK];
s3 -> end [EOF_TK];
"""
.. raw:: html
.. py:function:: _process_new_relinst(tags: raesl.compile.machine_files.typing.TokensDict, _accept: str, builder: raesl.compile.typechecking.ast_builder.AstBuilder) -> None
.. py:data:: _RELATION_ARGUMENT_HEADER_SPEC
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
relation_argument_header:
start initial;
start -> s1 [REQUIRING_KW] tag=argtype;
start -> s1 [RETURNING_KW] tag=argtype;
start -> s1 [RELATING_KW] tag=argtype;
s1 -> s2 [ARGUMENT_KW];
end accept=header_argument_line;
s2 -> end [NL_TK];
s2 -> end [EOF_TK];
"""
.. raw:: html
.. py:function:: _process_relinst_argheader(tags: raesl.compile.machine_files.typing.TokensDict, _accept: str, builder: raesl.compile.typechecking.ast_builder.AstBuilder) -> None
.. py:function:: _process_instance_arguments(tags: raesl.compile.machine_files.typing.TokensDict, _accept: str, builder: raesl.compile.typechecking.ast_builder.AstBuilder) -> None
.. py:data:: MACHINES
:type: raesl.compile.machine_files.typing.MachineTripletList
:value: [('RELATION_HEADER_MACHINE',), ('RELATION_INSTANCE_MACHINE',),...