@@ -317,63 +317,17 @@ module.exports = function(code) {
317
317
continue ;
318
318
}
319
319
320
- /////////////////////////////////////////////
321
- // //
322
- // classes and structures handling //
323
- // //
324
- ///////////////////////////////////////////////////////////////////////////
325
-
326
320
// handles inheritance operators
327
321
if ( tokens . length > 2 && tokens [ tokens . length - 2 ] . value === ':' &&
328
322
CLASS_NAMES [ lastToken . value ] && CLASS_NAMES [ tokens [ tokens . length - 3 ] . value ] ) {
329
323
tokens [ tokens . length - 2 ] . type = 'INHERITANCE_OPERATOR' ;
330
324
}
331
- if ( insideClass . length && insideClass [ insideClass . length - 1 ] . curly === 0 &&
332
- chunk === '{' ) {
333
- lexerFunctions . checkFor ( 'CLASS_DEFINITION' , chunk , tokens ) ;
334
- insideClass [ insideClass . length - 1 ] . curly ++ ;
335
- advanceAndClear ( 1 ) ;
336
- continue ;
337
- }
338
- if ( insideClass . length && insideClass [ insideClass . length - 1 ] . curly === 1 &&
339
- chunk === '}' ) {
340
- lexerFunctions . checkFor ( 'CLASS_DEFINITION' , chunk , tokens ) ;
341
- insideClass . pop ( ) ;
342
- advanceAndClear ( 1 ) ;
343
- lexerFunctions . handleEndOfFile ( nextCol , tokens ) ;
344
- continue ;
345
- }
346
- if ( insideStruct . length && insideStruct [ insideStruct . length - 1 ] . curly === 0 &&
347
- chunk === '{' ) {
348
- lexerFunctions . checkFor ( 'STRUCT_DEFINITION' , chunk , tokens ) ;
349
- insideStruct [ insideStruct . length - 1 ] . curly ++ ;
350
- advanceAndClear ( 1 ) ;
351
- continue ;
352
- }
353
- if ( insideStruct . length && insideStruct [ insideStruct . length - 1 ] . curly === 1 &&
354
- chunk === '}' ) {
355
- lexerFunctions . checkFor ( 'STRUCT_DEFINITION' , chunk , tokens ) ;
356
- insideStruct . pop ( ) ;
357
- advanceAndClear ( 1 ) ;
358
- lexerFunctions . handleEndOfFile ( nextCol , tokens ) ;
359
- continue ;
360
- }
361
- if ( tokens . length && ( CLASS_NAMES [ lastToken . value ] ||
362
- STRUCT_NAMES [ lastToken . value ] ) && chunk === '(' ) {
363
- lexerFunctions . checkFor ( 'INITIALIZATION' , chunk , tokens )
364
- var temp = { } ;
365
- temp . status = true ;
366
- temp . parens = 1 ;
367
- insideInitialization . push ( temp ) ;
368
- advanceAndClear ( 1 ) ;
369
- continue ;
370
- }
371
- if ( chunk === ')' && insideInitialization . length &&
372
- insideInitialization [ insideInitialization . length - 1 ] . parens === 1 ) {
373
- lexerFunctions . checkFor ( 'INITIALIZATION' , chunk , tokens ) ;
374
- insideInitialization . pop ( ) ;
325
+
326
+ // handles classes and structs
327
+ if ( lexerFunctions . handleClassOrStruct ( insideClass , insideStruct ,
328
+ insideInitialization , chunk , tokens , lastToken ,
329
+ nextCol , CLASS_NAMES , STRUCT_NAMES ) ) {
375
330
advanceAndClear ( 1 ) ;
376
- lexerFunctions . handleEndOfFile ( nextCol , tokens ) ;
377
331
continue ;
378
332
}
379
333
@@ -396,8 +350,6 @@ module.exports = function(code) {
396
350
continue ;
397
351
}
398
352
399
- ///////////////////////////////////////////////////////////////////////////
400
-
401
353
// main evaluation block
402
354
if ( ! insideString . status && ! insideNumber . status &&
403
355
lexerFunctions . checkForEvaluationPoint ( currCol , nextCol ) ) {
0 commit comments