raesl.compile.machine_files.machine_parts#

Library with common parts of line matchers.

Module Contents#

Functions#

get_auxiliary_verb_part(→ str)

Part implementing the 'auxiliary-verb' rule.

get_does_auxiliary_verb_part(→ str)

State machine part that implements:

get_is_auxiliary_verb_part(→ str)

State machine part implementing:

get_argument_references_part(→ str)

State machine part implementing the 'argument-references' rule.

get_compare_op_part(→ str)

State machine part implementing the 'compare-op' rule.

get_disjunctive_comparison_part(→ str)

State machine part implementing the 'comparison-rule-line' comparisons.

raesl.compile.machine_files.machine_parts.get_auxiliary_verb_part(start_loc: str, end_1locs: List[str], tagname: str) str#

Part implementing the ‘auxiliary-verb’ rule.

auxiliary-verb ::=

“shall” | “must” | “should” | “could” | “won’t”

raesl.compile.machine_files.machine_parts.get_does_auxiliary_verb_part(start_loc: str, end_1locs: List[str], tagname: str) str#

State machine part that implements:

“does” | auxiliary-verb

raesl.compile.machine_files.machine_parts.get_is_auxiliary_verb_part(start_loc: str, end_1locs: List[str], tagname: str, prefix: str = '') str#

State machine part implementing:

“is” | auxiliary-verb “be”

raesl.compile.machine_files.machine_parts.get_argument_references_part(start_loc: str, end_1locs: List[str], tagname: str, prefix: str = '') str#

State machine part implementing the ‘argument-references’ rule.

argument-references ::=

argument-name { and-connector argument-name }

and-connector ::=

“and” | “,” | “,” “and”

raesl.compile.machine_files.machine_parts.get_compare_op_part(start_loc: str, end_1locs: List[str], tagname: str, prefix: str = '') str#

State machine part implementing the ‘compare-op’ rule.

compare-op ::=

“smaller” “than” | “greater” “than” | “not” “equal” “to” | “equal” “to” | “at” “least” | “at” “most” | “approximately”

raesl.compile.machine_files.machine_parts.get_disjunctive_comparison_part(start_loc: str, end_2locs: List[str], prefix: str = '') str#

State machine part implementing the ‘comparison-rule-line’ comparisons.

comparison-rule-line ::=

comparison { “or” comparison }

comparison ::=

argument-name ( constraint-rule-literal | requirement-rule-literal )

constraint-rule-literal ::=

“is” compare-op bound

requirement-rule-literal ::=

auxiliary-verb “be” ( compare-op bound | objective )

compare-op ::=

“smaller” “than” | “greater” “than” | “not” “equal” “to” | “equal” “to” | “at” “least” | “at” “most” | “approximately”

bound ::=

argument-name | VALUE [ UNIT ] | “t.b.d.” [ UNIT ]

objective ::=

“maximized” | “minimized”