tree-sitter-embedded-template 0.19.0

ERB grammar for the tree-sitter parsing library
Documentation
{
  "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": "SYMBOL",
          "name": "code"
        },
        {
          "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": "SYMBOL",
          "name": "code"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "%>"
            },
            {
              "type": "STRING",
              "value": "-%>"
            },
            {
              "type": "STRING",
              "value": "=%>"
            }
          ]
        }
      ]
    },
    "comment_directive": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<%#"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "code"
          },
          "named": true,
          "value": "comment"
        },
        {
          "type": "STRING",
          "value": "%>"
        }
      ]
    },
    "graphql_directive": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<%graphql"
        },
        {
          "type": "SYMBOL",
          "name": "code"
        },
        {
          "type": "STRING",
          "value": "%>"
        }
      ]
    }
  },
  "extras": [
    {
      "type": "PATTERN",
      "value": "\\s"
    }
  ],
  "conflicts": [],
  "precedences": [],
  "externals": [],
  "inline": [],
  "supertypes": []
}