{ "name": "dotenv", "rules": { "document": { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "comment" }, { "type": "SYMBOL", "name": "assignment" } ] } }, "assignment": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "key", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "=" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_value" } }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_end_of_assignment" } ] }, "comment": { "type": "PATTERN", "value": "\\#[^\\n]*" }, "identifier": { "type": "PATTERN", "value": "[A-Za-z_][A-Za-z0-9_]*" }, "_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "string_interpolation" }, { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "boolean" }, { "type": "SYMBOL", "name": "value" } ] }, "string": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "SYMBOL", "name": "string_content" }, { "type": "STRING", "value": "'" } ] }, "string_interpolation": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "string_interpolation_content" }, "named": true, "value": "string_content" }, { "type": "STRING", "value": "\"" } ] }, "string_content": { "type": "PATTERN", "value": "[^']*" }, "string_interpolation_content": { "type": "PATTERN", "value": "[^\"]*" }, "number": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "integer" }, { "type": "SYMBOL", "name": "float" }, { "type": "SYMBOL", "name": "hexadecimal" } ] }, "integer": { "type": "PATTERN", "value": "(\\-)?[1-9]\\d*" }, "hexadecimal": { "type": "PATTERN", "value": "0[xX][0-9a-fA-F]+" }, "float": { "type": "PATTERN", "value": "(\\-)?[1-9]\\d*\\.\\d+" }, "boolean": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "true" }, { "type": "STRING", "value": "false" } ] } }, "value": { "type": "PATTERN", "value": "[^\\#\\s\\\"\\']+" } }, "extras": [ { "type": "PATTERN", "value": "\\s" } ], "conflicts": [], "precedences": [], "externals": [ { "type": "SYMBOL", "name": "_end_of_assignment" } ], "inline": [], "supertypes": [] }