fix impatient not found on bootstrap
This commit is contained in:
committed by
Sidhanth Rathod
parent
33c304f627
commit
074b656cbd
31
tree-sitter-lua/test/corpus/chunk.txt
Normal file
31
tree-sitter-lua/test/corpus/chunk.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
================================================================================
|
||||
chunk
|
||||
================================================================================
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk)
|
||||
|
||||
================================================================================
|
||||
hash_bang_line
|
||||
================================================================================
|
||||
|
||||
#!/usr/bin/env lua
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(hash_bang_line))
|
||||
|
||||
================================================================================
|
||||
return_statement
|
||||
================================================================================
|
||||
|
||||
return 42
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(return_statement
|
||||
(expression_list
|
||||
(number))))
|
||||
80
tree-sitter-lua/test/corpus/comments.txt
Normal file
80
tree-sitter-lua/test/corpus/comments.txt
Normal file
@@ -0,0 +1,80 @@
|
||||
================================================================================
|
||||
comment
|
||||
================================================================================
|
||||
|
||||
--
|
||||
-- single-line comment, below an empty single-line comment
|
||||
|
||||
--[[
|
||||
print("block comment")
|
||||
--]]
|
||||
|
||||
--[[
|
||||
print("block comment")
|
||||
]]
|
||||
|
||||
-- [[
|
||||
print("not block comment")
|
||||
--]]
|
||||
|
||||
--[=[[print("level 1 block comment")]]=]
|
||||
|
||||
--[=[
|
||||
[print("level 1 block comment")]
|
||||
]=]
|
||||
|
||||
--[=[
|
||||
[print("level 1 block comment")
|
||||
]=]
|
||||
|
||||
--[=[
|
||||
print("level 1 block comment")]
|
||||
]=]
|
||||
|
||||
--[=[
|
||||
[[print("level 1 block comment")
|
||||
]=]
|
||||
|
||||
--[=[
|
||||
print("level 1 block comment")]]
|
||||
]=]
|
||||
|
||||
--[==[
|
||||
print("level 2 block comment")
|
||||
-- ]==]
|
||||
|
||||
--[==[
|
||||
print("level 2 block comment")
|
||||
]==]
|
||||
|
||||
-- [==[
|
||||
print("not level 2 block comment")
|
||||
--]==]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(string)))
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(comment)
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(string)))
|
||||
(comment))
|
||||
591
tree-sitter-lua/test/corpus/expressions.txt
Normal file
591
tree-sitter-lua/test/corpus/expressions.txt
Normal file
@@ -0,0 +1,591 @@
|
||||
================================================================================
|
||||
nil
|
||||
================================================================================
|
||||
|
||||
exp(nil)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(nil))))
|
||||
|
||||
================================================================================
|
||||
false
|
||||
================================================================================
|
||||
|
||||
exp(false)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(false))))
|
||||
|
||||
================================================================================
|
||||
true
|
||||
================================================================================
|
||||
|
||||
exp(true)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(true))))
|
||||
|
||||
================================================================================
|
||||
number
|
||||
================================================================================
|
||||
|
||||
exp(
|
||||
3,
|
||||
345,
|
||||
0xff,
|
||||
0xBEBADA,
|
||||
3.0,
|
||||
3.1416,
|
||||
314.16e-2,
|
||||
0.31416E1,
|
||||
34e1,
|
||||
0x0.1E,
|
||||
0xA23p-4,
|
||||
0X1.921FB54442D18P+1
|
||||
)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number)
|
||||
(number))))
|
||||
|
||||
================================================================================
|
||||
string
|
||||
================================================================================
|
||||
|
||||
exp(
|
||||
"string",
|
||||
'string',
|
||||
"a\
|
||||
b",
|
||||
'a\z',
|
||||
'a\z
|
||||
',
|
||||
'a\z
|
||||
b',
|
||||
"'a\z\
|
||||
b'",
|
||||
"c",
|
||||
'c',
|
||||
"0",
|
||||
[[ string ]],
|
||||
[[
|
||||
string
|
||||
string
|
||||
]],
|
||||
[=[
|
||||
string
|
||||
string
|
||||
]=],
|
||||
[=[[string]]=],
|
||||
[=[
|
||||
[string]
|
||||
]=],
|
||||
[=[
|
||||
[string
|
||||
]=],
|
||||
[=[
|
||||
string]
|
||||
]=],
|
||||
[=[
|
||||
[[string
|
||||
]=],
|
||||
[=[
|
||||
string]]
|
||||
]=]
|
||||
)
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string)
|
||||
(string))))
|
||||
|
||||
================================================================================
|
||||
vararg_expression
|
||||
================================================================================
|
||||
|
||||
exp(...)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(vararg_expression))))
|
||||
|
||||
================================================================================
|
||||
function_definition
|
||||
================================================================================
|
||||
|
||||
f1 = function() end
|
||||
|
||||
f2 = function() return end
|
||||
|
||||
f3 = function(...)
|
||||
return ...
|
||||
end
|
||||
|
||||
f4 = function(a1, ...)
|
||||
print(...)
|
||||
return a1
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (function_definition
|
||||
parameters: (parameters))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (function_definition
|
||||
parameters: (parameters)
|
||||
body: (block
|
||||
(return_statement)))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (function_definition
|
||||
parameters: (parameters
|
||||
(vararg_expression))
|
||||
body: (block
|
||||
(return_statement
|
||||
(expression_list
|
||||
(vararg_expression)))))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (function_definition
|
||||
parameters: (parameters
|
||||
name: (identifier)
|
||||
(vararg_expression))
|
||||
body: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(vararg_expression)))
|
||||
(return_statement
|
||||
(expression_list
|
||||
(identifier))))))))
|
||||
|
||||
================================================================================
|
||||
variable ::: identifier
|
||||
================================================================================
|
||||
|
||||
v1 = n1
|
||||
|
||||
v2, v3 = n2, n3
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (identifier)))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier)
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (identifier)
|
||||
value: (identifier))))
|
||||
|
||||
================================================================================
|
||||
variable ::: bracket_index_expression
|
||||
================================================================================
|
||||
|
||||
v1 = tbl[k1]
|
||||
|
||||
v2, v3[v] = tbl[k1]["k2"]
|
||||
|
||||
v4 = tbk[getK1()][getK2()]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier)
|
||||
name: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier)))
|
||||
(expression_list
|
||||
value: (bracket_index_expression
|
||||
table: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
field: (string))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (bracket_index_expression
|
||||
table: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments)))
|
||||
field: (function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments))))))
|
||||
|
||||
================================================================================
|
||||
variable ::: dot_index_expression
|
||||
================================================================================
|
||||
|
||||
v1 = tbl.k1
|
||||
|
||||
v2 = tbl.k1.k2
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (dot_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (dot_index_expression
|
||||
table: (dot_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
field: (identifier)))))
|
||||
|
||||
================================================================================
|
||||
function_call ::: bracket_index_expression | dot_index_expression
|
||||
================================================================================
|
||||
|
||||
v1 = tbl[k1].k2(a1, "a2", a3())
|
||||
|
||||
v2 = tbl[k1] { f1 = true }
|
||||
|
||||
v3 = tbl[k1] "a1"
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (function_call
|
||||
name: (dot_index_expression
|
||||
table: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
field: (identifier))
|
||||
arguments: (arguments
|
||||
(identifier)
|
||||
(string)
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments))))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (function_call
|
||||
name: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
arguments: (arguments
|
||||
(table_constructor
|
||||
(field
|
||||
name: (identifier)
|
||||
value: (true)))))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (function_call
|
||||
name: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
arguments: (arguments
|
||||
(string))))))
|
||||
|
||||
================================================================================
|
||||
function_call ::: method_index_expression
|
||||
================================================================================
|
||||
|
||||
tbl.k1:m1(a1, "a2")
|
||||
|
||||
tbl[k1]:m1 { f1, "f2" }
|
||||
|
||||
tbl:m1 "a1"
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_call
|
||||
name: (method_index_expression
|
||||
table: (dot_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
method: (identifier))
|
||||
arguments: (arguments
|
||||
(identifier)
|
||||
(string)))
|
||||
(function_call
|
||||
name: (method_index_expression
|
||||
table: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
method: (identifier))
|
||||
arguments: (arguments
|
||||
(table_constructor
|
||||
(field
|
||||
value: (identifier))
|
||||
(field
|
||||
value: (string)))))
|
||||
(function_call
|
||||
name: (method_index_expression
|
||||
table: (identifier)
|
||||
method: (identifier))
|
||||
arguments: (arguments
|
||||
(string))))
|
||||
|
||||
================================================================================
|
||||
parenthesized_expression
|
||||
================================================================================
|
||||
|
||||
v = ( true )
|
||||
|
||||
v = ( ( false ) )
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (parenthesized_expression
|
||||
(true))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (parenthesized_expression
|
||||
(parenthesized_expression
|
||||
(false))))))
|
||||
|
||||
================================================================================
|
||||
table_constructor
|
||||
================================================================================
|
||||
|
||||
tbl1 = {
|
||||
["k1"] = {
|
||||
['k2'] = true,
|
||||
k3 = false
|
||||
}
|
||||
}
|
||||
|
||||
local tbl2 = {
|
||||
k1 = {
|
||||
{ 'v1', "v2" }
|
||||
}
|
||||
}
|
||||
|
||||
local tbl3 = { "v1", k1 = "v2" }
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (table_constructor
|
||||
(field
|
||||
name: (string)
|
||||
value: (table_constructor
|
||||
(field
|
||||
name: (string)
|
||||
value: (true))
|
||||
(field
|
||||
name: (identifier)
|
||||
value: (false)))))))
|
||||
local_declaration: (variable_declaration
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (table_constructor
|
||||
(field
|
||||
name: (identifier)
|
||||
value: (table_constructor
|
||||
(field
|
||||
value: (table_constructor
|
||||
(field
|
||||
value: (string))
|
||||
(field
|
||||
value: (string))))))))))
|
||||
local_declaration: (variable_declaration
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (table_constructor
|
||||
(field
|
||||
value: (string))
|
||||
(field
|
||||
name: (identifier)
|
||||
value: (string)))))))
|
||||
|
||||
================================================================================
|
||||
binary_expression
|
||||
================================================================================
|
||||
|
||||
a = i + j * 3 - k % 5
|
||||
|
||||
b = i + j % 3 ^ 2
|
||||
|
||||
c = i * 2 ^ j
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (binary_expression
|
||||
left: (binary_expression
|
||||
left: (identifier)
|
||||
right: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number)))
|
||||
right: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number)))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (binary_expression
|
||||
left: (identifier)
|
||||
right: (binary_expression
|
||||
left: (identifier)
|
||||
right: (binary_expression
|
||||
left: (number)
|
||||
right: (number))))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (binary_expression
|
||||
left: (identifier)
|
||||
right: (binary_expression
|
||||
left: (number)
|
||||
right: (identifier))))))
|
||||
|
||||
================================================================================
|
||||
unary_expression
|
||||
================================================================================
|
||||
|
||||
v1 = #l
|
||||
|
||||
v2 = -n
|
||||
|
||||
v3 = not c1 and r1 or r2
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (unary_expression
|
||||
operand: (identifier))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (unary_expression
|
||||
operand: (identifier))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (binary_expression
|
||||
left: (binary_expression
|
||||
left: (unary_expression
|
||||
operand: (identifier))
|
||||
right: (identifier))
|
||||
right: (identifier)))))
|
||||
459
tree-sitter-lua/test/corpus/statements.txt
Normal file
459
tree-sitter-lua/test/corpus/statements.txt
Normal file
@@ -0,0 +1,459 @@
|
||||
================================================================================
|
||||
empty_statement
|
||||
================================================================================
|
||||
|
||||
;
|
||||
;;
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(empty_statement)
|
||||
(empty_statement)
|
||||
(empty_statement))
|
||||
|
||||
================================================================================
|
||||
assignment_statement
|
||||
================================================================================
|
||||
|
||||
i = 1
|
||||
j, tbl[k()] = 2, i + 1
|
||||
x, y = y, x
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (number)))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier)
|
||||
name: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments))))
|
||||
(expression_list
|
||||
value: (number)
|
||||
value: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number))))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier)
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (identifier)
|
||||
value: (identifier))))
|
||||
|
||||
================================================================================
|
||||
function_call
|
||||
================================================================================
|
||||
|
||||
f1()
|
||||
|
||||
tbl.f2()
|
||||
|
||||
tbl["f2"]()
|
||||
|
||||
tbl.k1:f3()
|
||||
|
||||
f4(a1)("a2") { a3 = "a3" }
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments))
|
||||
(function_call
|
||||
name: (dot_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
arguments: (arguments))
|
||||
(function_call
|
||||
name: (bracket_index_expression
|
||||
table: (identifier)
|
||||
field: (string))
|
||||
arguments: (arguments))
|
||||
(function_call
|
||||
name: (method_index_expression
|
||||
table: (dot_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
method: (identifier))
|
||||
arguments: (arguments))
|
||||
(function_call
|
||||
name: (function_call
|
||||
name: (function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(identifier)))
|
||||
arguments: (arguments
|
||||
(string)))
|
||||
arguments: (arguments
|
||||
(table_constructor
|
||||
(field
|
||||
name: (identifier)
|
||||
value: (string))))))
|
||||
|
||||
================================================================================
|
||||
label_statement
|
||||
================================================================================
|
||||
|
||||
:: label_name ::
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(label_statement
|
||||
(identifier)))
|
||||
|
||||
================================================================================
|
||||
break_statement
|
||||
================================================================================
|
||||
|
||||
for k, v in pairs(kv) do
|
||||
if not v then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(for_statement
|
||||
clause: (for_generic_clause
|
||||
(variable_list
|
||||
name: (identifier)
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(identifier)))))
|
||||
body: (block
|
||||
(if_statement
|
||||
condition: (unary_expression
|
||||
operand: (identifier))
|
||||
consequence: (block
|
||||
(break_statement))))))
|
||||
|
||||
================================================================================
|
||||
goto_statement
|
||||
================================================================================
|
||||
|
||||
goto label_name
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(goto_statement
|
||||
(identifier)))
|
||||
|
||||
================================================================================
|
||||
do_statement
|
||||
================================================================================
|
||||
|
||||
do
|
||||
f1()
|
||||
return f2()
|
||||
end
|
||||
|
||||
do end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(do_statement
|
||||
body: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments))
|
||||
(return_statement
|
||||
(expression_list
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments))))))
|
||||
(do_statement))
|
||||
|
||||
================================================================================
|
||||
while_statement
|
||||
================================================================================
|
||||
|
||||
while i < 9 do
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
while false do end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(while_statement
|
||||
condition: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number))
|
||||
body: (block
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number))))))
|
||||
(while_statement
|
||||
condition: (false)))
|
||||
|
||||
================================================================================
|
||||
repeat_statement
|
||||
================================================================================
|
||||
|
||||
repeat
|
||||
f1()
|
||||
i = i - 1
|
||||
until i == 0
|
||||
|
||||
repeat until false
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(repeat_statement
|
||||
body: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments))
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number)))))
|
||||
condition: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number)))
|
||||
(repeat_statement
|
||||
condition: (false)))
|
||||
|
||||
================================================================================
|
||||
if_statement
|
||||
================================================================================
|
||||
|
||||
if num % 2 == 0 then
|
||||
print("even")
|
||||
elseif num % 2 ~= 0 then
|
||||
print("odd")
|
||||
else
|
||||
error("!")
|
||||
end
|
||||
|
||||
if c1 then end
|
||||
|
||||
if c1 then else end
|
||||
|
||||
if c1 then elseif c2 then else end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(if_statement
|
||||
condition: (binary_expression
|
||||
left: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number))
|
||||
right: (number))
|
||||
consequence: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(string))))
|
||||
alternative: (elseif_statement
|
||||
condition: (binary_expression
|
||||
left: (binary_expression
|
||||
left: (identifier)
|
||||
right: (number))
|
||||
right: (number))
|
||||
consequence: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(string)))))
|
||||
alternative: (else_statement
|
||||
body: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(string))))))
|
||||
(if_statement
|
||||
condition: (identifier))
|
||||
(if_statement
|
||||
condition: (identifier)
|
||||
alternative: (else_statement))
|
||||
(if_statement
|
||||
condition: (identifier)
|
||||
alternative: (elseif_statement
|
||||
condition: (identifier))
|
||||
alternative: (else_statement)))
|
||||
|
||||
================================================================================
|
||||
for_statement ::: for_generic_clause
|
||||
================================================================================
|
||||
|
||||
for k, v in pairs(kv) do
|
||||
print(k, v)
|
||||
end
|
||||
|
||||
for i in ipairs(iv) do end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(for_statement
|
||||
clause: (for_generic_clause
|
||||
(variable_list
|
||||
name: (identifier)
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(identifier)))))
|
||||
body: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(identifier)
|
||||
(identifier)))))
|
||||
(for_statement
|
||||
clause: (for_generic_clause
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(identifier)))))))
|
||||
|
||||
================================================================================
|
||||
for_statement ::: for_numeric_clause
|
||||
================================================================================
|
||||
|
||||
for n = 1, 10 do
|
||||
print(n)
|
||||
end
|
||||
|
||||
for n = 1, 10, 2 do end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(for_statement
|
||||
clause: (for_numeric_clause
|
||||
name: (identifier)
|
||||
start: (number)
|
||||
end: (number))
|
||||
body: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(identifier)))))
|
||||
(for_statement
|
||||
clause: (for_numeric_clause
|
||||
name: (identifier)
|
||||
start: (number)
|
||||
end: (number)
|
||||
step: (number))))
|
||||
|
||||
================================================================================
|
||||
function_declaration
|
||||
================================================================================
|
||||
|
||||
function tbl.f1() end
|
||||
|
||||
function tbl:f2() end
|
||||
|
||||
function tbl.k1:f3() end
|
||||
|
||||
function f4()
|
||||
print('f4')
|
||||
end
|
||||
|
||||
local function f5() end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
(function_declaration
|
||||
name: (dot_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
parameters: (parameters))
|
||||
(function_declaration
|
||||
name: (method_index_expression
|
||||
table: (identifier)
|
||||
method: (identifier))
|
||||
parameters: (parameters))
|
||||
(function_declaration
|
||||
name: (method_index_expression
|
||||
table: (dot_index_expression
|
||||
table: (identifier)
|
||||
field: (identifier))
|
||||
method: (identifier))
|
||||
parameters: (parameters))
|
||||
(function_declaration
|
||||
name: (identifier)
|
||||
parameters: (parameters)
|
||||
body: (block
|
||||
(function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments
|
||||
(string)))))
|
||||
local_declaration: (function_declaration
|
||||
name: (identifier)
|
||||
parameters: (parameters)))
|
||||
|
||||
================================================================================
|
||||
variable_declaration
|
||||
================================================================================
|
||||
|
||||
local v1 = 1
|
||||
local v2, v3 = 2, 3
|
||||
|
||||
local v4, v4 = f1(), tbl:f2()
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(chunk
|
||||
local_declaration: (variable_declaration
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (number))))
|
||||
local_declaration: (variable_declaration
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier)
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (number)
|
||||
value: (number))))
|
||||
local_declaration: (variable_declaration
|
||||
(assignment_statement
|
||||
(variable_list
|
||||
name: (identifier)
|
||||
name: (identifier))
|
||||
(expression_list
|
||||
value: (function_call
|
||||
name: (identifier)
|
||||
arguments: (arguments))
|
||||
value: (function_call
|
||||
name: (method_index_expression
|
||||
table: (identifier)
|
||||
method: (identifier))
|
||||
arguments: (arguments))))))
|
||||
Reference in New Issue
Block a user