Skip to content

Latest commit

 

History

History
80 lines (75 loc) · 25.8 KB

File metadata and controls

80 lines (75 loc) · 25.8 KB

text_jinja_parser_program_parser_statement_parser

Source: emel/text/jinja/parser/program_parser/statement_parser/sm.hpp

Mermaid

stateDiagram-v2
  direction TB
  [*] --> deciding
  deciding --> statement_kind_decision : completion_parse_runtime_ [always] / none
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_set_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_if_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_elif_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_else_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_endif_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_for_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_endfor_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_macro_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_endmacro_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_call_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_endcall_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_filter_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_endfilter_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_break_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_continue_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_generation_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_endgeneration_] / begin_statement_scan_
  statement_kind_decision --> statement_scan : completion_parse_runtime_ [statement_name_endset_] / begin_statement_scan_
  statement_kind_decision --> parse_failed : completion_parse_runtime_ [statement_identifier_missing_] / fail_statement_open_token_
  statement_kind_decision --> parse_failed : completion_parse_runtime_ [statement_name_unknown_] / fail_statement_name_token_
  statement_scan --> parsed : completion_parse_runtime_ [statement_scan_at_close_] / consume_statement_close_and_emit_
  statement_scan --> statement_scan : completion_parse_runtime_ [statement_scan_continue_] / consume_statement_token_
  statement_scan --> parse_failed : completion_parse_runtime_ [statement_scan_eof_] / fail_statement_start_token_
  parsed --> terminate : [always] / none
  parse_failed --> terminate : [always] / none
  deciding --> unexpected_event : _ [always] / on_unexpected_
  statement_kind_decision --> unexpected_event : _ [always] / on_unexpected_
  statement_scan --> unexpected_event : _ [always] / on_unexpected_
  parsed --> unexpected_event : _ [always] / on_unexpected_
  parse_failed --> unexpected_event : _ [always] / on_unexpected_
  unexpected_event --> unexpected_event : _ [always] / on_unexpected_
Loading

Transitions

Source Event Guard Action Target
deciding completion<parse_runtime> always none statement_kind_decision
statement_kind_decision completion<parse_runtime> statement_name_set> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_if> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_elif> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_else> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_endif> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_for> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_endfor> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_macro> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_endmacro> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_call> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_endcall> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_filter> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_endfilter> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_break> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_continue> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_generation> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_endgeneration> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_name_endset> begin_statement_scan> statement_scan
statement_kind_decision completion<parse_runtime> statement_identifier_missing> fail_statement_open_token> parse_failed
statement_kind_decision completion<parse_runtime> statement_name_unknown> fail_statement_name_token> parse_failed
statement_scan completion<parse_runtime> statement_scan_at_close> consume_statement_close_and_emit> parsed
statement_scan completion<parse_runtime> statement_scan_continue> consume_statement_token> statement_scan
statement_scan completion<parse_runtime> statement_scan_eof> fail_statement_start_token> parse_failed
parsed - always none terminate
parse_failed - always none terminate
deciding _ always on_unexpected> unexpected_event
statement_kind_decision _ always on_unexpected> unexpected_event
statement_scan _ always on_unexpected> unexpected_event
parsed _ always on_unexpected> unexpected_event
parse_failed _ always on_unexpected> unexpected_event
unexpected_event _ always on_unexpected> unexpected_event