@@ -1585,6 +1585,7 @@ local function parseTable()
15851585 start = getPosition (Tokens [Index ], ' left' ),
15861586 finish = getPosition (Tokens [Index ], ' right' ),
15871587 }
1588+ tbl .bstart = tbl .finish
15881589 Index = Index + 2
15891590 local index = 0
15901591 local tindex = 0
@@ -1593,6 +1594,7 @@ local function parseTable()
15931594 skipSpace (true )
15941595 local token = Tokens [Index + 1 ]
15951596 if token == ' }' then
1597+ tbl .bfinish = getPosition (Tokens [Index ], ' left' )
15961598 Index = Index + 2
15971599 break
15981600 end
@@ -1712,6 +1714,8 @@ local function parseTable()
17121714 end
17131715
17141716 missSymbol ' }'
1717+ skipSpace ()
1718+ tbl .bfinish = getPosition (Tokens [Index ], ' left' )
17151719 break
17161720 :: CONTINUE::
17171721 end
@@ -2379,6 +2383,7 @@ local function parseFunction(isLocal, isAction)
23792383 end
23802384 parseActions ()
23812385 popChunk ()
2386+ func .bfinish = getPosition (Tokens [Index ], ' left' )
23822387 if Tokens [Index + 1 ] == ' end' then
23832388 local endLeft = getPosition (Tokens [Index ], ' left' )
23842389 local endRight = getPosition (Tokens [Index ] + 2 , ' right' )
@@ -2464,7 +2469,8 @@ local function parseLambda(isDoublePipe)
24642469 start = child .start ,
24652470 finish = child .finish ,
24662471 parent = lambda ,
2467- [1 ] = child }
2472+ [1 ] = child
2473+ }
24682474 child .parent = rtn
24692475 lambda [1 ] = rtn
24702476 lambda .returns = {rtn }
@@ -2475,6 +2481,7 @@ local function parseLambda(isDoublePipe)
24752481 lambda .finish = lastRightPosition ()
24762482 missExp ()
24772483 end
2484+ lambda .bfinish = getPosition (Tokens [Index ], ' left' )
24782485 LocalCount = LastLocalCount
24792486 return lambda
24802487end
@@ -3131,6 +3138,7 @@ local function parseDo()
31313138 pushChunk (obj )
31323139 parseActions ()
31333140 popChunk ()
3141+ obj .bfinish = getPosition (Tokens [Index ], ' left' )
31343142 if Tokens [Index + 1 ] == ' end' then
31353143 obj .finish = getPosition (Tokens [Index ] + 2 , ' right' )
31363144 obj .keyword [3 ] = getPosition (Tokens [Index ], ' left' )
@@ -3350,6 +3358,7 @@ local function parseIfBlock(parent)
33503358 parseActions ()
33513359 popChunk ()
33523360 ifblock .finish = getPosition (Tokens [Index ], ' left' )
3361+ ifblock .bfinish = ifblock .finish
33533362 if ifblock .locals then
33543363 LocalCount = LocalCount - # ifblock .locals
33553364 end
@@ -3412,6 +3421,7 @@ local function parseElseIfBlock(parent)
34123421 parseActions ()
34133422 popChunk ()
34143423 elseifblock .finish = getPosition (Tokens [Index ], ' left' )
3424+ elseifblock .bfinish = elseifblock .finish
34153425 if elseifblock .locals then
34163426 LocalCount = LocalCount - # elseifblock .locals
34173427 end
@@ -3438,6 +3448,7 @@ local function parseElseBlock(parent)
34383448 parseActions ()
34393449 popChunk ()
34403450 elseblock .finish = getPosition (Tokens [Index ], ' left' )
3451+ elseblock .bfinish = elseblock .finish
34413452 if elseblock .locals then
34423453 LocalCount = LocalCount - # elseblock .locals
34433454 end
@@ -3680,8 +3691,8 @@ local function parseFor()
36803691 skipSpace ()
36813692 parseActions ()
36823693 popChunk ()
3683-
36843694 skipSpace ()
3695+ action .bfinish = getPosition (Tokens [Index ], ' left' )
36853696 if Tokens [Index + 1 ] == ' end' then
36863697 action .finish = getPosition (Tokens [Index ] + 2 , ' right' )
36873698 action .keyword [# action .keyword + 1 ] = getPosition (Tokens [Index ], ' left' )
@@ -3763,6 +3774,7 @@ local function parseWhile()
37633774 popChunk ()
37643775
37653776 skipSpace ()
3777+ action .bfinish = getPosition (Tokens [Index ], ' left' )
37663778 if Tokens [Index + 1 ] == ' end' then
37673779 action .finish = getPosition (Tokens [Index ] + 2 , ' right' )
37683780 action .keyword [# action .keyword + 1 ] = getPosition (Tokens [Index ], ' left' )
@@ -3797,6 +3809,7 @@ local function parseRepeat()
37973809 parseActions ()
37983810
37993811 skipSpace ()
3812+ action .bfinish = getPosition (Tokens [Index ], ' left' )
38003813 if Tokens [Index + 1 ] == ' until' then
38013814 action .finish = getPosition (Tokens [Index ] + 4 , ' right' )
38023815 action .keyword [# action .keyword + 1 ] = getPosition (Tokens [Index ], ' left' )
@@ -3989,6 +4002,7 @@ local function parseLua()
39894002 type = ' main' ,
39904003 start = 0 ,
39914004 finish = 0 ,
4005+ bstart = 0 ,
39924006 }
39934007 pushChunk (main )
39944008 createLocal {
@@ -4014,6 +4028,7 @@ local function parseLua()
40144028 end
40154029 popChunk ()
40164030 main .finish = getPosition (# Lua , ' right' )
4031+ main .bfinish = main .finish
40174032
40184033 return main
40194034end
0 commit comments