@@ -333,7 +333,7 @@ rule("cosCommand").split(
333
333
. split (
334
334
char ( "}" ) . optWhitespace ( ) . id ( { CI , value : "catch" , class : "keyword" } )
335
335
. optWhitespace ( ) . split (
336
- char ( "(" ) . id ( { class : "variable" } ) . char ( ")" ) ,
336
+ char ( "(" ) . optWhitespace ( ) . id ( { class : "variable" } ) . optWhitespace ( ) . char ( ")" ) ,
337
337
id ( { class : "variable" } )
338
338
) . optWhitespace ( ) . char ( "{" ) . branch ( ) . optWhitespace ( ) . split (
339
339
char ( "}" ) ,
@@ -345,7 +345,7 @@ rule("cosCommand").split(
345
345
{ CI , value : "kill" , class : "keyword" } ,
346
346
{ CI , value : "k" , class : "keyword" }
347
347
] ) . call ( "postCondition" ) . whitespace ( ) . branch ( ) . split (
348
- char ( "(" ) . call ( "variableListExpression" ) . char ( ")" ) ,
348
+ char ( "(" ) . optWhitespace ( ) . call ( "variableListExpression" ) . optWhitespace ( ) . char ( ")" ) ,
349
349
call ( "variable" )
350
350
) . optWhitespace ( ) . split (
351
351
char ( "," ) . optWhitespace ( ) . merge ( ) , // -> loop to the last branch
@@ -475,13 +475,13 @@ rule("cosCommand").split(
475
475
) . end ( ) ;
476
476
477
477
rule ( "setExpression" ) . split (
478
- char ( "(" ) . call ( "variableListExpression" ) . char ( ")" ) ,
478
+ char ( "(" ) . optWhitespace ( ) . call ( "variableListExpression" ) . optWhitespace ( ) . char ( ")" ) ,
479
479
call ( "variable" )
480
480
) . optWhitespace ( ) . char ( "=" ) . optWhitespace ( )
481
481
. call ( "expression" ) . exit ( ) . end ( ) ;
482
482
483
- rule ( "variableListExpression" ) . branch ( ) . optWhitespace ( ) . call ( "variable" ) . optWhitespace ( ) . split (
484
- char ( "," ) . merge ( ) ,
483
+ rule ( "variableListExpression" ) . branch ( ) . call ( "variable" ) . optWhitespace ( ) . split (
484
+ char ( "," ) . optWhitespace ( ) . merge ( ) ,
485
485
any ( )
486
486
) . exit ( ) . end ( ) ;
487
487
@@ -532,7 +532,7 @@ rule("doArgument").split(
532
532
char ( { value : "%" , type : "memberMethod" } ) ,
533
533
any ( )
534
534
) . id ( { type : "memberMethod" } ) . split (
535
- char ( "(" ) . call ( "argumentList" ) . char ( ")" ) . split (
535
+ char ( "(" ) . optWhitespace ( ) . call ( "argumentList" ) . optWhitespace ( ) . char ( ")" ) . split (
536
536
char ( { value : "." , type : "*" } ) . merge ( ) ,
537
537
any ( )
538
538
) ,
@@ -541,32 +541,108 @@ rule("doArgument").split(
541
541
call ( "class" )
542
542
) . call ( "postCondition" ) . exit ( ) . end ( ) ;
543
543
544
+ rule ( "jsonValue" ) . split (
545
+ char ( "(" ) . optWhitespace ( ) . call ( "expression" ) . optWhitespace ( ) . char ( ")" ) ,
546
+ char ( {
547
+ value : "{" ,
548
+ class : "argument"
549
+ } ) . optWhitespace ( ) . split (
550
+ char ( {
551
+ value : "}" ,
552
+ class : "argument"
553
+ } ) . exit ( ) ,
554
+ call ( "jsonObjectBody" ) . optWhitespace ( ) . char ( {
555
+ value : "}" ,
556
+ class : "argument"
557
+ } )
558
+ ) ,
559
+ char ( {
560
+ value : "[" ,
561
+ class : "argument"
562
+ } ) . optWhitespace ( ) . split (
563
+ char ( {
564
+ value : "]" ,
565
+ class : "argument"
566
+ } ) ,
567
+ call ( "jsonArrayBody" ) . optWhitespace ( ) . char ( {
568
+ value : "]" ,
569
+ class : "argument"
570
+ } )
571
+ ) ,
572
+ string ( ) ,
573
+ constant ( )
574
+ ) . exit ( ) . end ( ) ;
575
+
576
+ rule ( "jsonObjectBody" ) . branch ( ) . string ( ) . optWhitespace ( ) . char ( ":" ) . optWhitespace ( ) . call ( "jsonValue" )
577
+ . optWhitespace ( ) . split (
578
+ char ( "," ) . optWhitespace ( ) . merge ( ) ,
579
+ any ( )
580
+ ) . exit ( ) . end ( ) ;
581
+
582
+ rule ( "jsonArrayBody" ) . branch ( ) . optWhitespace ( ) . call ( "jsonValue" ) . optWhitespace ( ) . split (
583
+ char ( "," ) . merge ( ) ,
584
+ any ( )
585
+ ) . exit ( ) . end ( ) ;
586
+
544
587
rule ( "expression" ) . split (
545
588
constant ( ) ,
546
- char ( "(" ) . call ( "expression" ) . char ( ")" ) ,
589
+ char ( "(" ) . optWhitespace ( ) . call ( "expression" ) . optWhitespace ( ) . char ( ")" ) ,
590
+ char ( {
591
+ value : "[" ,
592
+ class : "argument"
593
+ } ) . optWhitespace ( ) . split (
594
+ char ( {
595
+ value : "]" ,
596
+ class : "argument"
597
+ } ) ,
598
+ call ( "jsonArrayBody" ) . optWhitespace ( ) . char ( {
599
+ value : "]" ,
600
+ class : "argument"
601
+ } )
602
+ ) ,
603
+ char ( {
604
+ value : "{" ,
605
+ class : "argument"
606
+ } ) . optWhitespace ( ) . split (
607
+ char ( {
608
+ value : "}" ,
609
+ class : "argument"
610
+ } ) ,
611
+ call ( "jsonObjectBody" ) . optWhitespace ( ) . char ( {
612
+ value : "}" ,
613
+ class : "argument"
614
+ } )
615
+ ) ,
616
+ char ( "-" ) . call ( "expression" ) ,
547
617
char ( "'" ) . call ( "expression" ) ,
548
618
string ( ) ,
549
619
tryCall ( "variable" ) ,
550
620
tryCall ( "class" ) ,
551
621
tryCall ( "function" )
552
622
) . optWhitespace ( ) . split (
553
623
split (
554
- char ( "+" ) ,
555
- char ( "-" ) ,
556
- char ( "*" ) ,
557
- char ( "/" ) ,
558
- char ( "_" ) ,
559
- char ( "=" ) ,
560
- char ( "'" ) . char ( [ "=" , ">" , "<" ] ) ,
561
- char ( [ "<" , ">" ] ) . split (
562
- char ( "=" ) ,
624
+ char ( { value : "+" , class : "special" } ) ,
625
+ char ( { value : "-" , class : "special" } ) ,
626
+ char ( { value : "*" , class : "special" } ) ,
627
+ char ( { value : "/" , class : "special" } ) ,
628
+ char ( { value : "_" , class : "special" } ) ,
629
+ char ( { value : "=" , class : "special" } ) ,
630
+ char ( { value : "'" , class : "special" } ) . char ( [
631
+ { value : "=" , class : "special" } ,
632
+ { value : ">" , class : "special" } ,
633
+ { value : "<" , class : "special" }
634
+ ] ) ,
635
+ char ( [ { value : "<" , class : "special" } , { value : ">" , class : "special" } ] ) . split (
636
+ char ( { value : "=" , class : "special" } ) ,
563
637
any ( )
564
638
) ,
565
- char ( "&" ) . split (
566
- char ( "&" ) ,
639
+ char ( { value : "&" , class : "special" } ) . split (
640
+ char ( { value : "&" , class : "special" } ) ,
567
641
any ( )
568
642
) ,
569
- char ( "|" ) . char ( "|" )
643
+ char ( { value : "|" , class : "special" } ) . char ( { value : "|" , class : "special" } ) ,
644
+ char ( { value : "[" , class : "special" } ) ,
645
+ char ( { value : "]" , class : "special" } )
570
646
) . optWhitespace ( ) . call ( "expression" ) ,
571
647
any ( )
572
648
) . exit ( ) . end ( ) ;
@@ -581,7 +657,7 @@ rule("variable").split(
581
657
char ( { value : "%" , class : "variable" , type : "variable" } )
582
658
. id ( { class : "variable" , type : "variable" } )
583
659
) . split (
584
- char ( "(" ) . call ( "nonEmptyArgumentList" ) . char ( ")" ) ,
660
+ char ( "(" ) . optWhitespace ( ) . call ( "nonEmptyArgumentList" ) . optWhitespace ( ) . char ( ")" ) ,
585
661
any ( )
586
662
) . branch ( ) . split (
587
663
char ( { value : "." , type : "*" } ) . call ( "member" ) . merge ( ) ,
@@ -596,7 +672,7 @@ rule("globalBody").split(
596
672
char ( { value : "." , class : "global" , type : "global" } ) . merge ( ) ,
597
673
any ( )
598
674
) . split (
599
- char ( "(" ) . call ( "argumentList" ) . char ( ")" ) ,
675
+ char ( "(" ) . optWhitespace ( ) . call ( "argumentList" ) . optWhitespace ( ) . char ( ")" ) ,
600
676
any ( )
601
677
) . exit ( ) . end ( ) ;
602
678
@@ -605,7 +681,7 @@ rule("member").split(
605
681
char ( { value : "#" , type : "member" } ) ,
606
682
any ( )
607
683
) . id ( { type : "member" } ) . split (
608
- char ( "(" ) . call ( "argumentList" ) . char ( ")" ) ,
684
+ char ( "(" ) . optWhitespace ( ) . call ( "argumentList" ) . optWhitespace ( ) . char ( ")" ) ,
609
685
any ( )
610
686
) . exit ( ) . end ( ) ;
611
687
@@ -637,7 +713,7 @@ rule("classStatic").split(
637
713
char ( { value : "%" , type : "publicClassMember" , class : "keyword" } ) ,
638
714
any ( )
639
715
) . id ( { type : "publicClassMember" , class : "keyword" } ) . split (
640
- char ( "(" ) . call ( "argumentList" ) . char ( ")" )
716
+ char ( "(" ) . optWhitespace ( ) . call ( "argumentList" ) . optWhitespace ( ) . char ( ")" )
641
717
)
642
718
) . exit ( ) . end ( ) ;
643
719
@@ -745,7 +821,7 @@ rule("function").char({ value: "$", class: "keyword" }).split(
745
821
char ( { value : "$" , class : "keyword" } ) . id ( { class : "keyword" } ) ,
746
822
any ( )
747
823
) . split (
748
- char ( "(" ) . call ( "argumentList" ) . char ( ")" ) ,
824
+ char ( "(" ) . optWhitespace ( ) . call ( "argumentList" ) . optWhitespace ( ) . char ( ")" ) ,
749
825
any ( )
750
826
) . exit ( ) . end ( ) ;
751
827
@@ -831,7 +907,7 @@ rule("SQLClassName").split(
831
907
832
908
rule ( "SQLExpression" ) . split (
833
909
constant ( ) ,
834
- char ( "(" ) . call ( "SQLExpression" ) . char ( ")" ) ,
910
+ char ( "(" ) . optWhitespace ( ) . call ( "SQLExpression" ) . optWhitespace ( ) . char ( ")" ) ,
835
911
id ( { CI , value : "not" , class : "keyword" } ) . optWhitespace ( ) . call ( "SQLExpression" ) ,
836
912
char ( { value : "'" , class : "string" } ) . branch ( ) . split (
837
913
char ( { value : "'" , class : "string" } ) ,
0 commit comments