# DO NOT WRITE INDEXES MANUALLY, use counter! define(⟦QUERY_QU⟧, 0) define(⟦QUERY_END⟧, 1) define(⟦ERROR_QU⟧, 2) define(⟦ERROR_END⟧, 3) define(⟦WARNING_QU⟧, 4) define(⟦WARNING_END⟧, 5) define(⟦LAST_QUEUE⟧, 6) # names of message types define(⟦WARNING_NAME⟧, ⟦warning⟧) define(⟦ERROR_NAME⟧, ⟦error⟧) define(⟦QUERY_NAME⟧, ⟦query⟧) # _________ ___________ # --->/ ERROR \--->/ NEXT_ITEM \---. # | QUERY | \___________/<--' # \_WARNING_/ # A → β # β define(⟦ERROR⟧, ⟦ # transition to the next node define(⟦$0⟧, defn(⟦NEXT_ITEM⟧)) divert($0_QU), "$0_NAME": [ {"⟦$1⟧": "$2"}dnl divert($0_END) ]dnl divert(-1) ⟧) # β define(⟦NEXT_ITEM⟧, ⟦ divert($0_QU), {"⟦$1⟧": "$2"}dnl divert(-1) ⟧) # A → β define(⟦QUERY⟧, defn(⟦ERROR⟧)) define(⟦WARNING⟧, defn(⟦ERROR⟧)) divert(0)dnl {"queue_names": { "_comment": "DONTE()"dnl divert(LAST_QUEUE) }} divert(-1)