tree-sitter-embedded-template 0.23.1

Embedded Template (ERB, EJS) grammar for tree-sitter
Documentation
{
  "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
  "name": "embedded_template",
  "rules": {
    "template": {
      "type": "REPEAT",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "directive"
          },
          {
            "type": "SYMBOL",
            "name": "output_directive"
          },
          {
            "type": "SYMBOL",
            "name": "comment_directive"
          },
          {
            "type": "SYMBOL",
            "name": "graphql_directive"
          },
          {
            "type": "SYMBOL",
            "name": "content"
          }
        ]
      }
    },
    "code": {
      "type": "REPEAT1",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "PATTERN",
            "value": "[^%=_-]+|[%=_-]"
          },
          {
            "type": "STRING",
            "value": "%%>"
          }
        ]
      }
    },
    "content": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "REPEAT1",
        "content": {
          "type": "CHOICE",
          "members": [
            {
              "type": "PATTERN",
              "value": "[^<]+|<"
            },
            {
              "type": "STRING",
              "value": "<%%"
            }
          ]
        }
      }
    },
    "directive": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "<%"
            },
            {
              "type": "STRING",
              "value": "<%_"
            },
            {
              "type": "STRING",
              "value": "<%|"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "code"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "%>"
            },
            {
              "type": "STRING",
              "value": "-%>"
            },
            {
              "type": "STRING",
              "value": "_%>"
            }
          ]
        }
      ]
    },
    "output_directive": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "<%="
            },
            {
              "type": "STRING",
              "value": "<%=="
            },
            {
              "type": "STRING",
              "value": "<%|="
            },
            {
              "type": "STRING",
              "value": "<%|=="
            },
            {
              "type": "STRING",
              "value": "<%-"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "code"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "%>"
            },
            {
              "type": "STRING",
              "value": "-%>"
            },
            {
              "type": "STRING",
              "value": "=%>"
            }
          ]
        }
      ]
    },
    "comment_directive": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<%#"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "code"
              },
              "named": true,
              "value": "comment"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "%>"
        }
      ]
    },
    "graphql_directive": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<%graphql"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "code"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "%>"
        }
      ]
    }
  },
  "extras": [],
  "conflicts": [],
  "precedences": [],
  "externals": [],
  "inline": [],
  "supertypes": []
}