私はこのようなテーブル構造のテーブルがあります。テーブルLUAでテーブルの検索
[1] = {
[1] = {
category = "WORD",
cursor = <filtered>,
ptype = "STATEMENT",
ttype = "SERVICE",
value = "service",
<metatable> = <filtered>
},
[2] = {
category = "VARIABLE",
cursor = <filtered>,
ptype = "STATEMENT",
ttype = "IDENTIFIER",
value = "TestService",
<metatable> = <filtered>
},
[3] = {
ttype = "BRACE_BLOCK",
value = {
[1] = { ...
...
[2] = {
[1] = {
category = "WORD",
cursor = <filtered>,
ptype = "STATEMENT",
ttype = "SERVICE",
value = "service",
<metatable> = <filtered>
},
[2] = {
category = "VARIABLE",
cursor = <filtered>,
ptype = "STATEMENT",
ttype = "IDENTIFIER",
value = "HelloWorld",
<metatable> = <filtered>
},
は、私がその情報を濾過し、TTYPEとの最初のテーブルを探し、単にループをプログラムしたいと思います次のサービスが対応するサービスを開始するまで残りのトークンを割り当てる。
local found_service = 0
if found_service == 0 then
for k1, v1 in pairs (parse_tree) do
for i=1,#v1 do
if v1[i].ttype == "SERVICE" then
--Store wanted data in an object
found_service = 1
end
if (found_service == 1 and v1[i].ttype ~= "SERVICE") then
-- ->assign the rest to last found service
end
if found_service == 1 and v1[i].ttype == "SERVICE" then
-- ->Found the next service -->starting over
found_service = 0
end
end
end
end
問題は、私はインデックスiで立ち往生し、V1 [i]が「SERVICE」であるということですので、彼はあまりにも、直接最後のif節に入る:私の考えは、そのように見えます。最初のif節の後に、どのようにして1つのループ反復を終了させるか。または、これを行うもっと良い方法がありますか?
ありがとうございます。 Theo
は ''いくつか::ラベル:: ' – tonypdmtr