test(tiger): import upstream tests

This commit is contained in:
Bruno BELANYI 2022-06-14 17:30:49 +02:00 committed by Stephan Seitz
parent ef385991b6
commit 6e3f888dc7
16 changed files with 454 additions and 0 deletions

View file

@ -0,0 +1,43 @@
let
var a := exit(0)
/* ^ function.builtin */
primitive exit(ret: int) /* Shadowing the prelude-included built-in */
/* ^ type.builtin */
var b := exit(0)
/* ^ function */
type int = string /* Shadowing the built-in type */
/* ^ type.builtin */
var c : int := "This is an \"int\""
/* ^ type.builtin (not sure why it isn't 'type')*/
var d : Object := nil
/* ^ type.builtin */
type Object = int
var self := "self"
in
let
var c : int := "This is an int"
/* ^ type.builtin (not sure why it isn't 'type')*/
var d : Object := "This is an object"
/* ^ type.builtin (not sure why it isn't 'type')*/
in
end;
exit(1);
/* <- function */
print("shadowing is fun");
/* <- function.builtin */
self;
/* <- variable */
b := print
/* ^ variable */
end

View file

@ -0,0 +1,5 @@
/* This is /* a nested */ comment */
/* <- comment
^ comment
^ comment
*/

View file

@ -0,0 +1,8 @@
primitive print(s: string)
/* ^ function */
/* ^ variable.parameter */
function func(a: int) : int = (print("Hello World!"); a)
/* ^ function */
/* ^ variable.parameter */
/* ^ function */

View file

@ -0,0 +1,29 @@
type int = int
/* ^ variable */
/* ^ type.builtin */
type int_array = array of int
/* ^ type.builtin */
type record = {a: int, b: string}
/* ^ property */
/* ^ type.builtin */
/* ^ property */
/* ^ type.builtin */
var record := record {a = 12, b = "27"}
/* ^ variable */
/* ^ type */
/* ^ property */
/* ^ property */
var array := int_array[12] of 27;
/* ^ variable */
/* ^ type */
primitive func(a: int, b: string) : array
/* ^ variable.parameter */
/* ^ type.builtin */
/* ^ variable.parameter */
/* ^ type.builtin */
/* ^ type */

View file

@ -0,0 +1,3 @@
import "lib.tih"
/* <- keyword */
/* ^ string.special.path */

View file

@ -0,0 +1,41 @@
let
/* <- keyword */
var a := 12
/* <- keyword */
function f() : int = a
/* <- keyword.function */
primitive g()
/* <- keyword.function */
import "lib.tih"
/* <- keyword */
type array_of_int = array of int
/* <- keyword */
/* ^ keyword */
/* ^ keyword */
in
/* <- keyword */
12;
if 12 then 27 else 42;
/* <- keyword */
/* ^ keyword */
/* ^ keyword */
for i := 12 to 27 do 42;
/* <- keyword.repeat */
/* ^ keyword.repeat */
/* ^ keyword.repeat */
while 12 do break
/* <- keyword.repeat */
/* ^ keyword.repeat */
/* ^ keyword */
end
/* <- keyword */

View file

@ -0,0 +1,8 @@
nil
/* <- constant.builtin */
42
/* <- number */
"Hello World!\n"
/* <- string
^ string.escape
*/

View file

@ -0,0 +1,13 @@
let
_chunks(42)
/* <- keyword */
in
_lvalue(12) : _namety(42) := _cast("I'm So Meta Even This Acronym", string);
/* <- keyword */
/* ^ keyword */
/* ^ keyword */
_exp(42)
/* <- keyword */
end

View file

@ -0,0 +1,28 @@
let
class A extends Object {}
/* <- keyword */
/* ^ keyword */
/* ^ type.builtin */
type B = class extends A {
/* ^ keyword */
/* ^ keyword */
/* ^ type */
var a := 12
method meth() : int = self.a
/* <- keyword.method */
/* ^ method */
/* ^ variable.builtin */
}
var object := new B
/* ^ keyword.constructor */
in
object.a := 27;
/* ^ property */
object.meth()
/* ^ method */
end

View file

@ -0,0 +1,48 @@
let
var a : int := 42
/* ^ punctuation.delimiter */
/* ^ operator */
in
(
/* <- punctuation.bracket */
-1 | 2 & 3 + 4 * 5;
/* <- operator */
/* ^ operator */
/* ^ operator */
/* ^ operator */
/* ^ operator */
/* ^ punctuation.delimiter */
12 >= 27;
/* ^ operator */
12 <= 27;
/* ^ operator */
12 = 27;
/* ^ operator */
12 <> 27;
/* ^ operator */
12 < 27;
/* ^ operator */
12 > 27;
/* ^ operator */
record.field;
/* ^ punctuation.delimiter */
func(a, b);
/* ^ punctuation.bracket */
/* ^ punctuation.bracket */
/* ^ punctuation.delimiter */
record_type { };
/* ^ punctuation.bracket */
/* ^ punctuation.bracket */
array[42]
/* ^ punctuation.bracket */
/* ^ punctuation.bracket */
)
/* <- punctuation.bracket */
end