@@ -204,22 +204,24 @@ export class Parser {
204204 instructions . length > i + 1 &&
205205 getTokenValue ( instructions [ i + 1 ] . tokens [ 0 ] ) === 'elif'
206206 ) {
207-
208207 const elifInstruction = instructions [ ++ i ] ;
209208
210209 const endOfElif = findTokenValueIndex ( elifInstruction . tokens , v => v === ':' ) ;
211210
212211 const conditionTokens = elifInstruction . tokens . slice ( 1 , endDefOfDef ) ;
213212
214- const elifConditionNode = findIndexes ( conditionTokens , OperationTypes . Logical , logicOpIndexes )
213+ const elifConditionNode = findIndexes (
214+ conditionTokens ,
215+ OperationTypes . Logical ,
216+ logicOpIndexes
217+ )
215218 ? this . groupLogicalOperations ( logicOpIndexes , conditionTokens )
216219 : this . createExpressionNode ( conditionTokens ) ;
217-
218- const elifBody = getBody ( elifInstruction . tokens , endOfElif + 1 ) ;
220+
221+ const elifBody = getBody ( elifInstruction . tokens , endOfElif + 1 ) ;
219222 elifNodes . push (
220223 new ElifNode ( elifConditionNode , elifBody , getTokenLoc ( elifInstruction . tokens [ 0 ] ) )
221224 ) ;
222-
223225 }
224226
225227 // else
@@ -690,6 +692,9 @@ export class Parser {
690692 const keyValueTokens = splitTokens ( tokens . splice ( 1 , tokens . length - 2 ) , ',' ) ;
691693 const props = [ ] as ObjectPropertyInfo [ ] ;
692694 for ( let i = 0 ; i < keyValueTokens . length ; i ++ ) {
695+ if ( ! keyValueTokens [ i ] . length ) {
696+ continue ;
697+ }
693698 const keyValue = splitTokens ( keyValueTokens [ i ] , ':' ) ;
694699 if ( keyValue . length === 1 ) {
695700 const pInfo = {
@@ -731,9 +736,9 @@ export class Parser {
731736
732737 // create Array Node
733738 if ( getTokenValue ( tokens [ 0 ] ) === '[' && getTokenValue ( tokens [ tokens . length - 1 ] ) === ']' ) {
734- const items = splitTokens ( tokens . splice ( 1 , tokens . length - 2 ) , ',' ) . map ( tkns =>
735- this . createExpressionNode ( tkns )
736- ) ;
739+ const items = splitTokens ( tokens . splice ( 1 , tokens . length - 2 ) , ',' )
740+ . filter ( tkns => tkns ?. length )
741+ . map ( tkns => this . createExpressionNode ( tkns ) ) ;
737742
738743 return new CreateArrayNode ( items , getTokenLoc ( tokens [ 0 ] ) ) ;
739744 }
0 commit comments