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 commit ba223ceecc.
- Revert "fix(tests): remove t32 tests"
  This reverts commit 97957a547b.
This commit is contained in:
Christoph Sax 2023-07-30 17:23:30 +02:00 committed by Christian Clason
parent 2fb7359828
commit 536c8a3880
11 changed files with 422 additions and 3 deletions

View file

@ -1510,9 +1510,9 @@ list.systemtap = {
list.t32 = {
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" },
revision = "767f3c52fe649e4a6ab3551ac287e5b6038c9148",
revision = "9d2520ae9886d3a768a352ec80db8762afb5232d",
},
maintainers = { "@xasc" },
}

View file

@ -99,7 +99,7 @@ local function do_check()
end
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
if not require("nvim-treesitter.parsers").has_parser(k) then

View 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
)

View 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
)

View 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
)

View 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
View 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)

View 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:

View 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:

View 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:

View 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: