@@ -136,6 +136,7 @@ struct scannerYY_state
136
136
bool insideProtocolList = false ;
137
137
138
138
int argRoundCount = 0 ;
139
+ int argSquareCount = 0 ;
139
140
int argSharpCount = 0 ;
140
141
int currentArgumentContext = 0 ;
141
142
int lastCopyArgStringContext = 0 ;
@@ -403,6 +404,7 @@ NONLopt [^\n]*
403
404
%x CopyArgString
404
405
%x CopyArgPHPString
405
406
%x CopyArgRound
407
+ %x CopyArgSquare
406
408
%x CopyArgSharp
407
409
%x CopyArgComment
408
410
%x CopyArgCommentLine
@@ -4382,7 +4384,7 @@ NONLopt [^\n]*
4382
4384
4383
4385
/*- Function argument reading rules ---------------------------------------*/
4384
4386
4385
- <ReadFuncArgType>[^ \/ \r\t\n \)\( \"\' #]+ { *yyextra->copyArgString+=yytext;
4387
+ <ReadFuncArgType>[^ \/ \r\t\n \[\]\ )\( \"\' #]+ { *yyextra->copyArgString+=yytext;
4386
4388
yyextra->fullArgString+=yytext;
4387
4389
}
4388
4390
<CopyArgString,CopyArgPHPString>[^\n\\\"\' ]+ { *yyextra->copyArgString+=yytext;
@@ -4392,12 +4394,16 @@ NONLopt [^\n]*
4392
4394
*yyextra->copyArgString+=yytext;
4393
4395
yyextra->fullArgString+=yytext;
4394
4396
}
4397
+ <CopyArgSquare>[^\/ \n \]\[ \"\' ]+ {
4398
+ *yyextra->copyArgString+=yytext;
4399
+ yyextra->fullArgString+=yytext;
4400
+ }
4395
4401
<ReadFuncArgType,ReadTempArgs>{BN}* {
4396
4402
*yyextra->copyArgString+=" ";
4397
4403
yyextra->fullArgString+=" ";
4398
4404
lineCount(yyscanner);
4399
4405
}
4400
- <ReadFuncArgType,CopyArgRound,CopyArgSharp,ReadTempArgs>{RAWBEGIN} {
4406
+ <ReadFuncArgType,CopyArgRound,CopyArgSquare, CopyArgSharp,ReadTempArgs>{RAWBEGIN} {
4401
4407
yyextra->delimiter = yytext+2;
4402
4408
yyextra->delimiter=yyextra->delimiter.left(yyextra->delimiter.length()-1);
4403
4409
yyextra->lastRawStringContext = YY_START;
@@ -4406,12 +4412,20 @@ NONLopt [^\n]*
4406
4412
yyextra->fullArgString+=yytext;
4407
4413
BEGIN(RawString);
4408
4414
}
4409
- <ReadFuncArgType,CopyArgRound,CopyArgSharp,ReadTempArgs>\" {
4415
+ <ReadFuncArgType,CopyArgRound,CopyArgSquare, CopyArgSharp,ReadTempArgs>\" {
4410
4416
*yyextra->copyArgString+=*yytext;
4411
4417
yyextra->fullArgString+=*yytext;
4412
4418
yyextra->lastCopyArgStringContext = YY_START;
4413
4419
BEGIN( CopyArgString );
4414
4420
}
4421
+ <ReadFuncArgType>"[" {
4422
+ if (!yyextra->insidePHP) REJECT;
4423
+ *yyextra->copyArgString+=*yytext;
4424
+ yyextra->fullArgString+=*yytext;
4425
+ yyextra->argSquareCount=0;
4426
+ yyextra->lastCopyArgContext = YY_START;
4427
+ BEGIN( CopyArgSquare );
4428
+ }
4415
4429
<ReadFuncArgType,ReadTempArgs>"(" {
4416
4430
*yyextra->copyArgString+=*yytext;
4417
4431
yyextra->fullArgString+=*yytext;
@@ -4608,6 +4622,19 @@ NONLopt [^\n]*
4608
4622
else
4609
4623
BEGIN ( yyextra->lastCopyArgContext );
4610
4624
}
4625
+ <CopyArgSquare>" [" {
4626
+ yyextra->argSquareCount ++;
4627
+ *yyextra->copyArgString +=*yytext;
4628
+ yyextra->fullArgString +=*yytext;
4629
+ }
4630
+ <CopyArgSquare>" ]" {
4631
+ *yyextra->copyArgString +=*yytext;
4632
+ yyextra->fullArgString +=*yytext;
4633
+ if (yyextra->argSquareCount >0 )
4634
+ yyextra->argSquareCount --;
4635
+ else
4636
+ BEGIN ( yyextra->lastCopyArgContext );
4637
+ }
4611
4638
<CopyArgSharp>" (" {
4612
4639
*yyextra->copyArgString +=*yytext;
4613
4640
yyextra->fullArgString +=*yytext;
@@ -4649,7 +4676,7 @@ NONLopt [^\n]*
4649
4676
yyextra->fullArgString+=*yytext;
4650
4677
BEGIN( yyextra->lastCopyArgStringContext );
4651
4678
}
4652
- <ReadFuncArgType,ReadTempArgs,CopyArgRound,CopyArgSharp>{CHARLIT} {
4679
+ <ReadFuncArgType,ReadTempArgs,CopyArgRound,CopyArgSquare, CopyArgSharp>{CHARLIT} {
4653
4680
if (yyextra->insidePHP)
4654
4681
{
4655
4682
REJECT;
@@ -4660,7 +4687,7 @@ NONLopt [^\n]*
4660
4687
yyextra->fullArgString+=yytext;
4661
4688
}
4662
4689
}
4663
- <ReadFuncArgType,ReadTempArgs,CopyArgRound,CopyArgSharp>\' {
4690
+ <ReadFuncArgType,ReadTempArgs,CopyArgRound,CopyArgSquare, CopyArgSharp>\' {
4664
4691
*yyextra->copyArgString+=yytext;
4665
4692
yyextra->fullArgString+=yytext;
4666
4693
if (yyextra->insidePHP)
@@ -4669,12 +4696,12 @@ NONLopt [^\n]*
4669
4696
BEGIN(CopyArgPHPString);
4670
4697
}
4671
4698
}
4672
- <ReadFuncArgType,ReadTempArgs,CopyArgString,CopyArgPHPString,CopyArgRound,CopyArgSharp>\n {
4699
+ <ReadFuncArgType,ReadTempArgs,CopyArgString,CopyArgPHPString,CopyArgRound,CopyArgSquare, CopyArgSharp>\n {
4673
4700
lineCount(yyscanner);
4674
4701
*yyextra->copyArgString+=*yytext;
4675
4702
yyextra->fullArgString+=*yytext;
4676
4703
}
4677
- <ReadFuncArgType,ReadTempArgs,CopyArgString,CopyArgPHPString,CopyArgRound,CopyArgSharp>. {
4704
+ <ReadFuncArgType,ReadTempArgs,CopyArgString,CopyArgPHPString,CopyArgRound,CopyArgSquare, CopyArgSharp>. {
4678
4705
*yyextra->copyArgString+=*yytext;
4679
4706
yyextra->fullArgString+=*yytext;
4680
4707
}
0 commit comments