mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-12 00:10:04 -04:00
feat(t32): re-enable tests
- Switch to GitLab mirror repository - Lock grammar version 2.2.0 - Revert "fix(tests): mark t32 as allowed to fail" This reverts commitba223ceecc. - Revert "fix(tests): remove t32 tests" This reverts commit97957a547b.
This commit is contained in:
parent
2fb7359828
commit
536c8a3880
11 changed files with 422 additions and 3 deletions
|
|
@ -1510,9 +1510,9 @@ list.systemtap = {
|
||||||
|
|
||||||
list.t32 = {
|
list.t32 = {
|
||||||
install_info = {
|
install_info = {
|
||||||
url = "https://codeberg.org/xasc/tree-sitter-t32",
|
url = "https://gitlab.com/xasc/tree-sitter-t32",
|
||||||
files = { "src/parser.c", "src/scanner.c" },
|
files = { "src/parser.c", "src/scanner.c" },
|
||||||
revision = "767f3c52fe649e4a6ab3551ac287e5b6038c9148",
|
revision = "9d2520ae9886d3a768a352ec80db8762afb5232d",
|
||||||
},
|
},
|
||||||
maintainers = { "@xasc" },
|
maintainers = { "@xasc" },
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ local function do_check()
|
||||||
end
|
end
|
||||||
|
|
||||||
local ok, result = pcall(do_check)
|
local ok, result = pcall(do_check)
|
||||||
local allowed_to_fail = { "t32" } -- codeberg hoster is unreliable
|
local allowed_to_fail = vim.split(vim.env.ALLOWED_INSTALLATION_FAILURES or "", ",", true)
|
||||||
|
|
||||||
for k, v in pairs(require("nvim-treesitter.parsers").get_parser_configs()) do
|
for k, v in pairs(require("nvim-treesitter.parsers").get_parser_configs()) do
|
||||||
if not require("nvim-treesitter.parsers").has_parser(k) then
|
if not require("nvim-treesitter.parsers").has_parser(k) then
|
||||||
|
|
|
||||||
49
tests/indent/t32/if_block.cmm
Normal file
49
tests/indent/t32/if_block.cmm
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
IF &a
|
||||||
|
STOP
|
||||||
|
|
||||||
|
IF (TRUE())
|
||||||
|
(
|
||||||
|
BREAK
|
||||||
|
)
|
||||||
|
|
||||||
|
IF (&b+CouNT())
|
||||||
|
(
|
||||||
|
continue
|
||||||
|
)
|
||||||
|
|
||||||
|
IF FOUND()
|
||||||
|
STOP
|
||||||
|
ELSE
|
||||||
|
CONTinue
|
||||||
|
|
||||||
|
IF &c
|
||||||
|
CONTinue
|
||||||
|
ELSE IF FALSE()
|
||||||
|
Break
|
||||||
|
ELSE
|
||||||
|
stop
|
||||||
|
|
||||||
|
IF &d
|
||||||
|
(
|
||||||
|
STOP
|
||||||
|
)
|
||||||
|
ELSE IF &e
|
||||||
|
; comment A
|
||||||
|
(
|
||||||
|
CONTINUE
|
||||||
|
)
|
||||||
|
ELSE
|
||||||
|
; comment B
|
||||||
|
(
|
||||||
|
BREAK
|
||||||
|
)
|
||||||
|
|
||||||
|
IF &f
|
||||||
|
IF &g
|
||||||
|
stop
|
||||||
|
ELSE
|
||||||
|
IF &h
|
||||||
|
(
|
||||||
|
continue
|
||||||
|
)
|
||||||
|
|
||||||
27
tests/indent/t32/repeat_block.cmm
Normal file
27
tests/indent/t32/repeat_block.cmm
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
RePeaT 10. PRINT "A"
|
||||||
|
|
||||||
|
RePeaT &a
|
||||||
|
print
|
||||||
|
|
||||||
|
REPEAT 0xaAfF09
|
||||||
|
(
|
||||||
|
cont
|
||||||
|
)
|
||||||
|
|
||||||
|
RPT
|
||||||
|
(
|
||||||
|
b
|
||||||
|
)
|
||||||
|
|
||||||
|
rpt
|
||||||
|
(
|
||||||
|
s
|
||||||
|
)
|
||||||
|
WHILE &a
|
||||||
|
|
||||||
|
REPEAT TRUE()
|
||||||
|
; comment
|
||||||
|
(
|
||||||
|
cont
|
||||||
|
)
|
||||||
|
|
||||||
23
tests/indent/t32/subroutine_block.cmm
Normal file
23
tests/indent/t32/subroutine_block.cmm
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
printA:
|
||||||
|
(
|
||||||
|
PRINT "A"
|
||||||
|
RETURN
|
||||||
|
)
|
||||||
|
|
||||||
|
sUBROUtINE printB
|
||||||
|
(
|
||||||
|
ENTRY &in
|
||||||
|
|
||||||
|
PRINT "&in"
|
||||||
|
RETURN
|
||||||
|
)
|
||||||
|
|
||||||
|
SUBROUTINE printC
|
||||||
|
// comment
|
||||||
|
(
|
||||||
|
PARAMETERS &a &b
|
||||||
|
|
||||||
|
PRINT "&a"+"&b"
|
||||||
|
ENDDO
|
||||||
|
)
|
||||||
|
|
||||||
14
tests/indent/t32/while_block.cmm
Normal file
14
tests/indent/t32/while_block.cmm
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
WHILE &a
|
||||||
|
Step
|
||||||
|
|
||||||
|
WHILE (sYmbol.EXIT(main))
|
||||||
|
(
|
||||||
|
Step
|
||||||
|
Break
|
||||||
|
)
|
||||||
|
|
||||||
|
WHILE (FALSE())
|
||||||
|
// comment
|
||||||
|
(
|
||||||
|
ECHO "test"
|
||||||
|
)
|
||||||
123
tests/indent/t32_spec.lua
Normal file
123
tests/indent/t32_spec.lua
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
local Runner = require("tests.indent.common").Runner
|
||||||
|
local XFAIL = require("tests.indent.common").XFAIL
|
||||||
|
|
||||||
|
local runner = Runner:new(it, "tests/indent/t32", {
|
||||||
|
tabstop = 2,
|
||||||
|
shiftwidth = 2,
|
||||||
|
softtabstop = 0,
|
||||||
|
expandtab = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
describe("indent t32:", function()
|
||||||
|
describe("whole file:", function()
|
||||||
|
runner:whole_file "."
|
||||||
|
end)
|
||||||
|
|
||||||
|
describe("new line:", function()
|
||||||
|
runner:new_line("if_block.cmm", { on_line = 2, text = "GOTO start", indent = 0 }, "command after IF", XFAIL)
|
||||||
|
|
||||||
|
runner:new_line("if_block.cmm", { on_line = 5, text = "GOTO start", indent = 2 }, "command in IF then block")
|
||||||
|
|
||||||
|
runner:new_line("if_block.cmm", { on_line = 4, text = "(", indent = 0 }, "block after IF")
|
||||||
|
|
||||||
|
for ii, test in ipairs {
|
||||||
|
{ 1, 2 },
|
||||||
|
{ 14, 2 },
|
||||||
|
{ 19, 2 },
|
||||||
|
{ 21, 2 },
|
||||||
|
{ 41, 2 },
|
||||||
|
{ 42, 4 },
|
||||||
|
} do
|
||||||
|
runner:new_line(
|
||||||
|
"if_block.cmm",
|
||||||
|
{ on_line = test[1], text = "&x=1.", indent = test[2] },
|
||||||
|
"command in IF then[" .. ii .. "]"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
runner:new_line("if_block.cmm", { on_line = 45, text = "&x=1.", indent = 2 }, "command in IF then")
|
||||||
|
|
||||||
|
for ii, test in ipairs {
|
||||||
|
{ 16, 2 },
|
||||||
|
{ 21, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 44, 4 },
|
||||||
|
} do
|
||||||
|
runner:new_line(
|
||||||
|
"if_block.cmm",
|
||||||
|
{ on_line = test[1], text = "(\n", indent = test[2] },
|
||||||
|
"command in IF else[" .. ii .. "]"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
runner:new_line("while_block.cmm", { on_line = 2, text = "&x=1.", indent = 2 }, "command after WHILE")
|
||||||
|
|
||||||
|
runner:new_line("while_block.cmm", { on_line = 4, text = "&x=1.", indent = 0 }, "command after WHILE")
|
||||||
|
|
||||||
|
runner:new_line("while_block.cmm", { on_line = 1, text = "(\n", indent = 0 }, "block in WHILE then")
|
||||||
|
|
||||||
|
for ii, test in ipairs {
|
||||||
|
{ 5, 2 },
|
||||||
|
{ 12, 2 },
|
||||||
|
} do
|
||||||
|
runner:new_line(
|
||||||
|
"while_block.cmm",
|
||||||
|
{ on_line = test[1], text = "&x=1.", indent = test[2] },
|
||||||
|
"command in WHILE then block[" .. ii .. "]"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
for ii, test in ipairs {
|
||||||
|
{ 1, 0, nil },
|
||||||
|
{ 4, 2, XFAIL },
|
||||||
|
} do
|
||||||
|
runner:new_line(
|
||||||
|
"repeat_block.cmm",
|
||||||
|
{ on_line = test[1], text = "&x=1.", indent = test[2] },
|
||||||
|
"command after RePeaT[" .. ii .. "]"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
runner:new_line("repeat_block.cmm", { on_line = 3, text = "(\n", indent = 0 }, "block in RePeaT then")
|
||||||
|
|
||||||
|
for ii, test in ipairs {
|
||||||
|
{ 7, 2, XFAIL },
|
||||||
|
{ 18, 2, nil },
|
||||||
|
{ 24, 2, XFAIL },
|
||||||
|
} do
|
||||||
|
runner:new_line(
|
||||||
|
"repeat_block.cmm",
|
||||||
|
{ on_line = test[1], text = "&x=1.", indent = test[2] },
|
||||||
|
"command in RePeaT then block [" .. ii .. "]"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
runner:new_line("subroutine_block.cmm", { on_line = 1, text = "(\n", indent = 0 }, "block after call label")
|
||||||
|
|
||||||
|
for ii, test in ipairs {
|
||||||
|
{ 2, 2, XFAIL },
|
||||||
|
{ 3, 2, nil },
|
||||||
|
{ 8, 2, XFAIL },
|
||||||
|
{ 12, 2, nil },
|
||||||
|
{ 19, 2, XFAIL },
|
||||||
|
} do
|
||||||
|
runner:new_line(
|
||||||
|
"subroutine_block.cmm",
|
||||||
|
{ on_line = test[1], text = "&x=1.", indent = test[2] },
|
||||||
|
"command in subroutine block[" .. ii .. "]"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
for ii, test in ipairs {
|
||||||
|
{ 5, 2 },
|
||||||
|
{ 13, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
} do
|
||||||
|
runner:new_line(
|
||||||
|
"subroutine_block.cmm",
|
||||||
|
{ on_line = test[1], text = "&x=1.", indent = test[2] },
|
||||||
|
"command after subroutine block[" .. ii .. "]"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end)
|
||||||
10
tests/query/highlights/t32/comments.cmm
Normal file
10
tests/query/highlights/t32/comments.cmm
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
// This is a comment
|
||||||
|
; <- comment
|
||||||
|
|
||||||
|
; Another comment
|
||||||
|
; <- comment
|
||||||
|
|
||||||
|
ECHO &a // This is a trailing comment
|
||||||
|
; ^ comment
|
||||||
|
|
||||||
|
// vim: set ft=t32:
|
||||||
108
tests/query/highlights/t32/keywords.cmm
Normal file
108
tests/query/highlights/t32/keywords.cmm
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
PRIVATE &password
|
||||||
|
; <- keyword
|
||||||
|
; ^ variable.builtin
|
||||||
|
ENTRY &password
|
||||||
|
; <- keyword
|
||||||
|
; ^ parameter
|
||||||
|
|
||||||
|
ENTRY %LINE &salt
|
||||||
|
; <- keyword
|
||||||
|
; ^ constant.builtin
|
||||||
|
; ^ parameter
|
||||||
|
|
||||||
|
IF "&password"==""
|
||||||
|
; <- conditional
|
||||||
|
; ^ string
|
||||||
|
; ^ variable.builtin
|
||||||
|
; ^ operator
|
||||||
|
(
|
||||||
|
ECHO "Failed to provide password."
|
||||||
|
ENDDO
|
||||||
|
; ^ keyword.return
|
||||||
|
)
|
||||||
|
ELSE
|
||||||
|
; <- conditional
|
||||||
|
(
|
||||||
|
PRIVATE &pass
|
||||||
|
|
||||||
|
&pass=FALSE()
|
||||||
|
; ^ function.builtin
|
||||||
|
WHILE !&pass
|
||||||
|
; ^ operator
|
||||||
|
(
|
||||||
|
GOSUB verify_password "&password"
|
||||||
|
; ^ function.call
|
||||||
|
RETURNVALUES &pass
|
||||||
|
; ^ parameter
|
||||||
|
WAIT 10.ms
|
||||||
|
; ^ number
|
||||||
|
)
|
||||||
|
|
||||||
|
IF !&pass
|
||||||
|
GOTO fail
|
||||||
|
; ^ label
|
||||||
|
ELSE
|
||||||
|
(
|
||||||
|
GOSUB start_debug
|
||||||
|
; ^ function.call
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
LOCAL &num
|
||||||
|
; ^ variable.builtin
|
||||||
|
|
||||||
|
&num = 2.
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
RePeaT &num PRINT "Password: &password"
|
||||||
|
; ^ variable.builtin
|
||||||
|
; ^ variable.builtin
|
||||||
|
|
||||||
|
WinCLEAR
|
||||||
|
FramePOS ,,,,Maximized
|
||||||
|
; ^ punctuation.delimiter
|
||||||
|
; ^ constant
|
||||||
|
WinPOS 0% 50% 100% 35%
|
||||||
|
; ^ number
|
||||||
|
COVerage.ListFunc
|
||||||
|
|
||||||
|
ENDDO
|
||||||
|
|
||||||
|
|
||||||
|
fail:
|
||||||
|
; <- label
|
||||||
|
PRINT %ERROR "Password verification failed."
|
||||||
|
END
|
||||||
|
; ^ keyword.return
|
||||||
|
|
||||||
|
|
||||||
|
verify_password:
|
||||||
|
; <- function
|
||||||
|
(
|
||||||
|
PARAMETERS &password
|
||||||
|
; ^ parameter
|
||||||
|
|
||||||
|
SYStem.Option.KEYCODE "&password"
|
||||||
|
SYStem.JtagClock 1kHz
|
||||||
|
; ^ number
|
||||||
|
SYStem.Mode.Attach
|
||||||
|
|
||||||
|
Data.Set EAXI:0x34000000 %Long 0x34000100 0x34000021 /verify
|
||||||
|
; ^ number
|
||||||
|
; ^ constant.builtin
|
||||||
|
; ^ constant
|
||||||
|
|
||||||
|
RETURN TRUE()
|
||||||
|
; ^ keyword.return
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
SUBROUTINE start_debug
|
||||||
|
; ^ function
|
||||||
|
(
|
||||||
|
Go main
|
||||||
|
RETURN
|
||||||
|
; ^ keyword.return
|
||||||
|
)
|
||||||
|
|
||||||
|
// vim: set ft=t32:
|
||||||
38
tests/query/highlights/t32/literals.cmm
Normal file
38
tests/query/highlights/t32/literals.cmm
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
WinPOS ,,1000.,,,,myWatchWindow
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
PRinTer.OPEN "~~~/varwatch.txt" ASCIIE
|
||||||
|
; ^ string
|
||||||
|
|
||||||
|
sYmbol.NEW _InitialSP 0x34000100
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
DO ~~~~/test.cmm
|
||||||
|
; ^ string.special
|
||||||
|
|
||||||
|
WAIT 1.ns
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
SYStem.JtagClock 100.GHZ
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
DATA.SET P:&HEAD+0x4 %LONG DATA.LONG(EA:&HEAD+0x4)&0xFFFFFF
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
List `main`
|
||||||
|
; ^ symbol
|
||||||
|
|
||||||
|
&range = 'a'--'z'||'0'--'9'
|
||||||
|
; ^ character
|
||||||
|
; ^ operator
|
||||||
|
; ^ character
|
||||||
|
|
||||||
|
Data.Set N: 0xffff800000 0y0011xx01xx&&a
|
||||||
|
; ^ number
|
||||||
|
; ^ number
|
||||||
|
; ^ operator
|
||||||
|
|
||||||
|
WinPOS 0% 85% 100% 15%
|
||||||
|
; ^ number
|
||||||
|
|
||||||
|
// vim: set ft=t32:
|
||||||
27
tests/query/highlights/t32/var.cmm
Normal file
27
tests/query/highlights/t32/var.cmm
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
Var.NEWGLOBAL char[4][32] \myarr
|
||||||
|
; <- keyword
|
||||||
|
; ^ type
|
||||||
|
; ^ variable.builtin
|
||||||
|
LOCAL &i &data
|
||||||
|
|
||||||
|
&data="zero|one|two|three"
|
||||||
|
|
||||||
|
&i=0.
|
||||||
|
WHILE &i<4
|
||||||
|
(
|
||||||
|
PRIVATE &val
|
||||||
|
&val=STRing.SPLIT("&data","|",&i)
|
||||||
|
Var.Assign \myarr[&i]="&val"
|
||||||
|
; ^ variable.builtin
|
||||||
|
&i=&i+1.
|
||||||
|
)
|
||||||
|
|
||||||
|
Var.NEWLOCAL \x
|
||||||
|
; <- keyword
|
||||||
|
; ^ variable.builtin
|
||||||
|
Var.set \x=func3(5,3)
|
||||||
|
; ^ variable.builtin
|
||||||
|
PRINT Var.VALUE(\x)
|
||||||
|
; ^ variable.builtin
|
||||||
|
|
||||||
|
// vim: set ft=t32:
|
||||||
Loading…
Add table
Add a link
Reference in a new issue