@@ -768,94 +768,96 @@ class Allocator {
768
768
};
769
769
770
770
namespace {
771
- // Precedences used by various compilation units are defined here.
772
- const int APPLY_PRECEDENCE = 2 ; // Function calls and indexing.
773
- const int UNARY_PRECEDENCE = 4 ; // Logical and bitwise negation, unary + -
774
- const int BEFORE_ELSE_PRECEDENCE = 15 ; // True branch of an if.
775
- const int MAX_PRECEDENCE = 16 ; // Local, If, Import, Function, Error
776
-
777
- /* * These are the binary operator precedences, unary precedence is given by
778
- * UNARY_PRECEDENCE.
779
- */
780
- std::map<BinaryOp, int > build_precedence_map (void )
781
- {
782
- std::map<BinaryOp, int > r;
783
771
784
- r[BOP_MULT] = 5 ;
785
- r[BOP_DIV] = 5 ;
786
- r[BOP_PERCENT] = 5 ;
772
+ // Precedences used by various compilation units are defined here.
773
+ const int APPLY_PRECEDENCE = 2 ; // Function calls and indexing.
774
+ const int UNARY_PRECEDENCE = 4 ; // Logical and bitwise negation, unary + -
775
+ const int BEFORE_ELSE_PRECEDENCE = 15 ; // True branch of an if.
776
+ const int MAX_PRECEDENCE = 16 ; // Local, If, Import, Function, Error
787
777
788
- r[BOP_PLUS] = 6 ;
789
- r[BOP_MINUS] = 6 ;
778
+ /* * These are the binary operator precedences, unary precedence is given by
779
+ * UNARY_PRECEDENCE.
780
+ */
781
+ std::map<BinaryOp, int > build_precedence_map (void )
782
+ {
783
+ std::map<BinaryOp, int > r;
790
784
791
- r[BOP_SHIFT_L] = 7 ;
792
- r[BOP_SHIFT_R] = 7 ;
785
+ r[BOP_MULT] = 5 ;
786
+ r[BOP_DIV] = 5 ;
787
+ r[BOP_PERCENT] = 5 ;
793
788
794
- r[BOP_GREATER] = 8 ;
795
- r[BOP_GREATER_EQ] = 8 ;
796
- r[BOP_LESS] = 8 ;
797
- r[BOP_LESS_EQ] = 8 ;
789
+ r[BOP_PLUS] = 6 ;
790
+ r[BOP_MINUS] = 6 ;
798
791
799
- r[BOP_MANIFEST_EQUAL ] = 9 ;
800
- r[BOP_MANIFEST_UNEQUAL ] = 9 ;
792
+ r[BOP_SHIFT_L ] = 7 ;
793
+ r[BOP_SHIFT_R ] = 7 ;
801
794
802
- r[BOP_BITWISE_AND] = 10 ;
795
+ r[BOP_GREATER] = 8 ;
796
+ r[BOP_GREATER_EQ] = 8 ;
797
+ r[BOP_LESS] = 8 ;
798
+ r[BOP_LESS_EQ] = 8 ;
803
799
804
- r[BOP_BITWISE_XOR] = 11 ;
800
+ r[BOP_MANIFEST_EQUAL] = 9 ;
801
+ r[BOP_MANIFEST_UNEQUAL] = 9 ;
805
802
806
- r[BOP_BITWISE_OR ] = 12 ;
803
+ r[BOP_BITWISE_AND ] = 10 ;
807
804
808
- r[BOP_AND ] = 13 ;
805
+ r[BOP_BITWISE_XOR ] = 11 ;
809
806
810
- r[BOP_OR ] = 14 ;
807
+ r[BOP_BITWISE_OR ] = 12 ;
811
808
812
- return r;
813
- }
809
+ r[BOP_AND] = 13 ;
814
810
815
- std::map<std::string, UnaryOp> build_unary_map (void )
816
- {
817
- std::map<std::string, UnaryOp> r;
818
- r[" !" ] = UOP_NOT;
819
- r[" ~" ] = UOP_BITWISE_NOT;
820
- r[" +" ] = UOP_PLUS;
821
- r[" -" ] = UOP_MINUS;
822
- return r;
823
- }
811
+ r[BOP_OR] = 14 ;
824
812
825
- std::map<std::string, BinaryOp> build_binary_map (void )
826
- {
827
- std::map<std::string, BinaryOp> r;
813
+ return r;
814
+ }
828
815
829
- r[" *" ] = BOP_MULT;
830
- r[" /" ] = BOP_DIV;
831
- r[" %" ] = BOP_PERCENT;
816
+ std::map<std::string, UnaryOp> build_unary_map (void )
817
+ {
818
+ std::map<std::string, UnaryOp> r;
819
+ r[" !" ] = UOP_NOT;
820
+ r[" ~" ] = UOP_BITWISE_NOT;
821
+ r[" +" ] = UOP_PLUS;
822
+ r[" -" ] = UOP_MINUS;
823
+ return r;
824
+ }
832
825
833
- r[" +" ] = BOP_PLUS;
834
- r[" -" ] = BOP_MINUS;
826
+ std::map<std::string, BinaryOp> build_binary_map (void )
827
+ {
828
+ std::map<std::string, BinaryOp> r;
835
829
836
- r[" <<" ] = BOP_SHIFT_L;
837
- r[" >>" ] = BOP_SHIFT_R;
830
+ r[" *" ] = BOP_MULT;
831
+ r[" /" ] = BOP_DIV;
832
+ r[" %" ] = BOP_PERCENT;
838
833
839
- r[" >" ] = BOP_GREATER;
840
- r[" >=" ] = BOP_GREATER_EQ;
841
- r[" <" ] = BOP_LESS;
842
- r[" <=" ] = BOP_LESS_EQ;
834
+ r[" +" ] = BOP_PLUS;
835
+ r[" -" ] = BOP_MINUS;
843
836
844
- r[" == " ] = BOP_MANIFEST_EQUAL ;
845
- r[" != " ] = BOP_MANIFEST_UNEQUAL ;
837
+ r[" << " ] = BOP_SHIFT_L ;
838
+ r[" >> " ] = BOP_SHIFT_R ;
846
839
847
- r[" &" ] = BOP_BITWISE_AND;
848
- r[" ^" ] = BOP_BITWISE_XOR;
849
- r[" |" ] = BOP_BITWISE_OR;
840
+ r[" >" ] = BOP_GREATER;
841
+ r[" >=" ] = BOP_GREATER_EQ;
842
+ r[" <" ] = BOP_LESS;
843
+ r[" <=" ] = BOP_LESS_EQ;
850
844
851
- r[" &&" ] = BOP_AND;
852
- r[" ||" ] = BOP_OR;
853
- return r;
854
- }
845
+ r[" ==" ] = BOP_MANIFEST_EQUAL;
846
+ r[" !=" ] = BOP_MANIFEST_UNEQUAL;
847
+
848
+ r[" &" ] = BOP_BITWISE_AND;
849
+ r[" ^" ] = BOP_BITWISE_XOR;
850
+ r[" |" ] = BOP_BITWISE_OR;
855
851
856
- auto precedence_map = build_precedence_map() ;
857
- auto unary_map = build_unary_map() ;
858
- auto binary_map = build_binary_map() ;
852
+ r[ " && " ] = BOP_AND ;
853
+ r[ " || " ] = BOP_OR ;
854
+ return r ;
859
855
}
860
856
857
+ auto precedence_map = build_precedence_map();
858
+ auto unary_map = build_unary_map();
859
+ auto binary_map = build_binary_map();
860
+
861
+ } // namespace
862
+
861
863
#endif // JSONNET_AST_H
0 commit comments