Add built-in types
Not sure why it seems like the 'is-not? local' is not working. Will investigate later
This commit is contained in:
parent
2d89ec8b20
commit
3e1068a336
|
@ -3,6 +3,10 @@
|
|||
function: (identifier) @function.builtin)
|
||||
(#match? @function.builtin "^(chr|concat|exit|flush|getchar|not|ord|print|print_err|print_int|size|strcmp|streq|substring)$")
|
||||
(#is-not? local))
|
||||
|
||||
((type_identifier) @type.builtin
|
||||
(#match? @type.builtin "^(int|string)$")
|
||||
(#is-not? local))
|
||||
; }}}
|
||||
|
||||
; Keywords {{{
|
||||
|
|
|
@ -3,11 +3,23 @@ let
|
|||
/* ^ 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')*/
|
||||
in
|
||||
let
|
||||
var c : int := "This is an int"
|
||||
/* ^ type.builtin (not sure why it isn't 'type')*/
|
||||
in
|
||||
end;
|
||||
|
||||
exit(1);
|
||||
/* <- function */
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
type int = int
|
||||
/* ^ variable */
|
||||
/* ^ type */
|
||||
/* ^ type.builtin */
|
||||
|
||||
type int_array = array of int
|
||||
/* ^ type */
|
||||
/* ^ type.builtin */
|
||||
|
||||
type record = {a: int, b: string}
|
||||
/* ^ property */
|
||||
/* ^ type */
|
||||
/* ^ type.builtin */
|
||||
/* ^ property */
|
||||
/* ^ type */
|
||||
/* ^ type.builtin */
|
||||
|
||||
var record := record {a = 12, b = "27"}
|
||||
/* ^ variable */
|
||||
|
@ -23,7 +23,7 @@ var array := int_array[12] of 27;
|
|||
|
||||
primitive func(a: int, b: string) : array
|
||||
/* ^ variable.parameter */
|
||||
/* ^ type */
|
||||
/* ^ type.builtin */
|
||||
/* ^ variable.parameter */
|
||||
/* ^ type */
|
||||
/* ^ type.builtin */
|
||||
/* ^ type */
|
||||
|
|
Loading…
Reference in a new issue