mirror of
https://github.com/imezx/Warp.git
synced 2025-04-25 15:40:02 +00:00
7 lines
33 KiB
JavaScript
7 lines
33 KiB
JavaScript
|
const lang = Object.freeze({ "displayName": "VHDL", "fileTypes": ["vhd", "vhdl", "vho", "vht"], "name": "vhdl", "patterns": [{ "include": "#block_processing" }, { "include": "#cleanup" }], "repository": { "architecture_pattern": { "patterns": [{ "begin": "(?x)\n\n # The word architecture $1\n \\b((?i:architecture))\\s+\n \n # Followed up by a valid $3 or invalid identifier $4\n (([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\s)\\s+\n\n # The word of $5\n ((?i:of))\\s+\n\n # Followed by a valid $7 or invalid identifier $8\n (([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*(?i:is))\\b\n ", "beginCaptures": { "1": { "name": "keyword.language.vhdl" }, "3": { "name": "entity.name.type.architecture.begin.vhdl" }, "4": { "name": "invalid.illegal.invalid.identifier.vhdl" }, "5": { "name": "keyword.language.vhdl" }, "7": { "name": "entity.name.type.entity.reference.vhdl" }, "8": { "name": "invalid.illegal.invalid.identifier.vhdl" } }, "end": "(?x)\n # The word end $1\n \\b((?i:end))\n\n # Optional word architecture $3\n (\\s+((?i:architecture)))?\n\n # Optional same identifier $6 or illegal identifier $7\n (\\s+((\\3)|(.+?)))?\n\n # This will cause the previous to capture until just before the ; or $\n (?=\\s*;)\n ", "endCaptures": { "1": { "name": "keyword.language.vhdl" }, "3": { "name": "keyword.language.vhdl" }, "6": { "name": "entity.name.type.architecture.end.vhdl" }, "7": { "name": "invalid.illegal.mismatched.identifier.vhdl" } }, "name": "support.block.architecture", "patterns": [{ "include": "#block_pattern" }, { "include": "#function_definition_pattern" }, { "include": "#procedure_definition_pattern" }, { "include": "#component_pattern" }, { "include": "#if_pattern" }, { "include": "#process_pattern" }, { "include": "#type_pattern" }, { "include": "#record_pattern" }, { "include": "#for_pattern" }, { "include": "#entity_instantiation_pattern" }, { "include": "#component_instantiation_pattern" }, { "include": "#cleanup" }] }] }, "attribute_list": { "patterns": [{ "begin": "\\'\\(", "beginCaptures": { "0": { "name": "punctuation.vhdl" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.vhdl" } }, "patterns": [{ "include": "#parenthetical_list" }, { "include": "#cleanup" }] }] }, "block_pattern": { "patterns": [{ "begin": "(?x)\n # From the beginning of the line\n ^\\s*\n\n (\n ([a-zA-Z][a-zA-Z0-9_]*)\n\n # Colon\n \\s*(:)\\s*\n )?\n\n (\\s*(?i:block))\n ", "beginCaptures": { "2": { "name": "meta.block.block.name" }, "3": { "name": "keyword.language.vhdl" }, "4": { "name": "keyword.language.vhdl" } }, "end": "(?x)\n # The word end $1\n ((?i:end\\s+block))\n\n # Optional identifier\n (\\s+((\\2)|(.+?)))?\n\n (?=\\s*;)\n ", "endCaptures": { "1": { "name": "keyword.language.vhdl" }, "2": { "name": "meta.block.block.end" }, "5": { "name": "invalid.illegal.mismatched.identifier.vhdl" } }, "name": "meta.block.block", "patterns": [{ "include": "#control_patterns" }, { "include": "#cleanup" }] }] }, "block_processing": { "patterns": [{ "include": "#package_pattern" }, { "include": "#package_body_pattern" }, { "include": "#entity_pattern" }, { "include": "#architecture_pattern" }] }, "case_pattern": { "patterns": [{ "begin": "(?x)\n # Beginning of line ...\n ^\\s*\n\n # Optional identifier ... $3 or invalid identifier $4\n (\n (\n ([a-zA-Z][a-zA-Z0-9_]*)\n |(.+?)\n )\n \\s*:\\s*\n )?\n\n # The word case $5\n \\b((?i:case))\\b\n ", "beginCaptures": { "3": { "name": "entity.name.tag.case.begin.vhdl" }, "4": { "name": "invalid.illegal.invalid.identifier.vhdl" }, "5": { "name": "keyword.language.vhdl" } }, "end": "(?x)\n # The word end $1\n \\b((?i:end))\\s*\n\n # The word case $4 or invalid word $5\n (\\s+(((?i:case))|(.*?)))\n\n # Optional identifier from before $8 or illegal $9\n (\\s+((\\2)|(.*?)))?\n\n # Ending with a semicolon\n (?=\\s*;)\n ", "endCaptures": {
|
||
|
var vhdl = [
|
||
|
lang
|
||
|
];
|
||
|
|
||
|
export { vhdl as default };
|