monaqa / tree-sitter-mermaid

Mermaid.js grammar for tree-sitter
MIT License
31 stars 6 forks source link

Can't parse text after "and" in a "par" definition #6

Closed bricka closed 7 months ago

bricka commented 8 months ago

Here is a valid MermaidJS file from the docs: https://mermaid.js.org/syntax/sequenceDiagram.html#parallel

sequenceDiagram
    par Alice to Bob
        Alice->>Bob: Hello guys!
    and Alice to John
        Alice->>John: Hello guys!
    end
    Bob-->>Alice: Hi Alice!
    John-->>Alice: Hi Alice!

However, when parsing this, we get an ERROR node on the string after the and:

(source_file [0, 0] - [8, 0]
  (diagram_sequence [0, 0] - [8, 0]
    (sequence_stmt_par [1, 4] - [5, 7]
      (sequence_text [1, 7] - [1, 20])
      (sequence_stmt_alt_branch [2, 8] - [3, 0]
        (sequence_stmt_signal [2, 8] - [3, 0]
          (sequence_actor [2, 8] - [2, 13])
          (sequence_signal_type [2, 13] - [2, 16]
            (solid_arrow [2, 13] - [2, 16]))
          (sequence_actor [2, 16] - [2, 19])
          (sequence_text [2, 20] - [2, 32])))
      (ERROR [3, 8] - [3, 21]
        (sequence_actor [3, 8] - [3, 21]))
      (sequence_stmt_alt_branch [3, 21] - [5, 0]
        (sequence_stmt_signal [4, 8] - [5, 0]
          (sequence_actor [4, 8] - [4, 13])
          (sequence_signal_type [4, 13] - [4, 16]
            (solid_arrow [4, 13] - [4, 16]))
          (sequence_actor [4, 16] - [4, 20])
          (sequence_text [4, 21] - [4, 33]))))
    (sequence_stmt_signal [6, 4] - [7, 0]
      (sequence_actor [6, 4] - [6, 7])
      (sequence_signal_type [6, 7] - [6, 11]
        (dotted_arrow [6, 7] - [6, 11]))
      (sequence_actor [6, 11] - [6, 16])
      (sequence_text [6, 17] - [6, 27]))
    (sequence_stmt_signal [7, 4] - [8, 0]
      (sequence_actor [7, 4] - [7, 8])
      (sequence_signal_type [7, 8] - [7, 12]
        (dotted_arrow [7, 8] - [7, 12]))
      (sequence_actor [7, 12] - [7, 17])
      (sequence_text [7, 18] - [7, 28]))))