@@ -204,22 +204,24 @@ export class Parser {
204
204
instructions . length > i + 1 &&
205
205
getTokenValue ( instructions [ i + 1 ] . tokens [ 0 ] ) === 'elif'
206
206
) {
207
-
208
207
const elifInstruction = instructions [ ++ i ] ;
209
208
210
209
const endOfElif = findTokenValueIndex ( elifInstruction . tokens , v => v === ':' ) ;
211
210
212
211
const conditionTokens = elifInstruction . tokens . slice ( 1 , endDefOfDef ) ;
213
212
214
- const elifConditionNode = findIndexes ( conditionTokens , OperationTypes . Logical , logicOpIndexes )
213
+ const elifConditionNode = findIndexes (
214
+ conditionTokens ,
215
+ OperationTypes . Logical ,
216
+ logicOpIndexes
217
+ )
215
218
? this . groupLogicalOperations ( logicOpIndexes , conditionTokens )
216
219
: this . createExpressionNode ( conditionTokens ) ;
217
-
218
- const elifBody = getBody ( elifInstruction . tokens , endOfElif + 1 ) ;
220
+
221
+ const elifBody = getBody ( elifInstruction . tokens , endOfElif + 1 ) ;
219
222
elifNodes . push (
220
223
new ElifNode ( elifConditionNode , elifBody , getTokenLoc ( elifInstruction . tokens [ 0 ] ) )
221
224
) ;
222
-
223
225
}
224
226
225
227
// else
@@ -690,6 +692,9 @@ export class Parser {
690
692
const keyValueTokens = splitTokens ( tokens . splice ( 1 , tokens . length - 2 ) , ',' ) ;
691
693
const props = [ ] as ObjectPropertyInfo [ ] ;
692
694
for ( let i = 0 ; i < keyValueTokens . length ; i ++ ) {
695
+ if ( ! keyValueTokens [ i ] . length ) {
696
+ continue ;
697
+ }
693
698
const keyValue = splitTokens ( keyValueTokens [ i ] , ':' ) ;
694
699
if ( keyValue . length === 1 ) {
695
700
const pInfo = {
@@ -731,9 +736,9 @@ export class Parser {
731
736
732
737
// create Array Node
733
738
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 ) ) ;
737
742
738
743
return new CreateArrayNode ( items , getTokenLoc ( tokens [ 0 ] ) ) ;
739
744
}
0 commit comments