Skip to content

Latest commit

 

History

History
88 lines (83 loc) · 24.9 KB

File metadata and controls

88 lines (83 loc) · 24.9 KB

text_jinja_parser_program_parser

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

Mermaid

stateDiagram-v2
  direction TB
  [*] --> deciding
  deciding --> parse_begin : completion_parse_runtime_ [always] / start_program_parse_
  parse_begin --> dispatch_decision : completion_parse_runtime_ [always] / none
  dispatch_decision --> parsed : completion_parse_runtime_ [at_eof_] / finish_parsed_
  dispatch_decision --> text_emit : completion_parse_runtime_ [token_text_] / none
  dispatch_decision --> comment_emit : completion_parse_runtime_ [token_comment_] / none
  dispatch_decision --> model__ : completion_parse_runtime_ [token_open_statement_] / none
  dispatch_decision --> model__ : completion_parse_runtime_ [token_open_expression_] / none
  dispatch_decision --> parse_failed : completion_parse_runtime_ [token_unexpected_] / fail_current_token_
  text_emit --> dispatch_decision : completion_parse_runtime_ [always] / consume_text_
  comment_emit --> dispatch_decision : completion_parse_runtime_ [always] / consume_comment_
  model__ --> statement_parse_result_decision : completion_parse_runtime_ [always] / none
  statement_parse_result_decision --> dispatch_decision : completion_parse_runtime_ [parse_error_none_] / none
  statement_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_invalid_request_] / none
  statement_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_parse_failed_] / none
  statement_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_internal_error_] / none
  statement_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_untracked_] / none
  statement_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_unknown_] / none
  model__ --> expression_parse_result_decision : completion_parse_runtime_ [always] / none
  expression_parse_result_decision --> dispatch_decision : completion_parse_runtime_ [parse_error_none_] / none
  expression_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_invalid_request_] / none
  expression_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_parse_failed_] / none
  expression_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_internal_error_] / none
  expression_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_untracked_] / none
  expression_parse_result_decision --> parse_failed : completion_parse_runtime_ [parse_error_unknown_] / none
  parsed --> terminate : [always] / none
  parse_failed --> terminate : [always] / none
  deciding --> unexpected_event : _ [always] / on_unexpected_
  parse_begin --> unexpected_event : _ [always] / on_unexpected_
  dispatch_decision --> unexpected_event : _ [always] / on_unexpected_
  text_emit --> unexpected_event : _ [always] / on_unexpected_
  comment_emit --> unexpected_event : _ [always] / on_unexpected_
  statement_parse_result_decision --> unexpected_event : _ [always] / on_unexpected_
  expression_parse_result_decision --> 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 start_program_parse> parse_begin
parse_begin completion<parse_runtime> always none dispatch_decision
dispatch_decision completion<parse_runtime> at_eof> finish_parsed> parsed
dispatch_decision completion<parse_runtime> token_text> none text_emit
dispatch_decision completion<parse_runtime> token_comment> none comment_emit
dispatch_decision completion<parse_runtime> token_open_statement> none model>>
dispatch_decision completion<parse_runtime> token_open_expression> none model>>
dispatch_decision completion<parse_runtime> token_unexpected> fail_current_token> parse_failed
text_emit completion<parse_runtime> always consume_text> dispatch_decision
comment_emit completion<parse_runtime> always consume_comment> dispatch_decision
model>> completion<parse_runtime> always none statement_parse_result_decision
statement_parse_result_decision completion<parse_runtime> parse_error_none> none dispatch_decision
statement_parse_result_decision completion<parse_runtime> parse_error_invalid_request> none parse_failed
statement_parse_result_decision completion<parse_runtime> parse_error_parse_failed> none parse_failed
statement_parse_result_decision completion<parse_runtime> parse_error_internal_error> none parse_failed
statement_parse_result_decision completion<parse_runtime> parse_error_untracked> none parse_failed
statement_parse_result_decision completion<parse_runtime> parse_error_unknown> none parse_failed
model>> completion<parse_runtime> always none expression_parse_result_decision
expression_parse_result_decision completion<parse_runtime> parse_error_none> none dispatch_decision
expression_parse_result_decision completion<parse_runtime> parse_error_invalid_request> none parse_failed
expression_parse_result_decision completion<parse_runtime> parse_error_parse_failed> none parse_failed
expression_parse_result_decision completion<parse_runtime> parse_error_internal_error> none parse_failed
expression_parse_result_decision completion<parse_runtime> parse_error_untracked> none parse_failed
expression_parse_result_decision completion<parse_runtime> parse_error_unknown> none parse_failed
parsed - always none terminate
parse_failed - always none terminate
deciding _ always on_unexpected> unexpected_event
parse_begin _ always on_unexpected> unexpected_event
dispatch_decision _ always on_unexpected> unexpected_event
text_emit _ always on_unexpected> unexpected_event
comment_emit _ always on_unexpected> unexpected_event
statement_parse_result_decision _ always on_unexpected> unexpected_event
expression_parse_result_decision _ 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