diff options
| author | Amaan Qureshi <amaanq12@gmail.com> | 2023-03-26 18:37:15 -0400 |
|---|---|---|
| committer | Amaan Qureshi <amaanq12@gmail.com> | 2023-03-27 10:46:59 -0400 |
| commit | eb1e5992518742d3483a6650e7d1a3c5a48393fb (patch) | |
| tree | 63685a3a543c4a6716a10c386974afd46fe419e3 /queries/firrtl | |
| parent | feat: add Pony (diff) | |
| download | nvim-treesitter-eb1e5992518742d3483a6650e7d1a3c5a48393fb.tar nvim-treesitter-eb1e5992518742d3483a6650e7d1a3c5a48393fb.tar.gz nvim-treesitter-eb1e5992518742d3483a6650e7d1a3c5a48393fb.tar.bz2 nvim-treesitter-eb1e5992518742d3483a6650e7d1a3c5a48393fb.tar.lz nvim-treesitter-eb1e5992518742d3483a6650e7d1a3c5a48393fb.tar.xz nvim-treesitter-eb1e5992518742d3483a6650e7d1a3c5a48393fb.tar.zst nvim-treesitter-eb1e5992518742d3483a6650e7d1a3c5a48393fb.zip | |
feat: add FIRRTL
Diffstat (limited to 'queries/firrtl')
| -rw-r--r-- | queries/firrtl/folds.scm | 6 | ||||
| -rw-r--r-- | queries/firrtl/highlights.scm | 189 | ||||
| -rw-r--r-- | queries/firrtl/indents.scm | 12 | ||||
| -rw-r--r-- | queries/firrtl/injections.scm | 1 | ||||
| -rw-r--r-- | queries/firrtl/locals.scm | 38 |
5 files changed, 246 insertions, 0 deletions
diff --git a/queries/firrtl/folds.scm b/queries/firrtl/folds.scm new file mode 100644 index 000000000..437b2c81c --- /dev/null +++ b/queries/firrtl/folds.scm @@ -0,0 +1,6 @@ +[ + (circuit) + (module) + (when) + (else) +] @fold diff --git a/queries/firrtl/highlights.scm b/queries/firrtl/highlights.scm new file mode 100644 index 000000000..551b2e751 --- /dev/null +++ b/queries/firrtl/highlights.scm @@ -0,0 +1,189 @@ +; Namespaces + +(circuit (identifier) @namespace) + +(module (identifier) @namespace) + +; Types + +((identifier) @type + (#lua-match? @type "^[A-Z][A-Za-z0-9_$]*$")) + +; Keywords + +[ + "circuit" + "module" + "extmodule" + + "flip" + "parameter" + "reset" + "wire" + + "cmem" + "smem" + "mem" + + "reg" + "with" + "mport" + "inst" + "of" + "node" + "is" + "invalid" + "skip" + + "infer" + "read" + "write" + "rdwr" + + "defname" +] @keyword + +; Qualifiers + +(qualifier) @type.qualifier + +; Storageclasses + +[ + "input" + "output" +] @storageclass + +; Conditionals + +[ + "when" + "else" +] @conditional + +; Annotations + +(info) @attribute + +; Builtins + +[ + "stop" + "printf" + "assert" + "assume" + "cover" + "attach" + "mux" + "validif" +] @function.builtin + +[ + "UInt" + "SInt" + "Analog" + "Fixed" + "Clock" + "AsyncReset" + "Reset" +] @type.builtin + +; Fields + +[ + "data-type" + "depth" + "read-latency" + "write-latency" + "read-under-write" + "reader" + "writer" + "readwriter" +] @field.builtin + +((field_id) @field + (#set! "priority" 105)) + +(port (identifier) @field) + +(wire (identifier) @field) + +(cmem (identifier) @field) + +(smem (identifier) @field) + +(memory (identifier) @field) + +(register (identifier) @field) + +; Parameters + +(primitive_operation (identifier) @parameter) + +(mux (identifier) @parameter) +(printf (identifier) @parameter) +(reset (identifier) @parameter) +(stop (identifier) @parameter) + +; Variables + +(identifier) @variable + +; Operators + +(primop) @keyword.operator + +[ + "+" + "-" + "=" + "=>" + "<=" + "<-" +] @operator + +; Literals + +[ + (uint) + (number) +] @number + +(number_str) @string.special + +(double) @float + +(string) @string + +(escape_sequence) @string.escape + +[ + "old" + "new" + "undefined" +] @constant.builtin + +; Punctuation + +[ "{" "}" ] @punctuation.bracket + +[ "[" "]" ] @punctuation.bracket + +[ "<" ">" ] @punctuation.bracket + +[ "(" ")" ] @punctuation.bracket + +[ + "," + "." + ":" +] @punctuation.delimiter + +; Comments + +(comment) @comment @spell + +["=>" "<=" "="] @operator + +; Error +(ERROR) @error diff --git a/queries/firrtl/indents.scm b/queries/firrtl/indents.scm new file mode 100644 index 000000000..8bc1e2019 --- /dev/null +++ b/queries/firrtl/indents.scm @@ -0,0 +1,12 @@ +[ + (circuit) + (module) + (memory) + (when) + (else) +] @indent.begin + +[ + (ERROR) + (comment) +] @indent.auto diff --git a/queries/firrtl/injections.scm b/queries/firrtl/injections.scm new file mode 100644 index 000000000..4bb7d675d --- /dev/null +++ b/queries/firrtl/injections.scm @@ -0,0 +1 @@ +(comment) @comment diff --git a/queries/firrtl/locals.scm b/queries/firrtl/locals.scm new file mode 100644 index 000000000..bb7fc56bd --- /dev/null +++ b/queries/firrtl/locals.scm @@ -0,0 +1,38 @@ +; Scopes + +[ + (source_file) + (circuit) + (module) + + (else) + (when) +] @scope + +; References + +(identifier) @reference + +; Definitions + +(port (identifier) @definition.field) + +(wire (identifier) @definition.field) + +(cmem (identifier) @definition.field) + +(smem (identifier) @definition.field) + +(memory (identifier) @definition.field) + +(register (identifier) @definition.field) + +(circuit (identifier) @definition.namespace) + +(module (identifier) @definition.namespace) + +(parameter (identifier) @definition.parameter) + +(rdwr (identifier) @definition.var) + +(node (identifier) @definition.var) |
