Skip to content

Latest commit

 

History

History
66 lines (61 loc) · 20.1 KB

File metadata and controls

66 lines (61 loc) · 20.1 KB

text_jinja_parser_program_parser_expression_parser

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

Mermaid

stateDiagram-v2
  direction TB
  [*] --> deciding
  deciding --> expression_first_decision : completion_parse_runtime_ [always] / begin_expression_parse_
  expression_first_decision --> parse_failed : completion_parse_runtime_ [expr_scan_eof_] / fail_expression_start_token_
  expression_first_decision --> parse_failed : completion_parse_runtime_ [expr_first_is_close_] / fail_expression_close_token_
  expression_first_decision --> parsed : completion_parse_runtime_ [expr_first_identifier_followed_by_close_] / consume_expression_identifier_and_close_
  expression_first_decision --> expression_scan : completion_parse_runtime_ [expr_first_is_identifier_] / consume_expression_identifier_
  expression_first_decision --> expression_scan : completion_parse_runtime_ [expr_first_is_literal_] / consume_expression_literal_
  expression_first_decision --> expression_scan : completion_parse_runtime_ [expr_first_is_unary_] / consume_expression_unary_
  expression_first_decision --> expression_scan : completion_parse_runtime_ [expr_first_is_other_content_] / consume_expression_compound_
  expression_scan --> expression_emit_decision : completion_parse_runtime_ [expr_scan_at_close_] / none
  expression_scan --> expression_scan : completion_parse_runtime_ [expr_scan_continue_] / consume_expression_token_
  expression_scan --> parse_failed : completion_parse_runtime_ [expr_scan_eof_] / fail_expression_start_token_
  expression_emit_decision --> expression_close : completion_parse_runtime_ [expression_identifier_] / emit_expression_identifier_
  expression_emit_decision --> expression_close : completion_parse_runtime_ [expression_non_identifier_] / emit_expression_generic_
  expression_close --> parsed : completion_parse_runtime_ [expr_scan_at_close_] / consume_expression_close_
  expression_close --> parse_failed : completion_parse_runtime_ [expr_scan_eof_] / fail_expression_start_token_
  parsed --> terminate : [always] / none
  parse_failed --> terminate : [always] / none
  deciding --> unexpected_event : _ [always] / on_unexpected_
  expression_first_decision --> unexpected_event : _ [always] / on_unexpected_
  expression_scan --> unexpected_event : _ [always] / on_unexpected_
  expression_emit_decision --> unexpected_event : _ [always] / on_unexpected_
  expression_close --> 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 begin_expression_parse> expression_first_decision
expression_first_decision completion<parse_runtime> expr_scan_eof> fail_expression_start_token> parse_failed
expression_first_decision completion<parse_runtime> expr_first_is_close> fail_expression_close_token> parse_failed
expression_first_decision completion<parse_runtime> expr_first_identifier_followed_by_close> consume_expression_identifier_and_close> parsed
expression_first_decision completion<parse_runtime> expr_first_is_identifier> consume_expression_identifier> expression_scan
expression_first_decision completion<parse_runtime> expr_first_is_literal> consume_expression_literal> expression_scan
expression_first_decision completion<parse_runtime> expr_first_is_unary> consume_expression_unary> expression_scan
expression_first_decision completion<parse_runtime> expr_first_is_other_content> consume_expression_compound> expression_scan
expression_scan completion<parse_runtime> expr_scan_at_close> none expression_emit_decision
expression_scan completion<parse_runtime> expr_scan_continue> consume_expression_token> expression_scan
expression_scan completion<parse_runtime> expr_scan_eof> fail_expression_start_token> parse_failed
expression_emit_decision completion<parse_runtime> expression_identifier> emit_expression_identifier> expression_close
expression_emit_decision completion<parse_runtime> expression_non_identifier> emit_expression_generic> expression_close
expression_close completion<parse_runtime> expr_scan_at_close> consume_expression_close> parsed
expression_close completion<parse_runtime> expr_scan_eof> fail_expression_start_token> parse_failed
parsed - always none terminate
parse_failed - always none terminate
deciding _ always on_unexpected> unexpected_event
expression_first_decision _ always on_unexpected> unexpected_event
expression_scan _ always on_unexpected> unexpected_event
expression_emit_decision _ always on_unexpected> unexpected_event
expression_close _ 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