summaryrefslogtreecommitdiff
path: root/spec/inputs/annotation.yue
blob: 2124ad35c4117846528a097a5b53c29f07f40187 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
macro ClsDef = (code`ClassDecl) ->
	className = code\match "^class%s+(%w+)"
	lines = table.concat [item\gsub "%-%-%-", "---@" for item in code\gmatch "(%-%-%-.-)\n"], "\n"
	return
		type: "text"
		before: false
		code: |
			---@class #{className}
			#{lines}
			---@class #{className}Class
			---@operator call:#{className}
			---@cast #{className} #{className}Class

$[ClsDef]
class A
	---field x number
	---field y number
	new: (@x = 0, @y = 0) =>
	---field setAdd fun(self: A, x: number, y: number): number Set fields and add number values.
	setAdd: (@x, @y) => @x + @y

a = A!
res = a::setAdd 1, 2
print(a.x, a.y, a.y, res)

return