Changeset 5331:8564b72915cf in livinglogic.python.xist

Show
Ignore:
Timestamp:
02/09/13 21:16:55 (6 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Remove ** syntax from UL4 dict literals.

Files:
7 modified

Legend:

Unmodified
Added
Removed
  • NEWS.rst

    r5330 r5331  
    3131 
    3232*   The UL4 functions ``vars`` and ``get`` have been removed. 
     33 
     34*   The ``**`` syntax has been removed for UL4 dict literals. 
    3335 
    3436*   The automatic UL4 variable ``stack`` has been removed too. 
  • docs/UL4.rst

    r5322 r5331  
    212212*   ``{"foo": 17, "bar": 23}`` 
    213213 
    214 Also Python ``**`` syntax for passing keyword arguments is supported for 
    215 creating dictionaries:: 
    216  
    217     {"foo": 17, "bar": 23, **{1: 2, 3: 4}} 
    218  
    219 With this it's possible to copy the content of one dictionary into another new 
    220 one. Keys are set from left to right, so later values overwrite former ones, so 
    221 ``{1: 2, 1: 3}[1]`` and ``{1: 2, **{1: 3}}[1]`` will both return ``3`` not ``2``. 
    222  
    223214It is also possible to create a dictionary with a dictionary comprehension:: 
    224215 
  • src/ll/UL4.g

    r5326 r5331  
    230230        ':' 
    231231        v=expr1 { $node = ($k.node, $v.node) } 
    232     | 
    233         '**' 
    234         d=expr1 { $node = ($d.node,) } 
    235232    ; 
    236233 
  • src/ll/UL4Lexer.py

    r5326 r5331  
    1 # $ANTLR 3.4 src/ll/UL4.g 2013-02-08 19:57:09 
     1# $ANTLR 3.4 src/ll/UL4.g 2013-02-09 21:15:37 
    22 
    33import sys 
  • src/ll/UL4Parser.py

    r5326 r5331  
    1 # $ANTLR 3.4 src/ll/UL4.g 2013-02-08 19:57:08 
     1# $ANTLR 3.4 src/ll/UL4.g 2013-02-09 21:15:36 
    22 
    33import sys 
     
    890890 
    891891    # $ANTLR start "dictitem" 
    892     # src/ll/UL4.g:227:1: fragment dictitem returns [node] : (k= expr1 ':' v= expr1 | '**' d= expr1 ); 
     892    # src/ll/UL4.g:227:1: fragment dictitem returns [node] : k= expr1 ':' v= expr1 ; 
    893893    def dictitem(self, ): 
    894894        node = None 
     
    899899        v = None 
    900900 
    901         d = None 
    902  
    903901 
    904902        try: 
    905903            try: 
    906                 # src/ll/UL4.g:228:2: (k= expr1 ':' v= expr1 | '**' d= expr1 ) 
    907                 alt6 = 2 
    908                 LA6_0 = self.input.LA(1) 
    909  
    910                 if ((COLOR <= LA6_0 <= DATE) or (FALSE <= LA6_0 <= FLOAT) or (INT <= LA6_0 <= NONE) or LA6_0 == STRING or LA6_0 == TRUE or LA6_0 == 27 or LA6_0 == 35 or LA6_0 == 49 or LA6_0 == 55 or LA6_0 == 57) : 
    911                     alt6 = 1 
    912                 elif (LA6_0 == 30) : 
    913                     alt6 = 2 
     904                # src/ll/UL4.g:228:2: (k= expr1 ':' v= expr1 ) 
     905                # src/ll/UL4.g:229:3: k= expr1 ':' v= expr1 
     906                pass  
     907                self._state.following.append(self.FOLLOW_expr1_in_dictitem1100) 
     908                k = self.expr1() 
     909 
     910                self._state.following.pop() 
     911 
     912                self.match(self.input, 42, self.FOLLOW_42_in_dictitem1104) 
     913 
     914                self._state.following.append(self.FOLLOW_expr1_in_dictitem1110) 
     915                v = self.expr1() 
     916 
     917                self._state.following.pop() 
     918 
     919                if self._state.backtracking == 0: 
     920                    pass 
     921                    node = (k, v)  
     922 
     923 
     924 
     925 
     926 
     927 
     928                        
     929            except RecognitionException as e: 
     930                raise 
     931 
     932        finally: 
     933            pass 
     934        return node 
     935 
     936    # $ANTLR end "dictitem" 
     937 
     938 
     939 
     940    # $ANTLR start "dict" 
     941    # src/ll/UL4.g:234:1: dict returns [node] : ( '{' '}' | '{' i1= dictitem ( ',' i2= dictitem )* ( ',' )? '}' ); 
     942    def dict(self, ): 
     943        node = None 
     944 
     945 
     946        i1 = None 
     947 
     948        i2 = None 
     949 
     950 
     951        try: 
     952            try: 
     953                # src/ll/UL4.g:235:2: ( '{' '}' | '{' i1= dictitem ( ',' i2= dictitem )* ( ',' )? '}' ) 
     954                alt8 = 2 
     955                LA8_0 = self.input.LA(1) 
     956 
     957                if (LA8_0 == 57) : 
     958                    LA8_1 = self.input.LA(2) 
     959 
     960                    if (LA8_1 == 58) : 
     961                        alt8 = 1 
     962                    elif ((COLOR <= LA8_1 <= DATE) or (FALSE <= LA8_1 <= FLOAT) or (INT <= LA8_1 <= NONE) or LA8_1 == STRING or LA8_1 == TRUE or LA8_1 == 27 or LA8_1 == 35 or LA8_1 == 49 or LA8_1 == 55 or LA8_1 == 57) : 
     963                        alt8 = 2 
     964                    else: 
     965                        if self._state.backtracking > 0: 
     966                            raise BacktrackingFailed 
     967 
     968 
     969                        nvae = NoViableAltException("", 8, 1, self.input) 
     970 
     971                        raise nvae 
     972 
     973 
    914974                else: 
    915975                    if self._state.backtracking > 0: 
     
    917977 
    918978 
    919                     nvae = NoViableAltException("", 6, 0, self.input) 
     979                    nvae = NoViableAltException("", 8, 0, self.input) 
    920980 
    921981                    raise nvae 
    922982 
    923983 
    924                 if alt6 == 1: 
    925                     # src/ll/UL4.g:229:3: k= expr1 ':' v= expr1 
     984                if alt8 == 1: 
     985                    # src/ll/UL4.g:236:3: '{' '}' 
    926986                    pass  
    927                     self._state.following.append(self.FOLLOW_expr1_in_dictitem1100) 
    928                     k = self.expr1() 
    929  
    930                     self._state.following.pop() 
    931  
    932                     self.match(self.input, 42, self.FOLLOW_42_in_dictitem1104) 
    933  
    934                     self._state.following.append(self.FOLLOW_expr1_in_dictitem1110) 
    935                     v = self.expr1() 
    936  
    937                     self._state.following.pop() 
     987                    self.match(self.input, 57, self.FOLLOW_57_in_dict1129) 
     988 
     989                    self.match(self.input, 58, self.FOLLOW_58_in_dict1133) 
    938990 
    939991                    if self._state.backtracking == 0: 
    940992                        pass 
    941                         node = (k, v)  
    942  
    943  
    944  
    945  
    946                 elif alt6 == 2: 
    947                     # src/ll/UL4.g:233:3: '**' d= expr1 
     993                        node = ul4c.Dict()  
     994 
     995 
     996 
     997 
     998                elif alt8 == 2: 
     999                    # src/ll/UL4.g:239:3: '{' i1= dictitem ( ',' i2= dictitem )* ( ',' )? '}' 
    9481000                    pass  
    949                     self.match(self.input, 30, self.FOLLOW_30_in_dictitem1119) 
    950  
    951                     self._state.following.append(self.FOLLOW_expr1_in_dictitem1125) 
    952                     d = self.expr1() 
    953  
    954                     self._state.following.pop() 
     1001                    self.match(self.input, 57, self.FOLLOW_57_in_dict1142) 
    9551002 
    9561003                    if self._state.backtracking == 0: 
    9571004                        pass 
    958                         node = (d,)  
    959  
    960  
     1005                        node = ul4c.Dict()  
     1006 
     1007 
     1008 
     1009                    self._state.following.append(self.FOLLOW_dictitem_in_dict1150) 
     1010                    i1 = self.dictitem() 
     1011 
     1012                    self._state.following.pop() 
     1013 
     1014                    if self._state.backtracking == 0: 
     1015                        pass 
     1016                        node.items.append(i1)  
     1017 
     1018 
     1019 
     1020                    # src/ll/UL4.g:241:3: ( ',' i2= dictitem )* 
     1021                    while True: #loop6 
     1022                        alt6 = 2 
     1023                        LA6_0 = self.input.LA(1) 
     1024 
     1025                        if (LA6_0 == 34) : 
     1026                            LA6_1 = self.input.LA(2) 
     1027 
     1028                            if ((COLOR <= LA6_1 <= DATE) or (FALSE <= LA6_1 <= FLOAT) or (INT <= LA6_1 <= NONE) or LA6_1 == STRING or LA6_1 == TRUE or LA6_1 == 27 or LA6_1 == 35 or LA6_1 == 49 or LA6_1 == 55 or LA6_1 == 57) : 
     1029                                alt6 = 1 
     1030 
     1031 
     1032 
     1033 
     1034                        if alt6 == 1: 
     1035                            # src/ll/UL4.g:242:4: ',' i2= dictitem 
     1036                            pass  
     1037                            self.match(self.input, 34, self.FOLLOW_34_in_dict1161) 
     1038 
     1039                            self._state.following.append(self.FOLLOW_dictitem_in_dict1168) 
     1040                            i2 = self.dictitem() 
     1041 
     1042                            self._state.following.pop() 
     1043 
     1044                            if self._state.backtracking == 0: 
     1045                                pass 
     1046                                node.items.append(i2)  
     1047 
     1048 
     1049 
     1050 
     1051                        else: 
     1052                            break #loop6 
     1053 
     1054 
     1055                    # src/ll/UL4.g:245:3: ( ',' )? 
     1056                    alt7 = 2 
     1057                    LA7_0 = self.input.LA(1) 
     1058 
     1059                    if (LA7_0 == 34) : 
     1060                        alt7 = 1 
     1061                    if alt7 == 1: 
     1062                        # src/ll/UL4.g:245:3: ',' 
     1063                        pass  
     1064                        self.match(self.input, 34, self.FOLLOW_34_in_dict1179) 
     1065 
     1066 
     1067 
     1068 
     1069                    self.match(self.input, 58, self.FOLLOW_58_in_dict1184) 
    9611070 
    9621071 
     
    9701079        return node 
    9711080 
    972     # $ANTLR end "dictitem" 
    973  
    974  
    975  
    976     # $ANTLR start "dict" 
    977     # src/ll/UL4.g:237:1: dict returns [node] : ( '{' '}' | '{' i1= dictitem ( ',' i2= dictitem )* ( ',' )? '}' ); 
    978     def dict(self, ): 
    979         node = None 
    980  
    981  
    982         i1 = None 
    983  
    984         i2 = None 
    985  
    986  
    987         try: 
    988             try: 
    989                 # src/ll/UL4.g:238:2: ( '{' '}' | '{' i1= dictitem ( ',' i2= dictitem )* ( ',' )? '}' ) 
    990                 alt9 = 2 
    991                 LA9_0 = self.input.LA(1) 
    992  
    993                 if (LA9_0 == 57) : 
    994                     LA9_1 = self.input.LA(2) 
    995  
    996                     if (LA9_1 == 58) : 
    997                         alt9 = 1 
    998                     elif ((COLOR <= LA9_1 <= DATE) or (FALSE <= LA9_1 <= FLOAT) or (INT <= LA9_1 <= NONE) or LA9_1 == STRING or LA9_1 == TRUE or LA9_1 == 27 or LA9_1 == 30 or LA9_1 == 35 or LA9_1 == 49 or LA9_1 == 55 or LA9_1 == 57) : 
    999                         alt9 = 2 
    1000                     else: 
    1001                         if self._state.backtracking > 0: 
    1002                             raise BacktrackingFailed 
    1003  
    1004  
    1005                         nvae = NoViableAltException("", 9, 1, self.input) 
    1006  
    1007                         raise nvae 
    1008  
    1009  
    1010                 else: 
    1011                     if self._state.backtracking > 0: 
    1012                         raise BacktrackingFailed 
    1013  
    1014  
    1015                     nvae = NoViableAltException("", 9, 0, self.input) 
    1016  
    1017                     raise nvae 
    1018  
    1019  
    1020                 if alt9 == 1: 
    1021                     # src/ll/UL4.g:239:3: '{' '}' 
    1022                     pass  
    1023                     self.match(self.input, 57, self.FOLLOW_57_in_dict1144) 
    1024  
    1025                     self.match(self.input, 58, self.FOLLOW_58_in_dict1148) 
    1026  
    1027                     if self._state.backtracking == 0: 
    1028                         pass 
    1029                         node = ul4c.Dict()  
    1030  
    1031  
    1032  
    1033  
    1034                 elif alt9 == 2: 
    1035                     # src/ll/UL4.g:242:3: '{' i1= dictitem ( ',' i2= dictitem )* ( ',' )? '}' 
    1036                     pass  
    1037                     self.match(self.input, 57, self.FOLLOW_57_in_dict1157) 
    1038  
    1039                     if self._state.backtracking == 0: 
    1040                         pass 
    1041                         node = ul4c.Dict()  
    1042  
    1043  
    1044  
    1045                     self._state.following.append(self.FOLLOW_dictitem_in_dict1165) 
    1046                     i1 = self.dictitem() 
    1047  
    1048                     self._state.following.pop() 
    1049  
    1050                     if self._state.backtracking == 0: 
    1051                         pass 
    1052                         node.items.append(i1)  
    1053  
    1054  
    1055  
    1056                     # src/ll/UL4.g:244:3: ( ',' i2= dictitem )* 
    1057                     while True: #loop7 
    1058                         alt7 = 2 
    1059                         LA7_0 = self.input.LA(1) 
    1060  
    1061                         if (LA7_0 == 34) : 
    1062                             LA7_1 = self.input.LA(2) 
    1063  
    1064                             if ((COLOR <= LA7_1 <= DATE) or (FALSE <= LA7_1 <= FLOAT) or (INT <= LA7_1 <= NONE) or LA7_1 == STRING or LA7_1 == TRUE or LA7_1 == 27 or LA7_1 == 30 or LA7_1 == 35 or LA7_1 == 49 or LA7_1 == 55 or LA7_1 == 57) : 
    1065                                 alt7 = 1 
    1066  
    1067  
    1068  
    1069  
    1070                         if alt7 == 1: 
    1071                             # src/ll/UL4.g:245:4: ',' i2= dictitem 
    1072                             pass  
    1073                             self.match(self.input, 34, self.FOLLOW_34_in_dict1176) 
    1074  
    1075                             self._state.following.append(self.FOLLOW_dictitem_in_dict1183) 
    1076                             i2 = self.dictitem() 
    1077  
    1078                             self._state.following.pop() 
    1079  
    1080                             if self._state.backtracking == 0: 
    1081                                 pass 
    1082                                 node.items.append(i2)  
    1083  
    1084  
    1085  
    1086  
    1087                         else: 
    1088                             break #loop7 
    1089  
    1090  
    1091                     # src/ll/UL4.g:248:3: ( ',' )? 
    1092                     alt8 = 2 
    1093                     LA8_0 = self.input.LA(1) 
    1094  
    1095                     if (LA8_0 == 34) : 
    1096                         alt8 = 1 
    1097                     if alt8 == 1: 
    1098                         # src/ll/UL4.g:248:3: ',' 
    1099                         pass  
    1100                         self.match(self.input, 34, self.FOLLOW_34_in_dict1194) 
    1101  
    1102  
    1103  
    1104  
    1105                     self.match(self.input, 58, self.FOLLOW_58_in_dict1199) 
    1106  
    1107  
    1108  
    1109                         
    1110             except RecognitionException as e: 
    1111                 raise 
    1112  
    1113         finally: 
    1114             pass 
    1115         return node 
    1116  
    11171081    # $ANTLR end "dict" 
    11181082 
     
    11201084 
    11211085    # $ANTLR start "dictcomprehension" 
    1122     # src/ll/UL4.g:252:1: dictcomprehension returns [node] : '{' key= expr1 ':' value= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? '}' ; 
     1086    # src/ll/UL4.g:249:1: dictcomprehension returns [node] : '{' key= expr1 ':' value= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? '}' ; 
    11231087    def dictcomprehension(self, ): 
    11241088        node = None 
     
    11411105        try: 
    11421106            try: 
    1143                 # src/ll/UL4.g:257:2: ( '{' key= expr1 ':' value= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? '}' ) 
    1144                 # src/ll/UL4.g:258:3: '{' key= expr1 ':' value= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? '}' 
     1107                # src/ll/UL4.g:254:2: ( '{' key= expr1 ':' value= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? '}' ) 
     1108                # src/ll/UL4.g:255:3: '{' key= expr1 ':' value= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? '}' 
    11451109                pass  
    1146                 self.match(self.input, 57, self.FOLLOW_57_in_dictcomprehension1223) 
    1147  
    1148                 self._state.following.append(self.FOLLOW_expr1_in_dictcomprehension1229) 
     1110                self.match(self.input, 57, self.FOLLOW_57_in_dictcomprehension1208) 
     1111 
     1112                self._state.following.append(self.FOLLOW_expr1_in_dictcomprehension1214) 
    11491113                key = self.expr1() 
    11501114 
    11511115                self._state.following.pop() 
    11521116 
    1153                 self.match(self.input, 42, self.FOLLOW_42_in_dictcomprehension1233) 
    1154  
    1155                 self._state.following.append(self.FOLLOW_expr1_in_dictcomprehension1239) 
     1117                self.match(self.input, 42, self.FOLLOW_42_in_dictcomprehension1218) 
     1118 
     1119                self._state.following.append(self.FOLLOW_expr1_in_dictcomprehension1224) 
    11561120                value = self.expr1() 
    11571121 
    11581122                self._state.following.pop() 
    11591123 
    1160                 self.match(self.input, 52, self.FOLLOW_52_in_dictcomprehension1243) 
    1161  
    1162                 self._state.following.append(self.FOLLOW_nestedname_in_dictcomprehension1249) 
     1124                self.match(self.input, 52, self.FOLLOW_52_in_dictcomprehension1228) 
     1125 
     1126                self._state.following.append(self.FOLLOW_nestedname_in_dictcomprehension1234) 
    11631127                n = self.nestedname() 
    11641128 
    11651129                self._state.following.pop() 
    11661130 
    1167                 self.match(self.input, 54, self.FOLLOW_54_in_dictcomprehension1253) 
    1168  
    1169                 self._state.following.append(self.FOLLOW_expr1_in_dictcomprehension1259) 
     1131                self.match(self.input, 54, self.FOLLOW_54_in_dictcomprehension1238) 
     1132 
     1133                self._state.following.append(self.FOLLOW_expr1_in_dictcomprehension1244) 
    11701134                container = self.expr1() 
    11711135 
    11721136                self._state.following.pop() 
    11731137 
    1174                 # src/ll/UL4.g:266:3: ( 'if' condition= expr1 )? 
    1175                 alt10 = 2 
    1176                 LA10_0 = self.input.LA(1) 
    1177  
    1178                 if (LA10_0 == 53) : 
    1179                     alt10 = 1 
    1180                 if alt10 == 1: 
    1181                     # src/ll/UL4.g:267:4: 'if' condition= expr1 
     1138                # src/ll/UL4.g:263:3: ( 'if' condition= expr1 )? 
     1139                alt9 = 2 
     1140                LA9_0 = self.input.LA(1) 
     1141 
     1142                if (LA9_0 == 53) : 
     1143                    alt9 = 1 
     1144                if alt9 == 1: 
     1145                    # src/ll/UL4.g:264:4: 'if' condition= expr1 
    11821146                    pass  
    1183                     self.match(self.input, 53, self.FOLLOW_53_in_dictcomprehension1268) 
    1184  
    1185                     self._state.following.append(self.FOLLOW_expr1_in_dictcomprehension1275) 
     1147                    self.match(self.input, 53, self.FOLLOW_53_in_dictcomprehension1253) 
     1148 
     1149                    self._state.following.append(self.FOLLOW_expr1_in_dictcomprehension1260) 
    11861150                    condition = self.expr1() 
    11871151 
     
    11971161 
    11981162 
    1199                 self.match(self.input, 58, self.FOLLOW_58_in_dictcomprehension1286) 
     1163                self.match(self.input, 58, self.FOLLOW_58_in_dictcomprehension1271) 
    12001164 
    12011165                if self._state.backtracking == 0: 
     
    12211185 
    12221186    # $ANTLR start "generatorexpression" 
    1223     # src/ll/UL4.g:273:1: generatorexpression returns [node] : item= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? ; 
     1187    # src/ll/UL4.g:270:1: generatorexpression returns [node] : item= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? ; 
    12241188    def generatorexpression(self, ): 
    12251189        node = None 
     
    12401204        try: 
    12411205            try: 
    1242                 # src/ll/UL4.g:278:2: (item= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? ) 
    1243                 # src/ll/UL4.g:279:3: item= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? 
     1206                # src/ll/UL4.g:275:2: (item= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? ) 
     1207                # src/ll/UL4.g:276:3: item= expr1 'for' n= nestedname 'in' container= expr1 ( 'if' condition= expr1 )? 
    12441208                pass  
    1245                 self._state.following.append(self.FOLLOW_expr1_in_generatorexpression1314) 
     1209                self._state.following.append(self.FOLLOW_expr1_in_generatorexpression1299) 
    12461210                item = self.expr1() 
    12471211 
    12481212                self._state.following.pop() 
    12491213 
    1250                 self.match(self.input, 52, self.FOLLOW_52_in_generatorexpression1318) 
    1251  
    1252                 self._state.following.append(self.FOLLOW_nestedname_in_generatorexpression1324) 
     1214                self.match(self.input, 52, self.FOLLOW_52_in_generatorexpression1303) 
     1215 
     1216                self._state.following.append(self.FOLLOW_nestedname_in_generatorexpression1309) 
    12531217                n = self.nestedname() 
    12541218 
    12551219                self._state.following.pop() 
    12561220 
    1257                 self.match(self.input, 54, self.FOLLOW_54_in_generatorexpression1328) 
    1258  
    1259                 self._state.following.append(self.FOLLOW_expr1_in_generatorexpression1334) 
     1221                self.match(self.input, 54, self.FOLLOW_54_in_generatorexpression1313) 
     1222 
     1223                self._state.following.append(self.FOLLOW_expr1_in_generatorexpression1319) 
    12601224                container = self.expr1() 
    12611225 
    12621226                self._state.following.pop() 
    12631227 
    1264                 # src/ll/UL4.g:284:3: ( 'if' condition= expr1 )? 
    1265                 alt11 = 2 
    1266                 LA11_0 = self.input.LA(1) 
    1267  
    1268                 if (LA11_0 == 53) : 
    1269                     alt11 = 1 
    1270                 if alt11 == 1: 
    1271                     # src/ll/UL4.g:285:4: 'if' condition= expr1 
     1228                # src/ll/UL4.g:281:3: ( 'if' condition= expr1 )? 
     1229                alt10 = 2 
     1230                LA10_0 = self.input.LA(1) 
     1231 
     1232                if (LA10_0 == 53) : 
     1233                    alt10 = 1 
     1234                if alt10 == 1: 
     1235                    # src/ll/UL4.g:282:4: 'if' condition= expr1 
    12721236                    pass  
    1273                     self.match(self.input, 53, self.FOLLOW_53_in_generatorexpression1343) 
    1274  
    1275                     self._state.following.append(self.FOLLOW_expr1_in_generatorexpression1350) 
     1237                    self.match(self.input, 53, self.FOLLOW_53_in_generatorexpression1328) 
     1238 
     1239                    self._state.following.append(self.FOLLOW_expr1_in_generatorexpression1335) 
    12761240                    condition = self.expr1() 
    12771241 
     
    13091273 
    13101274    # $ANTLR start "atom" 
    1311     # src/ll/UL4.g:290:1: atom returns [node] : (e_literal= literal |e_list= list |e_listcomp= listcomprehension |e_dict= dict |e_dictcomp= dictcomprehension | '(' e_genexpr= generatorexpression ')' | '(' e_bracket= expr1 ')' ); 
     1275    # src/ll/UL4.g:287:1: atom returns [node] : (e_literal= literal |e_list= list |e_listcomp= listcomprehension |e_dict= dict |e_dictcomp= dictcomprehension | '(' e_genexpr= generatorexpression ')' | '(' e_bracket= expr1 ')' ); 
    13121276    def atom(self, ): 
    13131277        node = None 
     
    13311295        try: 
    13321296            try: 
    1333                 # src/ll/UL4.g:291:2: (e_literal= literal |e_list= list |e_listcomp= listcomprehension |e_dict= dict |e_dictcomp= dictcomprehension | '(' e_genexpr= generatorexpression ')' | '(' e_bracket= expr1 ')' ) 
    1334                 alt12 = 7 
    1335                 LA12 = self.input.LA(1) 
    1336                 if LA12 == COLOR or LA12 == DATE or LA12 == FALSE or LA12 == FLOAT or LA12 == INT or LA12 == NAME or LA12 == NONE or LA12 == STRING or LA12 == TRUE: 
    1337                     alt12 = 1 
    1338                 elif LA12 == 49: 
    1339                     LA12_10 = self.input.LA(2) 
    1340  
    1341                     if (self.synpred20_UL4()) : 
    1342                         alt12 = 2 
    1343                     elif (self.synpred21_UL4()) : 
    1344                         alt12 = 3 
     1297                # src/ll/UL4.g:288:2: (e_literal= literal |e_list= list |e_listcomp= listcomprehension |e_dict= dict |e_dictcomp= dictcomprehension | '(' e_genexpr= generatorexpression ')' | '(' e_bracket= expr1 ')' ) 
     1298                alt11 = 7 
     1299                LA11 = self.input.LA(1) 
     1300                if LA11 == COLOR or LA11 == DATE or LA11 == FALSE or LA11 == FLOAT or LA11 == INT or LA11 == NAME or LA11 == NONE or LA11 == STRING or LA11 == TRUE: 
     1301                    alt11 = 1 
     1302                elif LA11 == 49: 
     1303                    LA11_10 = self.input.LA(2) 
     1304 
     1305                    if (self.synpred19_UL4()) : 
     1306                        alt11 = 2 
     1307                    elif (self.synpred20_UL4()) : 
     1308                        alt11 = 3 
    13451309                    else: 
    13461310                        if self._state.backtracking > 0: 
     
    13481312 
    13491313 
    1350                         nvae = NoViableAltException("", 12, 10, self.input) 
     1314                        nvae = NoViableAltException("", 11, 10, self.input) 
    13511315 
    13521316                        raise nvae 
    13531317 
    13541318 
    1355                 elif LA12 == 57: 
    1356                     LA12_11 = self.input.LA(2) 
    1357  
    1358                     if (self.synpred22_UL4()) : 
    1359                         alt12 = 4 
    1360                     elif (self.synpred23_UL4()) : 
    1361                         alt12 = 5 
     1319                elif LA11 == 57: 
     1320                    LA11_11 = self.input.LA(2) 
     1321 
     1322                    if (self.synpred21_UL4()) : 
     1323                        alt11 = 4 
     1324                    elif (self.synpred22_UL4()) : 
     1325                        alt11 = 5 
    13621326                    else: 
    13631327                        if self._state.backtracking > 0: 
     
    13651329 
    13661330 
    1367                         nvae = NoViableAltException("", 12, 11, self.input) 
     1331                        nvae = NoViableAltException("", 11, 11, self.input) 
    13681332 
    13691333                        raise nvae 
    13701334 
    13711335 
    1372                 elif LA12 == 27: 
    1373                     LA12_12 = self.input.LA(2) 
    1374  
    1375                     if (self.synpred24_UL4()) : 
    1376                         alt12 = 6 
     1336                elif LA11 == 27: 
     1337                    LA11_12 = self.input.LA(2) 
     1338 
     1339                    if (self.synpred23_UL4()) : 
     1340                        alt11 = 6 
    13771341                    elif (True) : 
    1378                         alt12 = 7 
     1342                        alt11 = 7 
    13791343                    else: 
    13801344                        if self._state.backtracking > 0: 
     
    13821346 
    13831347 
    1384                         nvae = NoViableAltException("", 12, 12, self.input) 
     1348                        nvae = NoViableAltException("", 11, 12, self.input) 
    13851349 
    13861350                        raise nvae 
     
    13921356 
    13931357 
    1394                     nvae = NoViableAltException("", 12, 0, self.input) 
     1358                    nvae = NoViableAltException("", 11, 0, self.input) 
    13951359 
    13961360                    raise nvae 
    13971361 
    13981362 
    1399                 if alt12 == 1: 
    1400                     # src/ll/UL4.g:291:4: e_literal= literal 
     1363                if alt11 == 1: 
     1364                    # src/ll/UL4.g:288:4: e_literal= literal 
    14011365                    pass  
    1402                     self._state.following.append(self.FOLLOW_literal_in_atom1376) 
     1366                    self._state.following.append(self.FOLLOW_literal_in_atom1361) 
    14031367                    e_literal = self.literal() 
    14041368 
     
    14121376 
    14131377 
    1414                 elif alt12 == 2: 
    1415                     # src/ll/UL4.g:292:4: e_list= list 
     1378                elif alt11 == 2: 
     1379                    # src/ll/UL4.g:289:4: e_list= list 
    14161380                    pass  
    1417                     self._state.following.append(self.FOLLOW_list_in_atom1385) 
     1381                    self._state.following.append(self.FOLLOW_list_in_atom1370) 
    14181382                    e_list = self.list() 
    14191383 
     
    14271391 
    14281392 
    1429                 elif alt12 == 3: 
    1430                     # src/ll/UL4.g:293:4: e_listcomp= listcomprehension 
     1393                elif alt11 == 3: 
     1394                    # src/ll/UL4.g:290:4: e_listcomp= listcomprehension 
    14311395                    pass  
    1432                     self._state.following.append(self.FOLLOW_listcomprehension_in_atom1394) 
     1396                    self._state.following.append(self.FOLLOW_listcomprehension_in_atom1379) 
    14331397                    e_listcomp = self.listcomprehension() 
    14341398 
     
    14421406 
    14431407 
    1444                 elif alt12 == 4: 
    1445                     # src/ll/UL4.g:294:4: e_dict= dict 
     1408                elif alt11 == 4: 
     1409                    # src/ll/UL4.g:291:4: e_dict= dict 
    14461410                    pass  
    1447                     self._state.following.append(self.FOLLOW_dict_in_atom1403) 
     1411                    self._state.following.append(self.FOLLOW_dict_in_atom1388) 
    14481412                    e_dict = self.dict() 
    14491413 
     
    14571421 
    14581422 
    1459                 elif alt12 == 5: 
    1460                     # src/ll/UL4.g:295:4: e_dictcomp= dictcomprehension 
     1423                elif alt11 == 5: 
     1424                    # src/ll/UL4.g:292:4: e_dictcomp= dictcomprehension 
    14611425                    pass  
    1462                     self._state.following.append(self.FOLLOW_dictcomprehension_in_atom1412) 
     1426                    self._state.following.append(self.FOLLOW_dictcomprehension_in_atom1397) 
    14631427                    e_dictcomp = self.dictcomprehension() 
    14641428 
     
    14721436 
    14731437 
    1474                 elif alt12 == 6: 
    1475                     # src/ll/UL4.g:296:4: '(' e_genexpr= generatorexpression ')' 
     1438                elif alt11 == 6: 
     1439                    # src/ll/UL4.g:293:4: '(' e_genexpr= generatorexpression ')' 
    14761440                    pass  
    1477                     self.match(self.input, 27, self.FOLLOW_27_in_atom1419) 
    1478  
    1479                     self._state.following.append(self.FOLLOW_generatorexpression_in_atom1423) 
     1441                    self.match(self.input, 27, self.FOLLOW_27_in_atom1404) 
     1442 
     1443                    self._state.following.append(self.FOLLOW_generatorexpression_in_atom1408) 
    14801444                    e_genexpr = self.generatorexpression() 
    14811445 
    14821446                    self._state.following.pop() 
    14831447 
    1484                     self.match(self.input, 28, self.FOLLOW_28_in_atom1425) 
     1448                    self.match(self.input, 28, self.FOLLOW_28_in_atom1410) 
    14851449 
    14861450                    if self._state.backtracking == 0: 
     
    14911455 
    14921456 
    1493                 elif alt12 == 7: 
    1494                     # src/ll/UL4.g:297:4: '(' e_bracket= expr1 ')' 
     1457                elif alt11 == 7: 
     1458                    # src/ll/UL4.g:294:4: '(' e_bracket= expr1 ')' 
    14951459                    pass  
    1496                     self.match(self.input, 27, self.FOLLOW_27_in_atom1432) 
    1497  
    1498                     self._state.following.append(self.FOLLOW_expr1_in_atom1436) 
     1460                    self.match(self.input, 27, self.FOLLOW_27_in_atom1417) 
     1461 
     1462                    self._state.following.append(self.FOLLOW_expr1_in_atom1421) 
    14991463                    e_bracket = self.expr1() 
    15001464 
    15011465                    self._state.following.pop() 
    15021466 
    1503                     self.match(self.input, 28, self.FOLLOW_28_in_atom1438) 
     1467                    self.match(self.input, 28, self.FOLLOW_28_in_atom1423) 
    15041468 
    15051469                    if self._state.backtracking == 0: 
     
    15241488 
    15251489    # $ANTLR start "nestedname" 
    1526     # src/ll/UL4.g:301:1: nestedname returns [varname] : (n= name | '(' n0= nestedname ',' ')' | '(' n1= nestedname ',' n2= nestedname ( ',' n3= nestedname )* ( ',' )? ')' ); 
     1490    # src/ll/UL4.g:298:1: nestedname returns [varname] : (n= name | '(' n0= nestedname ',' ')' | '(' n1= nestedname ',' n2= nestedname ( ',' n3= nestedname )* ( ',' )? ')' ); 
    15271491    def nestedname(self, ): 
    15281492        varname = None 
     
    15421506        try: 
    15431507            try: 
    1544                 # src/ll/UL4.g:302:2: (n= name | '(' n0= nestedname ',' ')' | '(' n1= nestedname ',' n2= nestedname ( ',' n3= nestedname )* ( ',' )? ')' ) 
    1545                 alt15 = 3 
    1546                 LA15_0 = self.input.LA(1) 
    1547  
    1548                 if (LA15_0 == NAME) : 
    1549                     alt15 = 1 
    1550                 elif (LA15_0 == 27) : 
    1551                     LA15_2 = self.input.LA(2) 
    1552  
    1553                     if (self.synpred26_UL4()) : 
    1554                         alt15 = 2 
     1508                # src/ll/UL4.g:299:2: (n= name | '(' n0= nestedname ',' ')' | '(' n1= nestedname ',' n2= nestedname ( ',' n3= nestedname )* ( ',' )? ')' ) 
     1509                alt14 = 3 
     1510                LA14_0 = self.input.LA(1) 
     1511 
     1512                if (LA14_0 == NAME) : 
     1513                    alt14 = 1 
     1514                elif (LA14_0 == 27) : 
     1515                    LA14_2 = self.input.LA(2) 
     1516 
     1517                    if (self.synpred25_UL4()) : 
     1518                        alt14 = 2 
    15551519                    elif (True) : 
    1556                         alt15 = 3 
     1520                        alt14 = 3 
    15571521                    else: 
    15581522                        if self._state.backtracking > 0: 
     
    15601524 
    15611525 
    1562                         nvae = NoViableAltException("", 15, 2, self.input) 
     1526                        nvae = NoViableAltException("", 14, 2, self.input) 
    15631527 
    15641528                        raise nvae 
     
    15701534 
    15711535 
    1572                     nvae = NoViableAltException("", 15, 0, self.input) 
     1536                    nvae = NoViableAltException("", 14, 0, self.input) 
    15731537 
    15741538                    raise nvae 
    15751539 
    15761540 
    1577                 if alt15 == 1: 
    1578                     # src/ll/UL4.g:303:3: n= name 
     1541                if alt14 == 1: 
     1542                    # src/ll/UL4.g:300:3: n= name 
    15791543                    pass  
    1580                     self._state.following.append(self.FOLLOW_name_in_nestedname1461) 
     1544                    self._state.following.append(self.FOLLOW_name_in_nestedname1446) 
    15811545                    n = self.name() 
    15821546 
     
    15901554 
    15911555 
    1592                 elif alt15 == 2: 
    1593                     # src/ll/UL4.g:305:3: '(' n0= nestedname ',' ')' 
     1556                elif alt14 == 2: 
     1557                    # src/ll/UL4.g:302:3: '(' n0= nestedname ',' ')' 
    15941558                    pass  
    1595                     self.match(self.input, 27, self.FOLLOW_27_in_nestedname1470) 
    1596  
    1597                     self._state.following.append(self.FOLLOW_nestedname_in_nestedname1474) 
     1559                    self.match(self.input, 27, self.FOLLOW_27_in_nestedname1455) 
     1560 
     1561                    self._state.following.append(self.FOLLOW_nestedname_in_nestedname1459) 
    15981562                    n0 = self.nestedname() 
    15991563 
    16001564                    self._state.following.pop() 
    16011565 
    1602                     self.match(self.input, 34, self.FOLLOW_34_in_nestedname1476) 
    1603  
    1604                     self.match(self.input, 28, self.FOLLOW_28_in_nestedname1478) 
     1566                    self.match(self.input, 34, self.FOLLOW_34_in_nestedname1461) 
     1567 
     1568                    self.match(self.input, 28, self.FOLLOW_28_in_nestedname1463) 
    16051569 
    16061570                    if self._state.backtracking == 0: 
     
    16111575 
    16121576 
    1613                 elif alt15 == 3: 
    1614                     # src/ll/UL4.g:307:3: '(' n1= nestedname ',' n2= nestedname ( ',' n3= nestedname )* ( ',' )? ')' 
     1577                elif alt14 == 3: 
     1578                    # src/ll/UL4.g:304:3: '(' n1= nestedname ',' n2= nestedname ( ',' n3= nestedname )* ( ',' )? ')' 
    16151579                    pass  
    1616                     self.match(self.input, 27, self.FOLLOW_27_in_nestedname1487) 
    1617  
    1618                     self._state.following.append(self.FOLLOW_nestedname_in_nestedname1493) 
     1580                    self.match(self.input, 27, self.FOLLOW_27_in_nestedname1472) 
     1581 
     1582                    self._state.following.append(self.FOLLOW_nestedname_in_nestedname1478) 
    16191583                    n1 = self.nestedname() 
    16201584 
    16211585                    self._state.following.pop() 
    16221586 
    1623                     self.match(self.input, 34, self.FOLLOW_34_in_nestedname1497) 
    1624  
    1625                     self._state.following.append(self.FOLLOW_nestedname_in_nestedname1503) 
     1587                    self.match(self.input, 34, self.FOLLOW_34_in_nestedname1482) 
     1588 
     1589                    self._state.following.append(self.FOLLOW_nestedname_in_nestedname1488) 
    16261590                    n2 = self.nestedname() 
    16271591 
     
    16341598 
    16351599 
    1636                     # src/ll/UL4.g:311:3: ( ',' n3= nestedname )* 
    1637                     while True: #loop13 
    1638                         alt13 = 2 
    1639                         LA13_0 = self.input.LA(1) 
    1640  
    1641                         if (LA13_0 == 34) : 
    1642                             LA13_1 = self.input.LA(2) 
    1643  
    1644                             if (LA13_1 == NAME or LA13_1 == 27) : 
    1645                                 alt13 = 1 
    1646  
    1647  
    1648  
    1649  
    1650                         if alt13 == 1: 
    1651                             # src/ll/UL4.g:312:4: ',' n3= nestedname 
     1600                    # src/ll/UL4.g:308:3: ( ',' n3= nestedname )* 
     1601                    while True: #loop12 
     1602                        alt12 = 2 
     1603                        LA12_0 = self.input.LA(1) 
     1604 
     1605                        if (LA12_0 == 34) : 
     1606                            LA12_1 = self.input.LA(2) 
     1607 
     1608                            if (LA12_1 == NAME or LA12_1 == 27) : 
     1609                                alt12 = 1 
     1610 
     1611 
     1612 
     1613 
     1614                        if alt12 == 1: 
     1615                            # src/ll/UL4.g:309:4: ',' n3= nestedname 
    16521616                            pass  
    1653                             self.match(self.input, 34, self.FOLLOW_34_in_nestedname1514) 
    1654  
    1655                             self._state.following.append(self.FOLLOW_nestedname_in_nestedname1521) 
     1617                            self.match(self.input, 34, self.FOLLOW_34_in_nestedname1499) 
     1618 
     1619                            self._state.following.append(self.FOLLOW_nestedname_in_nestedname1506) 
    16561620                            n3 = self.nestedname() 
    16571621 
     
    16661630 
    16671631                        else: 
    1668                             break #loop13 
    1669  
    1670  
    1671                     # src/ll/UL4.g:315:3: ( ',' )? 
    1672                     alt14 = 2 
    1673                     LA14_0 = self.input.LA(1) 
    1674  
    1675                     if (LA14_0 == 34) : 
    1676                         alt14 = 1 
    1677                     if alt14 == 1: 
    1678                         # src/ll/UL4.g:315:3: ',' 
     1632                            break #loop12 
     1633 
     1634 
     1635                    # src/ll/UL4.g:312:3: ( ',' )? 
     1636                    alt13 = 2 
     1637                    LA13_0 = self.input.LA(1) 
     1638 
     1639                    if (LA13_0 == 34) : 
     1640                        alt13 = 1 
     1641                    if alt13 == 1: 
     1642                        # src/ll/UL4.g:312:3: ',' 
    16791643                        pass  
    1680                         self.match(self.input, 34, self.FOLLOW_34_in_nestedname1532) 
    1681  
    1682  
    1683  
    1684  
    1685                     self.match(self.input, 28, self.FOLLOW_28_in_nestedname1537) 
     1644                        self.match(self.input, 34, self.FOLLOW_34_in_nestedname1517) 
     1645 
     1646 
     1647 
     1648 
     1649                    self.match(self.input, 28, self.FOLLOW_28_in_nestedname1522) 
    16861650 
    16871651 
     
    17001664 
    17011665    # $ANTLR start "expr9" 
    1702     # src/ll/UL4.g:320:1: expr9 returns [node] : e1= atom ( '.' n= name | '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' | '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' )* ; 
     1666    # src/ll/UL4.g:317:1: expr9 returns [node] : e1= atom ( '.' n= name | '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' | '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' )* ; 
    17031667    def expr9(self, ): 
    17041668        node = None 
     
    17421706        try: 
    17431707            try: 
    1744                 # src/ll/UL4.g:328:2: (e1= atom ( '.' n= name | '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' | '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' )* ) 
    1745                 # src/ll/UL4.g:329:3: e1= atom ( '.' n= name | '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' | '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' )* 
     1708                # src/ll/UL4.g:325:2: (e1= atom ( '.' n= name | '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' | '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' )* ) 
     1709                # src/ll/UL4.g:326:3: e1= atom ( '.' n= name | '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' | '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' )* 
    17461710                pass  
    1747                 self._state.following.append(self.FOLLOW_atom_in_expr91566) 
     1711                self._state.following.append(self.FOLLOW_atom_in_expr91551) 
    17481712                e1 = self.atom() 
    17491713 
     
    17561720 
    17571721 
    1758                 # src/ll/UL4.g:330:3: ( '.' n= name | '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' | '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' )* 
    1759                 while True: #loop33 
    1760                     alt33 = 4 
    1761                     LA33 = self.input.LA(1) 
    1762                     if LA33 == 37: 
    1763                         alt33 = 1 
    1764                     elif LA33 == 27: 
    1765                         alt33 = 2 
    1766                     elif LA33 == 49: 
    1767                         alt33 = 3 
    1768  
    1769                     if alt33 == 1: 
    1770                         # src/ll/UL4.g:332:4: '.' n= name 
     1722                # src/ll/UL4.g:327:3: ( '.' n= name | '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' | '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' )* 
     1723                while True: #loop32 
     1724                    alt32 = 4 
     1725                    LA32 = self.input.LA(1) 
     1726                    if LA32 == 37: 
     1727                        alt32 = 1 
     1728                    elif LA32 == 27: 
     1729                        alt32 = 2 
     1730                    elif LA32 == 49: 
     1731                        alt32 = 3 
     1732 
     1733                    if alt32 == 1: 
     1734                        # src/ll/UL4.g:329:4: '.' n= name 
    17711735                        pass  
    1772                         self.match(self.input, 37, self.FOLLOW_37_in_expr91582) 
    1773  
    1774                         self._state.following.append(self.FOLLOW_name_in_expr91589) 
     1736                        self.match(self.input, 37, self.FOLLOW_37_in_expr91567) 
     1737 
     1738                        self._state.following.append(self.FOLLOW_name_in_expr91574) 
    17751739                        n = self.name() 
    17761740 
     
    17841748 
    17851749 
    1786                     elif alt33 == 2: 
    1787                         # src/ll/UL4.g:336:4: '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' 
     1750                    elif alt32 == 2: 
     1751                        # src/ll/UL4.g:333:4: '(' (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) ')' 
    17881752                        pass  
    1789                         self.match(self.input, 27, self.FOLLOW_27_in_expr91605) 
     1753                        self.match(self.input, 27, self.FOLLOW_27_in_expr91590) 
    17901754 
    17911755                        if self._state.backtracking == 0: 
     
    17951759 
    17961760 
    1797                         # src/ll/UL4.g:337:4: (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) 
    1798                         alt28 = 5 
    1799                         LA28 = self.input.LA(1) 
    1800                         if LA28 == 28: 
    1801                             alt28 = 1 
    1802                         elif LA28 == 30: 
    1803                             alt28 = 2 
    1804                         elif LA28 == 29: 
    1805                             alt28 = 3 
    1806                         elif LA28 == COLOR or LA28 == DATE or LA28 == FALSE or LA28 == FLOAT or LA28 == INT or LA28 == NONE or LA28 == STRING or LA28 == TRUE or LA28 == 27 or LA28 == 35 or LA28 == 49 or LA28 == 55 or LA28 == 57: 
    1807                             alt28 = 4 
    1808                         elif LA28 == NAME: 
    1809                             LA28_5 = self.input.LA(2) 
    1810  
    1811                             if ((24 <= LA28_5 <= 25) or (27 <= LA28_5 <= 29) or LA28_5 == 32 or (34 <= LA28_5 <= 35) or (37 <= LA28_5 <= 39) or (43 <= LA28_5 <= 44) or (46 <= LA28_5 <= 49) or (51 <= LA28_5 <= 52) or (54 <= LA28_5 <= 56)) : 
    1812                                 alt28 = 4 
    1813                             elif (LA28_5 == 45) : 
    1814                                 alt28 = 5 
     1761                        # src/ll/UL4.g:334:4: (| '**' rkwargs= exprarg ( ',' )? | '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? |a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? |an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? ) 
     1762                        alt27 = 5 
     1763                        LA27 = self.input.LA(1) 
     1764                        if LA27 == 28: 
     1765                            alt27 = 1 
     1766                        elif LA27 == 30: 
     1767                            alt27 = 2 
     1768                        elif LA27 == 29: 
     1769                            alt27 = 3 
     1770                        elif LA27 == COLOR or LA27 == DATE or LA27 == FALSE or LA27 == FLOAT or LA27 == INT or LA27 == NONE or LA27 == STRING or LA27 == TRUE or LA27 == 27 or LA27 == 35 or LA27 == 49 or LA27 == 55 or LA27 == 57: 
     1771                            alt27 = 4 
     1772                        elif LA27 == NAME: 
     1773                            LA27_5 = self.input.LA(2) 
     1774 
     1775                            if ((24 <= LA27_5 <= 25) or (27 <= LA27_5 <= 29) or LA27_5 == 32 or (34 <= LA27_5 <= 35) or (37 <= LA27_5 <= 39) or (43 <= LA27_5 <= 44) or (46 <= LA27_5 <= 49) or (51 <= LA27_5 <= 52) or (54 <= LA27_5 <= 56)) : 
     1776                                alt27 = 4 
     1777                            elif (LA27_5 == 45) : 
     1778                                alt27 = 5 
    18151779                            else: 
    18161780                                if self._state.backtracking > 0: 
     
    18181782 
    18191783 
    1820                                 nvae = NoViableAltException("", 28, 5, self.input) 
     1784                                nvae = NoViableAltException("", 27, 5, self.input) 
    18211785 
    18221786                                raise nvae 
     
    18281792 
    18291793 
    1830                             nvae = NoViableAltException("", 28, 0, self.input) 
     1794                            nvae = NoViableAltException("", 27, 0, self.input) 
    18311795 
    18321796                            raise nvae 
    18331797 
    18341798 
    1835                         if alt28 == 1: 
    1836                             # src/ll/UL4.g:339:4:  
     1799                        if alt27 == 1: 
     1800                            # src/ll/UL4.g:336:4:  
    18371801                            pass  
    18381802 
    1839                         elif alt28 == 2: 
    1840                             # src/ll/UL4.g:341:5: '**' rkwargs= exprarg ( ',' )? 
     1803                        elif alt27 == 2: 
     1804                            # src/ll/UL4.g:338:5: '**' rkwargs= exprarg ( ',' )? 
    18411805                            pass  
    1842                             self.match(self.input, 30, self.FOLLOW_30_in_expr91635) 
    1843  
    1844                             self._state.following.append(self.FOLLOW_exprarg_in_expr91639) 
     1806                            self.match(self.input, 30, self.FOLLOW_30_in_expr91620) 
     1807 
     1808                            self._state.following.append(self.FOLLOW_exprarg_in_expr91624) 
    18451809                            rkwargs = self.exprarg() 
    18461810 
     
    18531817 
    18541818 
    1855                             # src/ll/UL4.g:342:5: ( ',' )? 
    1856                             alt16 = 2 
    1857                             LA16_0 = self.input.LA(1) 
    1858  
    1859                             if (LA16_0 == 34) : 
    1860                                 alt16 = 1 
    1861                             if alt16 == 1: 
    1862                                 # src/ll/UL4.g:342:5: ',' 
     1819                            # src/ll/UL4.g:339:5: ( ',' )? 
     1820                            alt15 = 2 
     1821                            LA15_0 = self.input.LA(1) 
     1822 
     1823                            if (LA15_0 == 34) : 
     1824                                alt15 = 1 
     1825                            if alt15 == 1: 
     1826                                # src/ll/UL4.g:339:5: ',' 
    18631827                                pass  
    1864                                 self.match(self.input, 34, self.FOLLOW_34_in_expr91647) 
    1865  
    1866  
    1867  
    1868  
    1869  
    1870                         elif alt28 == 3: 
    1871                             # src/ll/UL4.g:345:5: '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? 
     1828                                self.match(self.input, 34, self.FOLLOW_34_in_expr91632) 
     1829 
     1830 
     1831 
     1832 
     1833 
     1834                        elif alt27 == 3: 
     1835                            # src/ll/UL4.g:342:5: '*' rargs= exprarg ( ',' '**' rkwargs= exprarg )? ( ',' )? 
    18721836                            pass  
    1873                             self.match(self.input, 29, self.FOLLOW_29_in_expr91665) 
    1874  
    1875                             self._state.following.append(self.FOLLOW_exprarg_in_expr91669) 
     1837                            self.match(self.input, 29, self.FOLLOW_29_in_expr91650) 
     1838 
     1839                            self._state.following.append(self.FOLLOW_exprarg_in_expr91654) 
    18761840                            rargs = self.exprarg() 
    18771841 
     
    18841848 
    18851849 
    1886                             # src/ll/UL4.g:346:5: ( ',' '**' rkwargs= exprarg )? 
    1887                             alt17 = 2 
    1888                             LA17_0 = self.input.LA(1) 
    1889  
    1890                             if (LA17_0 == 34) : 
    1891                                 LA17_1 = self.input.LA(2) 
    1892  
    1893                                 if (LA17_1 == 30) : 
    1894                                     alt17 = 1 
    1895                             if alt17 == 1: 
    1896                                 # src/ll/UL4.g:347:6: ',' '**' rkwargs= exprarg 
     1850                            # src/ll/UL4.g:343:5: ( ',' '**' rkwargs= exprarg )? 
     1851                            alt16 = 2 
     1852                            LA16_0 = self.input.LA(1) 
     1853 
     1854                            if (LA16_0 == 34) : 
     1855                                LA16_1 = self.input.LA(2) 
     1856 
     1857                                if (LA16_1 == 30) : 
     1858                                    alt16 = 1 
     1859                            if alt16 == 1: 
     1860                                # src/ll/UL4.g:344:6: ',' '**' rkwargs= exprarg 
    18971861                                pass  
    1898                                 self.match(self.input, 34, self.FOLLOW_34_in_expr91684) 
    1899  
    1900                                 self.match(self.input, 30, self.FOLLOW_30_in_expr91691) 
    1901  
    1902                                 self._state.following.append(self.FOLLOW_exprarg_in_expr91695) 
     1862                                self.match(self.input, 34, self.FOLLOW_34_in_expr91669) 
     1863 
     1864                                self.match(self.input, 30, self.FOLLOW_30_in_expr91676) 
     1865 
     1866                                self._state.following.append(self.FOLLOW_exprarg_in_expr91680) 
    19031867                                rkwargs = self.exprarg() 
    19041868 
     
    19141878 
    19151879 
    1916                             # src/ll/UL4.g:350:5: ( ',' )? 
    1917                             alt18 = 2 
    1918                             LA18_0 = self.input.LA(1) 
    1919  
    1920                             if (LA18_0 == 34) : 
    1921                                 alt18 = 1 
    1922                             if alt18 == 1: 
    1923                                 # src/ll/UL4.g:350:5: ',' 
     1880                            # src/ll/UL4.g:347:5: ( ',' )? 
     1881                            alt17 = 2 
     1882                            LA17_0 = self.input.LA(1) 
     1883 
     1884                            if (LA17_0 == 34) : 
     1885                                alt17 = 1 
     1886                            if alt17 == 1: 
     1887                                # src/ll/UL4.g:347:5: ',' 
    19241888                                pass  
    1925                                 self.match(self.input, 34, self.FOLLOW_34_in_expr91710) 
    1926  
    1927  
    1928  
    1929  
    1930  
    1931                         elif alt28 == 4: 
    1932                             # src/ll/UL4.g:353:5: a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? 
     1889                                self.match(self.input, 34, self.FOLLOW_34_in_expr91695) 
     1890 
     1891 
     1892 
     1893 
     1894 
     1895                        elif alt27 == 4: 
     1896                            # src/ll/UL4.g:350:5: a1= exprarg ( ',' a2= exprarg )* ( ',' an3= name '=' av3= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? 
    19331897                            pass  
    1934                             self._state.following.append(self.FOLLOW_exprarg_in_expr91730) 
     1898                            self._state.following.append(self.FOLLOW_exprarg_in_expr91715) 
    19351899                            a1 = self.exprarg() 
    19361900 
     
    19431907 
    19441908 
    1945                             # src/ll/UL4.g:354:5: ( ',' a2= exprarg )* 
     1909                            # src/ll/UL4.g:351:5: ( ',' a2= exprarg )* 
     1910                            while True: #loop18 
     1911                                alt18 = 2 
     1912                                LA18_0 = self.input.LA(1) 
     1913 
     1914                                if (LA18_0 == 34) : 
     1915                                    LA18_1 = self.input.LA(2) 
     1916 
     1917                                    if (LA18_1 == NAME) : 
     1918                                        LA18_3 = self.input.LA(3) 
     1919 
     1920                                        if ((24 <= LA18_3 <= 25) or (27 <= LA18_3 <= 29) or LA18_3 == 32 or (34 <= LA18_3 <= 35) or (37 <= LA18_3 <= 39) or (43 <= LA18_3 <= 44) or (46 <= LA18_3 <= 49) or (51 <= LA18_3 <= 52) or (54 <= LA18_3 <= 56)) : 
     1921                                            alt18 = 1 
     1922 
     1923 
     1924                                    elif ((COLOR <= LA18_1 <= DATE) or (FALSE <= LA18_1 <= FLOAT) or LA18_1 == INT or LA18_1 == NONE or LA18_1 == STRING or LA18_1 == TRUE or LA18_1 == 27 or LA18_1 == 35 or LA18_1 == 49 or LA18_1 == 55 or LA18_1 == 57) : 
     1925                                        alt18 = 1 
     1926 
     1927 
     1928 
     1929 
     1930                                if alt18 == 1: 
     1931                                    # src/ll/UL4.g:352:6: ',' a2= exprarg 
     1932                                    pass  
     1933                                    self.match(self.input, 34, self.FOLLOW_34_in_expr91730) 
     1934 
     1935                                    self._state.following.append(self.FOLLOW_exprarg_in_expr91739) 
     1936                                    a2 = self.exprarg() 
     1937 
     1938                                    self._state.following.pop() 
     1939 
     1940                                    if self._state.backtracking == 0: 
     1941                                        pass 
     1942                                        node.args.append(a2)  
     1943 
     1944 
     1945 
     1946 
     1947                                else: 
     1948                                    break #loop18 
     1949 
     1950 
     1951                            # src/ll/UL4.g:355:5: ( ',' an3= name '=' av3= exprarg )* 
    19461952                            while True: #loop19 
    19471953                                alt19 = 2 
     
    19521958 
    19531959                                    if (LA19_1 == NAME) : 
    1954                                         LA19_3 = self.input.LA(3) 
    1955  
    1956                                         if ((24 <= LA19_3 <= 25) or (27 <= LA19_3 <= 29) or LA19_3 == 32 or (34 <= LA19_3 <= 35) or (37 <= LA19_3 <= 39) or (43 <= LA19_3 <= 44) or (46 <= LA19_3 <= 49) or (51 <= LA19_3 <= 52) or (54 <= LA19_3 <= 56)) : 
    1957                                             alt19 = 1 
    1958  
    1959  
    1960                                     elif ((COLOR <= LA19_1 <= DATE) or (FALSE <= LA19_1 <= FLOAT) or LA19_1 == INT or LA19_1 == NONE or LA19_1 == STRING or LA19_1 == TRUE or LA19_1 == 27 or LA19_1 == 35 or LA19_1 == 49 or LA19_1 == 55 or LA19_1 == 57) : 
    19611960                                        alt19 = 1 
    19621961 
     
    19651964 
    19661965                                if alt19 == 1: 
    1967                                     # src/ll/UL4.g:355:6: ',' a2= exprarg 
     1966                                    # src/ll/UL4.g:356:6: ',' an3= name '=' av3= exprarg 
    19681967                                    pass  
    1969                                     self.match(self.input, 34, self.FOLLOW_34_in_expr91745) 
    1970  
    1971                                     self._state.following.append(self.FOLLOW_exprarg_in_expr91754) 
    1972                                     a2 = self.exprarg() 
     1968                                    self.match(self.input, 34, self.FOLLOW_34_in_expr91761) 
     1969 
     1970                                    self._state.following.append(self.FOLLOW_name_in_expr91770) 
     1971                                    an3 = self.name() 
    19731972 
    19741973                                    self._state.following.pop() 
    19751974 
    1976                                     if self._state.backtracking == 0: 
    1977                                         pass 
    1978                                         node.args.append(a2)  
    1979  
    1980  
    1981  
    1982  
    1983                                 else: 
    1984                                     break #loop19 
    1985  
    1986  
    1987                             # src/ll/UL4.g:358:5: ( ',' an3= name '=' av3= exprarg )* 
    1988                             while True: #loop20 
    1989                                 alt20 = 2 
    1990                                 LA20_0 = self.input.LA(1) 
    1991  
    1992                                 if (LA20_0 == 34) : 
    1993                                     LA20_1 = self.input.LA(2) 
    1994  
    1995                                     if (LA20_1 == NAME) : 
    1996                                         alt20 = 1 
    1997  
    1998  
    1999  
    2000  
    2001                                 if alt20 == 1: 
    2002                                     # src/ll/UL4.g:359:6: ',' an3= name '=' av3= exprarg 
    2003                                     pass  
    2004                                     self.match(self.input, 34, self.FOLLOW_34_in_expr91776) 
    2005  
    2006                                     self._state.following.append(self.FOLLOW_name_in_expr91785) 
    2007                                     an3 = self.name() 
    2008  
    2009                                     self._state.following.pop() 
    2010  
    2011                                     self.match(self.input, 45, self.FOLLOW_45_in_expr91787) 
    2012  
    2013                                     self._state.following.append(self.FOLLOW_exprarg_in_expr91791) 
     1975                                    self.match(self.input, 45, self.FOLLOW_45_in_expr91772) 
     1976 
     1977                                    self._state.following.append(self.FOLLOW_exprarg_in_expr91776) 
    20141978                                    av3 = self.exprarg() 
    20151979 
     
    20241988 
    20251989                                else: 
    2026                                     break #loop20 
    2027  
    2028  
    2029                             # src/ll/UL4.g:362:5: ( ',' '*' rargs= exprarg )? 
    2030                             alt21 = 2 
    2031                             LA21_0 = self.input.LA(1) 
    2032  
    2033                             if (LA21_0 == 34) : 
    2034                                 LA21_1 = self.input.LA(2) 
    2035  
    2036                                 if (LA21_1 == 29) : 
    2037                                     alt21 = 1 
    2038                             if alt21 == 1: 
    2039                                 # src/ll/UL4.g:363:6: ',' '*' rargs= exprarg 
     1990                                    break #loop19 
     1991 
     1992 
     1993                            # src/ll/UL4.g:359:5: ( ',' '*' rargs= exprarg )? 
     1994                            alt20 = 2 
     1995                            LA20_0 = self.input.LA(1) 
     1996 
     1997                            if (LA20_0 == 34) : 
     1998                                LA20_1 = self.input.LA(2) 
     1999 
     2000                                if (LA20_1 == 29) : 
     2001                                    alt20 = 1 
     2002                            if alt20 == 1: 
     2003                                # src/ll/UL4.g:360:6: ',' '*' rargs= exprarg 
    20402004                                pass  
    2041                                 self.match(self.input, 34, self.FOLLOW_34_in_expr91813) 
    2042  
    2043                                 self.match(self.input, 29, self.FOLLOW_29_in_expr91820) 
    2044  
    2045                                 self._state.following.append(self.FOLLOW_exprarg_in_expr91824) 
     2005                                self.match(self.input, 34, self.FOLLOW_34_in_expr91798) 
     2006 
     2007                                self.match(self.input, 29, self.FOLLOW_29_in_expr91805) 
     2008 
     2009                                self._state.following.append(self.FOLLOW_exprarg_in_expr91809) 
    20462010                                rargs = self.exprarg() 
    20472011 
     
    20572021 
    20582022 
    2059                             # src/ll/UL4.g:366:5: ( ',' '**' rkwargs= exprarg )? 
    2060                             alt22 = 2 
    2061                             LA22_0 = self.input.LA(1) 
    2062  
    2063                             if (LA22_0 == 34) : 
    2064                                 LA22_1 = self.input.LA(2) 
    2065  
    2066                                 if (LA22_1 == 30) : 
    2067                                     alt22 = 1 
    2068                             if alt22 == 1: 
    2069                                 # src/ll/UL4.g:367:6: ',' '**' rkwargs= exprarg 
     2023                            # src/ll/UL4.g:363:5: ( ',' '**' rkwargs= exprarg )? 
     2024                            alt21 = 2 
     2025                            LA21_0 = self.input.LA(1) 
     2026 
     2027                            if (LA21_0 == 34) : 
     2028                                LA21_1 = self.input.LA(2) 
     2029 
     2030                                if (LA21_1 == 30) : 
     2031                                    alt21 = 1 
     2032                            if alt21 == 1: 
     2033                                # src/ll/UL4.g:364:6: ',' '**' rkwargs= exprarg 
    20702034                                pass  
    2071                                 self.match(self.input, 34, self.FOLLOW_34_in_expr91846) 
    2072  
    2073                                 self.match(self.input, 30, self.FOLLOW_30_in_expr91853) 
    2074  
    2075                                 self._state.following.append(self.FOLLOW_exprarg_in_expr91857) 
     2035                                self.match(self.input, 34, self.FOLLOW_34_in_expr91831) 
     2036 
     2037                                self.match(self.input, 30, self.FOLLOW_30_in_expr91838) 
     2038 
     2039                                self._state.following.append(self.FOLLOW_exprarg_in_expr91842) 
    20762040                                rkwargs = self.exprarg() 
    20772041 
     
    20872051 
    20882052 
    2089                             # src/ll/UL4.g:370:5: ( ',' )? 
    2090                             alt23 = 2 
    2091                             LA23_0 = self.input.LA(1) 
    2092  
    2093                             if (LA23_0 == 34) : 
    2094                                 alt23 = 1 
    2095                             if alt23 == 1: 
    2096                                 # src/ll/UL4.g:370:5: ',' 
     2053                            # src/ll/UL4.g:367:5: ( ',' )? 
     2054                            alt22 = 2 
     2055                            LA22_0 = self.input.LA(1) 
     2056 
     2057                            if (LA22_0 == 34) : 
     2058                                alt22 = 1 
     2059                            if alt22 == 1: 
     2060                                # src/ll/UL4.g:367:5: ',' 
    20972061                                pass  
    2098                                 self.match(self.input, 34, self.FOLLOW_34_in_expr91872) 
    2099  
    2100  
    2101  
    2102  
    2103  
    2104                         elif alt28 == 5: 
    2105                             # src/ll/UL4.g:373:5: an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? 
     2062                                self.match(self.input, 34, self.FOLLOW_34_in_expr91857) 
     2063 
     2064 
     2065 
     2066 
     2067 
     2068                        elif alt27 == 5: 
     2069                            # src/ll/UL4.g:370:5: an1= name '=' av1= exprarg ( ',' an2= name '=' av2= exprarg )* ( ',' '*' rargs= exprarg )? ( ',' '**' rkwargs= exprarg )? ( ',' )? 
    21062070                            pass  
    2107                             self._state.following.append(self.FOLLOW_name_in_expr91892) 
     2071                            self._state.following.append(self.FOLLOW_name_in_expr91877) 
    21082072                            an1 = self.name() 
    21092073 
    21102074                            self._state.following.pop() 
    21112075 
    2112                             self.match(self.input, 45, self.FOLLOW_45_in_expr91894) 
    2113  
    2114                             self._state.following.append(self.FOLLOW_exprarg_in_expr91898) 
     2076                            self.match(self.input, 45, self.FOLLOW_45_in_expr91879) 
     2077 
     2078                            self._state.following.append(self.FOLLOW_exprarg_in_expr91883) 
    21152079                            av1 = self.exprarg() 
    21162080 
     
    21232087 
    21242088 
    2125                             # src/ll/UL4.g:374:5: ( ',' an2= name '=' av2= exprarg )* 
    2126                             while True: #loop24 
    2127                                 alt24 = 2 
    2128                                 LA24_0 = self.input.LA(1) 
    2129  
    2130                                 if (LA24_0 == 34) : 
    2131                                     LA24_1 = self.input.LA(2) 
    2132  
    2133                                     if (LA24_1 == NAME) : 
    2134                                         alt24 = 1 
    2135  
    2136  
    2137  
    2138  
    2139                                 if alt24 == 1: 
    2140                                     # src/ll/UL4.g:375:6: ',' an2= name '=' av2= exprarg 
     2089                            # src/ll/UL4.g:371:5: ( ',' an2= name '=' av2= exprarg )* 
     2090                            while True: #loop23 
     2091                                alt23 = 2 
     2092                                LA23_0 = self.input.LA(1) 
     2093 
     2094                                if (LA23_0 == 34) : 
     2095                                    LA23_1 = self.input.LA(2) 
     2096 
     2097                                    if (LA23_1 == NAME) : 
     2098                                        alt23 = 1 
     2099 
     2100 
     2101 
     2102 
     2103                                if alt23 == 1: 
     2104                                    # src/ll/UL4.g:372:6: ',' an2= name '=' av2= exprarg 
    21412105                                    pass  
    2142                                     self.match(self.input, 34, self.FOLLOW_34_in_expr91913) 
    2143  
    2144                                     self._state.following.append(self.FOLLOW_name_in_expr91922) 
     2106                                    self.match(self.input, 34, self.FOLLOW_34_in_expr91898) 
     2107 
     2108                                    self._state.following.append(self.FOLLOW_name_in_expr91907) 
    21452109                                    an2 = self.name() 
    21462110 
    21472111                                    self._state.following.pop() 
    21482112 
    2149                                     self.match(self.input, 45, self.FOLLOW_45_in_expr91924) 
    2150  
    2151                                     self._state.following.append(self.FOLLOW_exprarg_in_expr91928) 
     2113                                    self.match(self.input, 45, self.FOLLOW_45_in_expr91909) 
     2114 
     2115                                    self._state.following.append(self.FOLLOW_exprarg_in_expr91913) 
    21522116                                    av2 = self.exprarg() 
    21532117 
     
    21622126 
    21632127                                else: 
    2164                                     break #loop24 
    2165  
    2166  
    2167                             # src/ll/UL4.g:378:5: ( ',' '*' rargs= exprarg )? 
    2168                             alt25 = 2 
    2169                             LA25_0 = self.input.LA(1) 
    2170  
    2171                             if (LA25_0 == 34) : 
    2172                                 LA25_1 = self.input.LA(2) 
    2173  
    2174                                 if (LA25_1 == 29) : 
    2175                                     alt25 = 1 
    2176                             if alt25 == 1: 
    2177                                 # src/ll/UL4.g:379:6: ',' '*' rargs= exprarg 
     2128                                    break #loop23 
     2129 
     2130 
     2131                            # src/ll/UL4.g:375:5: ( ',' '*' rargs= exprarg )? 
     2132                            alt24 = 2 
     2133                            LA24_0 = self.input.LA(1) 
     2134 
     2135                            if (LA24_0 == 34) : 
     2136                                LA24_1 = self.input.LA(2) 
     2137 
     2138                                if (LA24_1 == 29) : 
     2139                                    alt24 = 1 
     2140                            if alt24 == 1: 
     2141                                # src/ll/UL4.g:376:6: ',' '*' rargs= exprarg 
    21782142                                pass  
    2179                                 self.match(self.input, 34, self.FOLLOW_34_in_expr91950) 
    2180  
    2181                                 self.match(self.input, 29, self.FOLLOW_29_in_expr91957) 
    2182  
    2183                                 self._state.following.append(self.FOLLOW_exprarg_in_expr91961) 
     2143                                self.match(self.input, 34, self.FOLLOW_34_in_expr91935) 
     2144 
     2145                                self.match(self.input, 29, self.FOLLOW_29_in_expr91942) 
     2146 
     2147                                self._state.following.append(self.FOLLOW_exprarg_in_expr91946) 
    21842148                                rargs = self.exprarg() 
    21852149 
     
    21952159 
    21962160 
    2197                             # src/ll/UL4.g:382:5: ( ',' '**' rkwargs= exprarg )? 
    2198                             alt26 = 2 
    2199                             LA26_0 = self.input.LA(1) 
    2200  
    2201                             if (LA26_0 == 34) : 
    2202                                 LA26_1 = self.input.LA(2) 
    2203  
    2204                                 if (LA26_1 == 30) : 
    2205                                     alt26 = 1 
    2206                             if alt26 == 1: 
    2207                                 # src/ll/UL4.g:383:6: ',' '**' rkwargs= exprarg 
     2161                            # src/ll/UL4.g:379:5: ( ',' '**' rkwargs= exprarg )? 
     2162                            alt25 = 2 
     2163                            LA25_0 = self.input.LA(1) 
     2164 
     2165                            if (LA25_0 == 34) : 
     2166                                LA25_1 = self.input.LA(2) 
     2167 
     2168                                if (LA25_1 == 30) : 
     2169                                    alt25 = 1 
     2170                            if alt25 == 1: 
     2171                                # src/ll/UL4.g:380:6: ',' '**' rkwargs= exprarg 
    22082172                                pass  
    2209                                 self.match(self.input, 34, self.FOLLOW_34_in_expr91983) 
    2210  
    2211                                 self.match(self.input, 30, self.FOLLOW_30_in_expr91990) 
    2212  
    2213                                 self._state.following.append(self.FOLLOW_exprarg_in_expr91994) 
     2173                                self.match(self.input, 34, self.FOLLOW_34_in_expr91968) 
     2174 
     2175                                self.match(self.input, 30, self.FOLLOW_30_in_expr91975) 
     2176 
     2177                                self._state.following.append(self.FOLLOW_exprarg_in_expr91979) 
    22142178                                rkwargs = self.exprarg() 
    22152179 
     
    22252189 
    22262190 
    2227                             # src/ll/UL4.g:386:5: ( ',' )? 
    2228                             alt27 = 2 
    2229                             LA27_0 = self.input.LA(1) 
    2230  
    2231                             if (LA27_0 == 34) : 
    2232                                 alt27 = 1 
    2233                             if alt27 == 1: 
    2234                                 # src/ll/UL4.g:386:5: ',' 
     2191                            # src/ll/UL4.g:383:5: ( ',' )? 
     2192                            alt26 = 2 
     2193                            LA26_0 = self.input.LA(1) 
     2194 
     2195                            if (LA26_0 == 34) : 
     2196                                alt26 = 1 
     2197                            if alt26 == 1: 
     2198                                # src/ll/UL4.g:383:5: ',' 
    22352199                                pass  
    2236                                 self.match(self.input, 34, self.FOLLOW_34_in_expr92009) 
    2237  
    2238  
    2239  
    2240  
    2241  
    2242  
    2243  
    2244                         self.match(self.input, 28, self.FOLLOW_28_in_expr92020) 
    2245  
    2246  
    2247                     elif alt33 == 3: 
    2248                         # src/ll/UL4.g:391:4: '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' 
     2200                                self.match(self.input, 34, self.FOLLOW_34_in_expr91994) 
     2201 
     2202 
     2203 
     2204 
     2205 
     2206 
     2207 
     2208                        self.match(self.input, 28, self.FOLLOW_28_in_expr92005) 
     2209 
     2210 
     2211                    elif alt32 == 3: 
     2212                        # src/ll/UL4.g:388:4: '[' ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) ']' 
    22492213                        pass  
    2250                         self.match(self.input, 49, self.FOLLOW_49_in_expr92034) 
    2251  
    2252                         # src/ll/UL4.g:392:4: ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) 
    2253                         alt32 = 2 
    2254                         LA32_0 = self.input.LA(1) 
    2255  
    2256                         if (LA32_0 == 42) : 
    2257                             alt32 = 1 
    2258                         elif ((COLOR <= LA32_0 <= DATE) or (FALSE <= LA32_0 <= FLOAT) or (INT <= LA32_0 <= NONE) or LA32_0 == STRING or LA32_0 == TRUE or LA32_0 == 27 or LA32_0 == 35 or LA32_0 == 49 or LA32_0 == 55 or LA32_0 == 57) : 
    2259                             alt32 = 2 
     2214                        self.match(self.input, 49, self.FOLLOW_49_in_expr92019) 
     2215 
     2216                        # src/ll/UL4.g:389:4: ( ':' (e2= expr1 )? |e2= expr1 ( ':' (e3= expr1 )? )? ) 
     2217                        alt31 = 2 
     2218                        LA31_0 = self.input.LA(1) 
     2219 
     2220                        if (LA31_0 == 42) : 
     2221                            alt31 = 1 
     2222                        elif ((COLOR <= LA31_0 <= DATE) or (FALSE <= LA31_0 <= FLOAT) or (INT <= LA31_0 <= NONE) or LA31_0 == STRING or LA31_0 == TRUE or LA31_0 == 27 or LA31_0 == 35 or LA31_0 == 49 or LA31_0 == 55 or LA31_0 == 57) : 
     2223                            alt31 = 2 
    22602224                        else: 
    22612225                            if self._state.backtracking > 0: 
     
    22632227 
    22642228 
    2265                             nvae = NoViableAltException("", 32, 0, self.input) 
     2229                            nvae = NoViableAltException("", 31, 0, self.input) 
    22662230 
    22672231                            raise nvae 
    22682232 
    22692233 
    2270                         if alt32 == 1: 
    2271                             # src/ll/UL4.g:393:5: ':' (e2= expr1 )? 
     2234                        if alt31 == 1: 
     2235                            # src/ll/UL4.g:390:5: ':' (e2= expr1 )? 
    22722236                            pass  
    2273                             self.match(self.input, 42, self.FOLLOW_42_in_expr92045) 
    2274  
    2275                             # src/ll/UL4.g:394:5: (e2= expr1 )? 
    2276                             alt29 = 2 
    2277                             LA29_0 = self.input.LA(1) 
    2278  
    2279                             if ((COLOR <= LA29_0 <= DATE) or (FALSE <= LA29_0 <= FLOAT) or (INT <= LA29_0 <= NONE) or LA29_0 == STRING or LA29_0 == TRUE or LA29_0 == 27 or LA29_0 == 35 or LA29_0 == 49 or LA29_0 == 55 or LA29_0 == 57) : 
    2280                                 alt29 = 1 
    2281                             if alt29 == 1: 
    2282                                 # src/ll/UL4.g:395:6: e2= expr1 
     2237                            self.match(self.input, 42, self.FOLLOW_42_in_expr92030) 
     2238 
     2239                            # src/ll/UL4.g:391:5: (e2= expr1 )? 
     2240                            alt28 = 2 
     2241                            LA28_0 = self.input.LA(1) 
     2242 
     2243                            if ((COLOR <= LA28_0 <= DATE) or (FALSE <= LA28_0 <= FLOAT) or (INT <= LA28_0 <= NONE) or LA28_0 == STRING or LA28_0 == TRUE or LA28_0 == 27 or LA28_0 == 35 or LA28_0 == 49 or LA28_0 == 55 or LA28_0 == 57) : 
     2244                                alt28 = 1 
     2245                            if alt28 == 1: 
     2246                                # src/ll/UL4.g:392:6: e2= expr1 
    22832247                                pass  
    2284                                 self._state.following.append(self.FOLLOW_expr1_in_expr92060) 
     2248                                self._state.following.append(self.FOLLOW_expr1_in_expr92045) 
    22852249                                e2 = self.expr1() 
    22862250 
     
    23032267 
    23042268 
    2305                         elif alt32 == 2: 
    2306                             # src/ll/UL4.g:398:5: e2= expr1 ( ':' (e3= expr1 )? )? 
     2269                        elif alt31 == 2: 
     2270                            # src/ll/UL4.g:395:5: e2= expr1 ( ':' (e3= expr1 )? )? 
    23072271                            pass  
    2308                             self._state.following.append(self.FOLLOW_expr1_in_expr92084) 
     2272                            self._state.following.append(self.FOLLOW_expr1_in_expr92069) 
    23092273                            e2 = self.expr1() 
    23102274 
     
    23172281 
    23182282 
    2319                             # src/ll/UL4.g:399:5: ( ':' (e3= expr1 )? )? 
    2320                             alt31 = 2 
    2321                             LA31_0 = self.input.LA(1) 
    2322  
    2323                             if (LA31_0 == 42) : 
    2324                                 alt31 = 1 
    2325                             if alt31 == 1: 
    2326                                 # src/ll/UL4.g:400:6: ':' (e3= expr1 )? 
     2283                            # src/ll/UL4.g:396:5: ( ':' (e3= expr1 )? )? 
     2284                            alt30 = 2 
     2285                            LA30_0 = self.input.LA(1) 
     2286 
     2287                            if (LA30_0 == 42) : 
     2288                                alt30 = 1 
     2289                            if alt30 == 1: 
     2290                                # src/ll/UL4.g:397:6: ':' (e3= expr1 )? 
    23272291                                pass  
    2328                                 self.match(self.input, 42, self.FOLLOW_42_in_expr92099) 
     2292                                self.match(self.input, 42, self.FOLLOW_42_in_expr92084) 
    23292293 
    23302294                                if self._state.backtracking == 0: 
     
    23342298 
    23352299 
    2336                                 # src/ll/UL4.g:401:6: (e3= expr1 )? 
    2337                                 alt30 = 2 
    2338                                 LA30_0 = self.input.LA(1) 
    2339  
    2340                                 if ((COLOR <= LA30_0 <= DATE) or (FALSE <= LA30_0 <= FLOAT) or (INT <= LA30_0 <= NONE) or LA30_0 == STRING or LA30_0 == TRUE or LA30_0 == 27 or LA30_0 == 35 or LA30_0 == 49 or LA30_0 == 55 or LA30_0 == 57) : 
    2341                                     alt30 = 1 
    2342                                 if alt30 == 1: 
    2343                                     # src/ll/UL4.g:402:7: e3= expr1 
     2300                                # src/ll/UL4.g:398:6: (e3= expr1 )? 
     2301                                alt29 = 2 
     2302                                LA29_0 = self.input.LA(1) 
     2303 
     2304                                if ((COLOR <= LA29_0 <= DATE) or (FALSE <= LA29_0 <= FLOAT) or (INT <= LA29_0 <= NONE) or LA29_0 == STRING or LA29_0 == TRUE or LA29_0 == 27 or LA29_0 == 35 or LA29_0 == 49 or LA29_0 == 55 or LA29_0 == 57) : 
     2305                                    alt29 = 1 
     2306                                if alt29 == 1: 
     2307                                    # src/ll/UL4.g:399:7: e3= expr1 
    23442308                                    pass  
    2345                                     self._state.following.append(self.FOLLOW_expr1_in_expr92118) 
     2309                                    self._state.following.append(self.FOLLOW_expr1_in_expr92103) 
    23462310                                    e3 = self.expr1() 
    23472311 
     
    23692333 
    23702334 
    2371                         self.match(self.input, 50, self.FOLLOW_50_in_expr92147) 
     2335                        self.match(self.input, 50, self.FOLLOW_50_in_expr92132) 
    23722336 
    23732337 
    23742338                    else: 
    2375                         break #loop33 
     2339                        break #loop32 
    23762340 
    23772341 
     
    23922356 
    23932357    # $ANTLR start "expr8" 
    2394     # src/ll/UL4.g:411:1: expr8 returns [node] : ( '-' )* e= expr9 ; 
     2358    # src/ll/UL4.g:408:1: expr8 returns [node] : ( '-' )* e= expr9 ; 
    23952359    def expr8(self, ): 
    23962360        node = None 
     
    24052369        try: 
    24062370            try: 
    2407                 # src/ll/UL4.g:416:2: ( ( '-' )* e= expr9 ) 
    2408                 # src/ll/UL4.g:417:3: ( '-' )* e= expr9 
     2371                # src/ll/UL4.g:413:2: ( ( '-' )* e= expr9 ) 
     2372                # src/ll/UL4.g:414:3: ( '-' )* e= expr9 
    24092373                pass  
    2410                 # src/ll/UL4.g:417:3: ( '-' )* 
    2411                 while True: #loop34 
    2412                     alt34 = 2 
    2413                     LA34_0 = self.input.LA(1) 
    2414  
    2415                     if (LA34_0 == 35) : 
    2416                         alt34 = 1 
    2417  
    2418  
    2419                     if alt34 == 1: 
    2420                         # src/ll/UL4.g:418:4: '-' 
     2374                # src/ll/UL4.g:414:3: ( '-' )* 
     2375                while True: #loop33 
     2376                    alt33 = 2 
     2377                    LA33_0 = self.input.LA(1) 
     2378 
     2379                    if (LA33_0 == 35) : 
     2380                        alt33 = 1 
     2381 
     2382 
     2383                    if alt33 == 1: 
     2384                        # src/ll/UL4.g:415:4: '-' 
    24212385                        pass  
    2422                         self.match(self.input, 35, self.FOLLOW_35_in_expr82183) 
     2386                        self.match(self.input, 35, self.FOLLOW_35_in_expr82168) 
    24232387 
    24242388                        if self._state.backtracking == 0: 
     
    24302394 
    24312395                    else: 
    2432                         break #loop34 
    2433  
    2434  
    2435                 self._state.following.append(self.FOLLOW_expr9_in_expr82196) 
     2396                        break #loop33 
     2397 
     2398 
     2399                self._state.following.append(self.FOLLOW_expr9_in_expr82181) 
    24362400                e = self.expr9() 
    24372401 
     
    24642428 
    24652429    # $ANTLR start "expr7" 
    2466     # src/ll/UL4.g:428:1: expr7 returns [node] : e1= expr8 ( ( '*' | '/' | '//' | '%' ) e2= expr8 )* ; 
     2430    # src/ll/UL4.g:425:1: expr7 returns [node] : e1= expr8 ( ( '*' | '/' | '//' | '%' ) e2= expr8 )* ; 
    24672431    def expr7(self, ): 
    24682432        node = None 
     
    24762440        try: 
    24772441            try: 
    2478                 # src/ll/UL4.g:429:2: (e1= expr8 ( ( '*' | '/' | '//' | '%' ) e2= expr8 )* ) 
    2479                 # src/ll/UL4.g:430:3: e1= expr8 ( ( '*' | '/' | '//' | '%' ) e2= expr8 )* 
     2442                # src/ll/UL4.g:426:2: (e1= expr8 ( ( '*' | '/' | '//' | '%' ) e2= expr8 )* ) 
     2443                # src/ll/UL4.g:427:3: e1= expr8 ( ( '*' | '/' | '//' | '%' ) e2= expr8 )* 
    24802444                pass  
    2481                 self._state.following.append(self.FOLLOW_expr8_in_expr72219) 
     2445                self._state.following.append(self.FOLLOW_expr8_in_expr72204) 
    24822446                e1 = self.expr8() 
    24832447 
     
    24902454 
    24912455 
    2492                 # src/ll/UL4.g:431:3: ( ( '*' | '/' | '//' | '%' ) e2= expr8 )* 
    2493                 while True: #loop36 
    2494                     alt36 = 2 
    2495                     LA36_0 = self.input.LA(1) 
    2496  
    2497                     if (LA36_0 == 25 or LA36_0 == 29 or (38 <= LA36_0 <= 39)) : 
    2498                         alt36 = 1 
    2499  
    2500  
    2501                     if alt36 == 1: 
    2502                         # src/ll/UL4.g:432:4: ( '*' | '/' | '//' | '%' ) e2= expr8 
     2456                # src/ll/UL4.g:428:3: ( ( '*' | '/' | '//' | '%' ) e2= expr8 )* 
     2457                while True: #loop35 
     2458                    alt35 = 2 
     2459                    LA35_0 = self.input.LA(1) 
     2460 
     2461                    if (LA35_0 == 25 or LA35_0 == 29 or (38 <= LA35_0 <= 39)) : 
     2462                        alt35 = 1 
     2463 
     2464 
     2465                    if alt35 == 1: 
     2466                        # src/ll/UL4.g:429:4: ( '*' | '/' | '//' | '%' ) e2= expr8 
    25032467                        pass  
    2504                         # src/ll/UL4.g:432:4: ( '*' | '/' | '//' | '%' ) 
    2505                         alt35 = 4 
    2506                         LA35 = self.input.LA(1) 
    2507                         if LA35 == 29: 
    2508                             alt35 = 1 
    2509                         elif LA35 == 38: 
    2510                             alt35 = 2 
    2511                         elif LA35 == 39: 
    2512                             alt35 = 3 
    2513                         elif LA35 == 25: 
    2514                             alt35 = 4 
     2468                        # src/ll/UL4.g:429:4: ( '*' | '/' | '//' | '%' ) 
     2469                        alt34 = 4 
     2470                        LA34 = self.input.LA(1) 
     2471                        if LA34 == 29: 
     2472                            alt34 = 1 
     2473                        elif LA34 == 38: 
     2474                            alt34 = 2 
     2475                        elif LA34 == 39: 
     2476                            alt34 = 3 
     2477                        elif LA34 == 25: 
     2478                            alt34 = 4 
    25152479                        else: 
    25162480                            if self._state.backtracking > 0: 
     
    25182482 
    25192483 
    2520                             nvae = NoViableAltException("", 35, 0, self.input) 
     2484                            nvae = NoViableAltException("", 34, 0, self.input) 
    25212485 
    25222486                            raise nvae 
    25232487 
    25242488 
    2525                         if alt35 == 1: 
    2526                             # src/ll/UL4.g:433:5: '*' 
     2489                        if alt34 == 1: 
     2490                            # src/ll/UL4.g:430:5: '*' 
    25272491                            pass  
    2528                             self.match(self.input, 29, self.FOLLOW_29_in_expr72236) 
     2492                            self.match(self.input, 29, self.FOLLOW_29_in_expr72221) 
    25292493 
    25302494                            if self._state.backtracking == 0: 
     
    25352499 
    25362500 
    2537                         elif alt35 == 2: 
    2538                             # src/ll/UL4.g:435:5: '/' 
     2501                        elif alt34 == 2: 
     2502                            # src/ll/UL4.g:432:5: '/' 
    25392503                            pass  
    2540                             self.match(self.input, 38, self.FOLLOW_38_in_expr72249) 
     2504                            self.match(self.input, 38, self.FOLLOW_38_in_expr72234) 
    25412505 
    25422506                            if self._state.backtracking == 0: 
     
    25472511 
    25482512 
    2549                         elif alt35 == 3: 
    2550                             # src/ll/UL4.g:437:5: '//' 
     2513                        elif alt34 == 3: 
     2514                            # src/ll/UL4.g:434:5: '//' 
    25512515                            pass  
    2552                             self.match(self.input, 39, self.FOLLOW_39_in_expr72262) 
     2516                            self.match(self.input, 39, self.FOLLOW_39_in_expr72247) 
    25532517 
    25542518                            if self._state.backtracking == 0: 
     
    25592523 
    25602524 
    2561                         elif alt35 == 4: 
    2562                             # src/ll/UL4.g:439:5: '%' 
     2525                        elif alt34 == 4: 
     2526                            # src/ll/UL4.g:436:5: '%' 
    25632527                            pass  
    2564                             self.match(self.input, 25, self.FOLLOW_25_in_expr72275) 
     2528                            self.match(self.input, 25, self.FOLLOW_25_in_expr72260) 
    25652529 
    25662530                            if self._state.backtracking == 0: 
     
    25732537 
    25742538 
    2575                         self._state.following.append(self.FOLLOW_expr8_in_expr72289) 
     2539                        self._state.following.append(self.FOLLOW_expr8_in_expr72274) 
    25762540                        e2 = self.expr8() 
    25772541 
     
    25862550 
    25872551                    else: 
    2588                         break #loop36 
     2552                        break #loop35 
    25892553 
    25902554 
     
    26052569 
    26062570    # $ANTLR start "expr6" 
    2607     # src/ll/UL4.g:446:1: expr6 returns [node] : e1= expr7 ( ( '+' | '-' ) e2= expr7 )* ; 
     2571    # src/ll/UL4.g:443:1: expr6 returns [node] : e1= expr7 ( ( '+' | '-' ) e2= expr7 )* ; 
    26082572    def expr6(self, ): 
    26092573        node = None 
     
    26172581        try: 
    26182582            try: 
    2619                 # src/ll/UL4.g:447:2: (e1= expr7 ( ( '+' | '-' ) e2= expr7 )* ) 
    2620                 # src/ll/UL4.g:448:3: e1= expr7 ( ( '+' | '-' ) e2= expr7 )* 
     2583                # src/ll/UL4.g:444:2: (e1= expr7 ( ( '+' | '-' ) e2= expr7 )* ) 
     2584                # src/ll/UL4.g:445:3: e1= expr7 ( ( '+' | '-' ) e2= expr7 )* 
    26212585                pass  
    2622                 self._state.following.append(self.FOLLOW_expr7_in_expr62317) 
     2586                self._state.following.append(self.FOLLOW_expr7_in_expr62302) 
    26232587                e1 = self.expr7() 
    26242588 
     
    26312595 
    26322596 
    2633                 # src/ll/UL4.g:449:3: ( ( '+' | '-' ) e2= expr7 )* 
    2634                 while True: #loop38 
    2635                     alt38 = 2 
    2636                     LA38_0 = self.input.LA(1) 
    2637  
    2638                     if (LA38_0 == 32 or LA38_0 == 35) : 
    2639                         alt38 = 1 
    2640  
    2641  
    2642                     if alt38 == 1: 
    2643                         # src/ll/UL4.g:450:4: ( '+' | '-' ) e2= expr7 
     2597                # src/ll/UL4.g:446:3: ( ( '+' | '-' ) e2= expr7 )* 
     2598                while True: #loop37 
     2599                    alt37 = 2 
     2600                    LA37_0 = self.input.LA(1) 
     2601 
     2602                    if (LA37_0 == 32 or LA37_0 == 35) : 
     2603                        alt37 = 1 
     2604 
     2605 
     2606                    if alt37 == 1: 
     2607                        # src/ll/UL4.g:447:4: ( '+' | '-' ) e2= expr7 
    26442608                        pass  
    2645                         # src/ll/UL4.g:450:4: ( '+' | '-' ) 
    2646                         alt37 = 2 
    2647                         LA37_0 = self.input.LA(1) 
    2648  
    2649                         if (LA37_0 == 32) : 
    2650                             alt37 = 1 
    2651                         elif (LA37_0 == 35) : 
    2652                             alt37 = 2 
     2609                        # src/ll/UL4.g:447:4: ( '+' | '-' ) 
     2610                        alt36 = 2 
     2611                        LA36_0 = self.input.LA(1) 
     2612 
     2613                        if (LA36_0 == 32) : 
     2614                            alt36 = 1 
     2615                        elif (LA36_0 == 35) : 
     2616                            alt36 = 2 
    26532617                        else: 
    26542618                            if self._state.backtracking > 0: 
     
    26562620 
    26572621 
    2658                             nvae = NoViableAltException("", 37, 0, self.input) 
     2622                            nvae = NoViableAltException("", 36, 0, self.input) 
    26592623 
    26602624                            raise nvae 
    26612625 
    26622626 
    2663                         if alt37 == 1: 
    2664                             # src/ll/UL4.g:451:5: '+' 
     2627                        if alt36 == 1: 
     2628                            # src/ll/UL4.g:448:5: '+' 
    26652629                            pass  
    2666                             self.match(self.input, 32, self.FOLLOW_32_in_expr62334) 
     2630                            self.match(self.input, 32, self.FOLLOW_32_in_expr62319) 
    26672631 
    26682632                            if self._state.backtracking == 0: 
     
    26732637 
    26742638 
    2675                         elif alt37 == 2: 
    2676                             # src/ll/UL4.g:453:5: '-' 
     2639                        elif alt36 == 2: 
     2640                            # src/ll/UL4.g:450:5: '-' 
    26772641                            pass  
    2678                             self.match(self.input, 35, self.FOLLOW_35_in_expr62347) 
     2642                            self.match(self.input, 35, self.FOLLOW_35_in_expr62332) 
    26792643 
    26802644                            if self._state.backtracking == 0: 
     
    26872651 
    26882652 
    2689                         self._state.following.append(self.FOLLOW_expr7_in_expr62361) 
     2653                        self._state.following.append(self.FOLLOW_expr7_in_expr62346) 
    26902654                        e2 = self.expr7() 
    26912655 
     
    27002664 
    27012665                    else: 
    2702                         break #loop38 
     2666                        break #loop37 
    27032667 
    27042668 
     
    27192683 
    27202684    # $ANTLR start "expr5" 
    2721     # src/ll/UL4.g:460:1: expr5 returns [node] : e1= expr6 ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 )* ; 
     2685    # src/ll/UL4.g:457:1: expr5 returns [node] : e1= expr6 ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 )* ; 
    27222686    def expr5(self, ): 
    27232687        node = None 
     
    27312695        try: 
    27322696            try: 
    2733                 # src/ll/UL4.g:461:2: (e1= expr6 ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 )* ) 
    2734                 # src/ll/UL4.g:462:3: e1= expr6 ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 )* 
     2697                # src/ll/UL4.g:458:2: (e1= expr6 ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 )* ) 
     2698                # src/ll/UL4.g:459:3: e1= expr6 ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 )* 
    27352699                pass  
    2736                 self._state.following.append(self.FOLLOW_expr6_in_expr52389) 
     2700                self._state.following.append(self.FOLLOW_expr6_in_expr52374) 
    27372701                e1 = self.expr6() 
    27382702 
     
    27452709 
    27462710 
    2747                 # src/ll/UL4.g:463:3: ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 )* 
    2748                 while True: #loop40 
    2749                     alt40 = 2 
    2750                     LA40_0 = self.input.LA(1) 
    2751  
    2752                     if (LA40_0 == 24 or (43 <= LA40_0 <= 44) or (46 <= LA40_0 <= 48)) : 
    2753                         alt40 = 1 
    2754  
    2755  
    2756                     if alt40 == 1: 
    2757                         # src/ll/UL4.g:464:4: ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 
     2711                # src/ll/UL4.g:460:3: ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 )* 
     2712                while True: #loop39 
     2713                    alt39 = 2 
     2714                    LA39_0 = self.input.LA(1) 
     2715 
     2716                    if (LA39_0 == 24 or (43 <= LA39_0 <= 44) or (46 <= LA39_0 <= 48)) : 
     2717                        alt39 = 1 
     2718 
     2719 
     2720                    if alt39 == 1: 
     2721                        # src/ll/UL4.g:461:4: ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr6 
    27582722                        pass  
    2759                         # src/ll/UL4.g:464:4: ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) 
    2760                         alt39 = 6 
    2761                         LA39 = self.input.LA(1) 
    2762                         if LA39 == 46: 
    2763                             alt39 = 1 
    2764                         elif LA39 == 24: 
    2765                             alt39 = 2 
    2766                         elif LA39 == 43: 
    2767                             alt39 = 3 
    2768                         elif LA39 == 44: 
    2769                             alt39 = 4 
    2770                         elif LA39 == 47: 
    2771                             alt39 = 5 
    2772                         elif LA39 == 48: 
    2773                             alt39 = 6 
     2723                        # src/ll/UL4.g:461:4: ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) 
     2724                        alt38 = 6 
     2725                        LA38 = self.input.LA(1) 
     2726                        if LA38 == 46: 
     2727                            alt38 = 1 
     2728                        elif LA38 == 24: 
     2729                            alt38 = 2 
     2730                        elif LA38 == 43: 
     2731                            alt38 = 3 
     2732                        elif LA38 == 44: 
     2733                            alt38 = 4 
     2734                        elif LA38 == 47: 
     2735                            alt38 = 5 
     2736                        elif LA38 == 48: 
     2737                            alt38 = 6 
    27742738                        else: 
    27752739                            if self._state.backtracking > 0: 
     
    27772741 
    27782742 
    2779                             nvae = NoViableAltException("", 39, 0, self.input) 
     2743                            nvae = NoViableAltException("", 38, 0, self.input) 
    27802744 
    27812745                            raise nvae 
    27822746 
    27832747 
    2784                         if alt39 == 1: 
    2785                             # src/ll/UL4.g:465:5: '==' 
     2748                        if alt38 == 1: 
     2749                            # src/ll/UL4.g:462:5: '==' 
    27862750                            pass  
    2787                             self.match(self.input, 46, self.FOLLOW_46_in_expr52406) 
     2751                            self.match(self.input, 46, self.FOLLOW_46_in_expr52391) 
    27882752 
    27892753                            if self._state.backtracking == 0: 
     
    27942758 
    27952759 
    2796                         elif alt39 == 2: 
    2797                             # src/ll/UL4.g:467:5: '!=' 
     2760                        elif alt38 == 2: 
     2761                            # src/ll/UL4.g:464:5: '!=' 
    27982762                            pass  
    2799                             self.match(self.input, 24, self.FOLLOW_24_in_expr52419) 
     2763                            self.match(self.input, 24, self.FOLLOW_24_in_expr52404) 
    28002764 
    28012765                            if self._state.backtracking == 0: 
     
    28062770 
    28072771 
    2808                         elif alt39 == 3: 
    2809                             # src/ll/UL4.g:469:5: '<' 
     2772                        elif alt38 == 3: 
     2773                            # src/ll/UL4.g:466:5: '<' 
    28102774                            pass  
    2811                             self.match(self.input, 43, self.FOLLOW_43_in_expr52432) 
     2775                            self.match(self.input, 43, self.FOLLOW_43_in_expr52417) 
    28122776 
    28132777                            if self._state.backtracking == 0: 
     
    28182782 
    28192783 
    2820                         elif alt39 == 4: 
    2821                             # src/ll/UL4.g:471:5: '<=' 
     2784                        elif alt38 == 4: 
     2785                            # src/ll/UL4.g:468:5: '<=' 
    28222786                            pass  
    2823                             self.match(self.input, 44, self.FOLLOW_44_in_expr52445) 
     2787                            self.match(self.input, 44, self.FOLLOW_44_in_expr52430) 
    28242788 
    28252789                            if self._state.backtracking == 0: 
     
    28302794 
    28312795 
    2832                         elif alt39 == 5: 
    2833                             # src/ll/UL4.g:473:5: '>' 
     2796                        elif alt38 == 5: 
     2797                            # src/ll/UL4.g:470:5: '>' 
    28342798                            pass  
    2835                             self.match(self.input, 47, self.FOLLOW_47_in_expr52458) 
     2799                            self.match(self.input, 47, self.FOLLOW_47_in_expr52443) 
    28362800 
    28372801                            if self._state.backtracking == 0: 
     
    28422806 
    28432807 
    2844                         elif alt39 == 6: 
    2845                             # src/ll/UL4.g:475:5: '>=' 
     2808                        elif alt38 == 6: 
     2809                            # src/ll/UL4.g:472:5: '>=' 
    28462810                            pass  
    2847                             self.match(self.input, 48, self.FOLLOW_48_in_expr52471) 
     2811                            self.match(self.input, 48, self.FOLLOW_48_in_expr52456) 
    28482812 
    28492813                            if self._state.backtracking == 0: 
     
    28562820 
    28572821 
    2858                         self._state.following.append(self.FOLLOW_expr6_in_expr52485) 
     2822                        self._state.following.append(self.FOLLOW_expr6_in_expr52470) 
    28592823                        e2 = self.expr6() 
    28602824 
     
    28692833 
    28702834                    else: 
    2871                         break #loop40 
     2835                        break #loop39 
    28722836 
    28732837 
     
    28882852 
    28892853    # $ANTLR start "expr4" 
    2890     # src/ll/UL4.g:482:1: expr4 returns [node] : e1= expr5 ( ( 'not' )? 'in' e2= expr5 )? ; 
     2854    # src/ll/UL4.g:479:1: expr4 returns [node] : e1= expr5 ( ( 'not' )? 'in' e2= expr5 )? ; 
    28912855    def expr4(self, ): 
    28922856        node = None 
     
    29002864        try: 
    29012865            try: 
    2902                 # src/ll/UL4.g:483:2: (e1= expr5 ( ( 'not' )? 'in' e2= expr5 )? ) 
    2903                 # src/ll/UL4.g:484:3: e1= expr5 ( ( 'not' )? 'in' e2= expr5 )? 
     2866                # src/ll/UL4.g:480:2: (e1= expr5 ( ( 'not' )? 'in' e2= expr5 )? ) 
     2867                # src/ll/UL4.g:481:3: e1= expr5 ( ( 'not' )? 'in' e2= expr5 )? 
    29042868                pass  
    2905                 self._state.following.append(self.FOLLOW_expr5_in_expr42513) 
     2869                self._state.following.append(self.FOLLOW_expr5_in_expr42498) 
    29062870                e1 = self.expr5() 
    29072871 
     
    29142878 
    29152879 
    2916                 # src/ll/UL4.g:485:3: ( ( 'not' )? 'in' e2= expr5 )? 
    2917                 alt42 = 2 
    2918                 LA42_0 = self.input.LA(1) 
    2919  
    2920                 if ((54 <= LA42_0 <= 55)) : 
    2921                     alt42 = 1 
    2922                 if alt42 == 1: 
    2923                     # src/ll/UL4.g:486:4: ( 'not' )? 'in' e2= expr5 
     2880                # src/ll/UL4.g:482:3: ( ( 'not' )? 'in' e2= expr5 )? 
     2881                alt41 = 2 
     2882                LA41_0 = self.input.LA(1) 
     2883 
     2884                if ((54 <= LA41_0 <= 55)) : 
     2885                    alt41 = 1 
     2886                if alt41 == 1: 
     2887                    # src/ll/UL4.g:483:4: ( 'not' )? 'in' e2= expr5 
    29242888                    pass  
    29252889                    if self._state.backtracking == 0: 
     
    29292893 
    29302894 
    2931                     # src/ll/UL4.g:487:4: ( 'not' )? 
    2932                     alt41 = 2 
    2933                     LA41_0 = self.input.LA(1) 
    2934  
    2935                     if (LA41_0 == 55) : 
    2936                         alt41 = 1 
    2937                     if alt41 == 1: 
    2938                         # src/ll/UL4.g:488:5: 'not' 
     2895                    # src/ll/UL4.g:484:4: ( 'not' )? 
     2896                    alt40 = 2 
     2897                    LA40_0 = self.input.LA(1) 
     2898 
     2899                    if (LA40_0 == 55) : 
     2900                        alt40 = 1 
     2901                    if alt40 == 1: 
     2902                        # src/ll/UL4.g:485:5: 'not' 
    29392903                        pass  
    2940                         self.match(self.input, 55, self.FOLLOW_55_in_expr42535) 
     2904                        self.match(self.input, 55, self.FOLLOW_55_in_expr42520) 
    29412905 
    29422906                        if self._state.backtracking == 0: 
     
    29492913 
    29502914 
    2951                     self.match(self.input, 54, self.FOLLOW_54_in_expr42548) 
    2952  
    2953                     self._state.following.append(self.FOLLOW_expr5_in_expr42555) 
     2915                    self.match(self.input, 54, self.FOLLOW_54_in_expr42533) 
     2916 
     2917                    self._state.following.append(self.FOLLOW_expr5_in_expr42540) 
    29542918                    e2 = self.expr5() 
    29552919 
     
    29812945 
    29822946    # $ANTLR start "expr3" 
    2983     # src/ll/UL4.g:496:1: expr3 returns [node] : ( 'not' e= expr4 |e= expr4 ); 
     2947    # src/ll/UL4.g:493:1: expr3 returns [node] : ( 'not' e= expr4 |e= expr4 ); 
    29842948    def expr3(self, ): 
    29852949        node = None 
     
    29912955        try: 
    29922956            try: 
    2993                 # src/ll/UL4.g:497:2: ( 'not' e= expr4 |e= expr4 ) 
    2994                 alt43 = 2 
    2995                 LA43_0 = self.input.LA(1) 
    2996  
    2997                 if (LA43_0 == 55) : 
    2998                     alt43 = 1 
    2999                 elif ((COLOR <= LA43_0 <= DATE) or (FALSE <= LA43_0 <= FLOAT) or (INT <= LA43_0 <= NONE) or LA43_0 == STRING or LA43_0 == TRUE or LA43_0 == 27 or LA43_0 == 35 or LA43_0 == 49 or LA43_0 == 57) : 
    3000                     alt43 = 2 
     2957                # src/ll/UL4.g:494:2: ( 'not' e= expr4 |e= expr4 ) 
     2958                alt42 = 2 
     2959                LA42_0 = self.input.LA(1) 
     2960 
     2961                if (LA42_0 == 55) : 
     2962                    alt42 = 1 
     2963                elif ((COLOR <= LA42_0 <= DATE) or (FALSE <= LA42_0 <= FLOAT) or (INT <= LA42_0 <= NONE) or LA42_0 == STRING or LA42_0 == TRUE or LA42_0 == 27 or LA42_0 == 35 or LA42_0 == 49 or LA42_0 == 57) : 
     2964                    alt42 = 2 
    30012965                else: 
    30022966                    if self._state.backtracking > 0: 
     
    30042968 
    30052969 
    3006                     nvae = NoViableAltException("", 43, 0, self.input) 
     2970                    nvae = NoViableAltException("", 42, 0, self.input) 
    30072971 
    30082972                    raise nvae 
    30092973 
    30102974 
    3011                 if alt43 == 1: 
    3012                     # src/ll/UL4.g:498:3: 'not' e= expr4 
     2975                if alt42 == 1: 
     2976                    # src/ll/UL4.g:495:3: 'not' e= expr4 
    30132977                    pass  
    3014                     self.match(self.input, 55, self.FOLLOW_55_in_expr32581) 
    3015  
    3016                     self._state.following.append(self.FOLLOW_expr4_in_expr32587) 
     2978                    self.match(self.input, 55, self.FOLLOW_55_in_expr32566) 
     2979 
     2980                    self._state.following.append(self.FOLLOW_expr4_in_expr32572) 
    30172981                    e = self.expr4() 
    30182982 
     
    30262990 
    30272991 
    3028                 elif alt43 == 2: 
    3029                     # src/ll/UL4.g:501:3: e= expr4 
     2992                elif alt42 == 2: 
     2993                    # src/ll/UL4.g:498:3: e= expr4 
    30302994                    pass  
    3031                     self._state.following.append(self.FOLLOW_expr4_in_expr32598) 
     2995                    self._state.following.append(self.FOLLOW_expr4_in_expr32583) 
    30322996                    e = self.expr4() 
    30332997 
     
    30553019 
    30563020    # $ANTLR start "expr2" 
    3057     # src/ll/UL4.g:506:1: expr2 returns [node] : e1= expr3 ( 'and' e2= expr3 )* ; 
     3021    # src/ll/UL4.g:503:1: expr2 returns [node] : e1= expr3 ( 'and' e2= expr3 )* ; 
    30583022    def expr2(self, ): 
    30593023        node = None 
     
    30673031        try: 
    30683032            try: 
    3069                 # src/ll/UL4.g:507:2: (e1= expr3 ( 'and' e2= expr3 )* ) 
    3070                 # src/ll/UL4.g:508:3: e1= expr3 ( 'and' e2= expr3 )* 
     3033                # src/ll/UL4.g:504:2: (e1= expr3 ( 'and' e2= expr3 )* ) 
     3034                # src/ll/UL4.g:505:3: e1= expr3 ( 'and' e2= expr3 )* 
    30713035                pass  
    3072                 self._state.following.append(self.FOLLOW_expr3_in_expr22622) 
     3036                self._state.following.append(self.FOLLOW_expr3_in_expr22607) 
    30733037                e1 = self.expr3() 
    30743038 
     
    30813045 
    30823046 
    3083                 # src/ll/UL4.g:509:3: ( 'and' e2= expr3 )* 
     3047                # src/ll/UL4.g:506:3: ( 'and' e2= expr3 )* 
     3048                while True: #loop43 
     3049                    alt43 = 2 
     3050                    LA43_0 = self.input.LA(1) 
     3051 
     3052                    if (LA43_0 == 51) : 
     3053                        alt43 = 1 
     3054 
     3055 
     3056                    if alt43 == 1: 
     3057                        # src/ll/UL4.g:507:4: 'and' e2= expr3 
     3058                        pass  
     3059                        self.match(self.input, 51, self.FOLLOW_51_in_expr22618) 
     3060 
     3061                        self._state.following.append(self.FOLLOW_expr3_in_expr22625) 
     3062                        e2 = self.expr3() 
     3063 
     3064                        self._state.following.pop() 
     3065 
     3066                        if self._state.backtracking == 0: 
     3067                            pass 
     3068                            node = ul4c.And(node, e2)  
     3069 
     3070 
     3071 
     3072 
     3073                    else: 
     3074                        break #loop43 
     3075 
     3076 
     3077 
     3078 
     3079 
     3080                        
     3081            except RecognitionException as e: 
     3082                raise 
     3083 
     3084        finally: 
     3085            pass 
     3086        return node 
     3087 
     3088    # $ANTLR end "expr2" 
     3089 
     3090 
     3091 
     3092    # $ANTLR start "expr1" 
     3093    # src/ll/UL4.g:513:1: expr1 returns [node] : e1= expr2 ( 'or' e2= expr2 )* ; 
     3094    def expr1(self, ): 
     3095        node = None 
     3096 
     3097 
     3098        e1 = None 
     3099 
     3100        e2 = None 
     3101 
     3102 
     3103        try: 
     3104            try: 
     3105                # src/ll/UL4.g:514:2: (e1= expr2 ( 'or' e2= expr2 )* ) 
     3106                # src/ll/UL4.g:515:3: e1= expr2 ( 'or' e2= expr2 )* 
     3107                pass  
     3108                self._state.following.append(self.FOLLOW_expr2_in_expr12653) 
     3109                e1 = self.expr2() 
     3110 
     3111                self._state.following.pop() 
     3112 
     3113                if self._state.backtracking == 0: 
     3114                    pass 
     3115                    node =  e1  
     3116 
     3117 
     3118 
     3119                # src/ll/UL4.g:516:3: ( 'or' e2= expr2 )* 
    30843120                while True: #loop44 
    30853121                    alt44 = 2 
    30863122                    LA44_0 = self.input.LA(1) 
    30873123 
    3088                     if (LA44_0 == 51) : 
     3124                    if (LA44_0 == 56) : 
    30893125                        alt44 = 1 
    30903126 
    30913127 
    30923128                    if alt44 == 1: 
    3093                         # src/ll/UL4.g:510:4: 'and' e2= expr3 
     3129                        # src/ll/UL4.g:517:4: 'or' e2= expr2 
    30943130                        pass  
    3095                         self.match(self.input, 51, self.FOLLOW_51_in_expr22633) 
    3096  
    3097                         self._state.following.append(self.FOLLOW_expr3_in_expr22640) 
    3098                         e2 = self.expr3() 
     3131                        self.match(self.input, 56, self.FOLLOW_56_in_expr12664) 
     3132 
     3133                        self._state.following.append(self.FOLLOW_expr2_in_expr12671) 
     3134                        e2 = self.expr2() 
    30993135 
    31003136                        self._state.following.pop() 
     
    31023138                        if self._state.backtracking == 0: 
    31033139                            pass 
    3104                             node = ul4c.And(node, e2)  
     3140                            node = ul4c.Or(node, e2)  
    31053141 
    31063142 
     
    31223158        return node 
    31233159 
    3124     # $ANTLR end "expr2" 
    3125  
    3126  
    3127  
    3128     # $ANTLR start "expr1" 
    3129     # src/ll/UL4.g:516:1: expr1 returns [node] : e1= expr2 ( 'or' e2= expr2 )* ; 
    3130     def expr1(self, ): 
     3160    # $ANTLR end "expr1" 
     3161 
     3162 
     3163 
     3164    # $ANTLR start "exprarg" 
     3165    # src/ll/UL4.g:522:1: exprarg returns [node] : (ege= generatorexpression |e1= expr1 ); 
     3166    def exprarg(self, ): 
    31313167        node = None 
    31323168 
    31333169 
     3170        ege = None 
     3171 
    31343172        e1 = None 
    3135  
    3136         e2 = None 
    31373173 
    31383174 
    31393175        try: 
    31403176            try: 
    3141                 # src/ll/UL4.g:517:2: (e1= expr2 ( 'or' e2= expr2 )* ) 
    3142                 # src/ll/UL4.g:518:3: e1= expr2 ( 'or' e2= expr2 )* 
    3143                 pass  
    3144                 self._state.following.append(self.FOLLOW_expr2_in_expr12668) 
    3145                 e1 = self.expr2() 
    3146  
    3147                 self._state.following.pop() 
    3148  
    3149                 if self._state.backtracking == 0: 
    3150                     pass 
    3151                     node =  e1  
    3152  
    3153  
    3154  
    3155                 # src/ll/UL4.g:519:3: ( 'or' e2= expr2 )* 
    3156                 while True: #loop45 
    3157                     alt45 = 2 
    3158                     LA45_0 = self.input.LA(1) 
    3159  
    3160                     if (LA45_0 == 56) : 
     3177                # src/ll/UL4.g:523:2: (ege= generatorexpression |e1= expr1 ) 
     3178                alt45 = 2 
     3179                LA45 = self.input.LA(1) 
     3180                if LA45 == 55: 
     3181                    LA45_1 = self.input.LA(2) 
     3182 
     3183                    if (self.synpred69_UL4()) : 
    31613184                        alt45 = 1 
    3162  
    3163  
    3164                     if alt45 == 1: 
    3165                         # src/ll/UL4.g:520:4: 'or' e2= expr2 
    3166                         pass  
    3167                         self.match(self.input, 56, self.FOLLOW_56_in_expr12679) 
    3168  
    3169                         self._state.following.append(self.FOLLOW_expr2_in_expr12686) 
    3170                         e2 = self.expr2() 
    3171  
    3172                         self._state.following.pop() 
    3173  
    3174                         if self._state.backtracking == 0: 
    3175                             pass 
    3176                             node = ul4c.Or(node, e2)  
    3177  
    3178  
    3179  
    3180  
     3185                    elif (True) : 
     3186                        alt45 = 2 
    31813187                    else: 
    3182                         break #loop45 
     3188                        if self._state.backtracking > 0: 
     3189                            raise BacktrackingFailed 
     3190 
     3191 
     3192                        nvae = NoViableAltException("", 45, 1, self.input) 
     3193 
     3194                        raise nvae 
     3195 
     3196 
     3197                elif LA45 == 35: 
     3198                    LA45_2 = self.input.LA(2) 
     3199 
     3200                    if (self.synpred69_UL4()) : 
     3201                        alt45 = 1 
     3202                    elif (True) : 
     3203                        alt45 = 2 
     3204                    else: 
     3205                        if self._state.backtracking > 0: 
     3206                            raise BacktrackingFailed 
     3207 
     3208 
     3209                        nvae = NoViableAltException("", 45, 2, self.input) 
     3210 
     3211                        raise nvae 
     3212 
     3213 
     3214                elif LA45 == NONE: 
     3215                    LA45_3 = self.input.LA(2) 
     3216 
     3217                    if (self.synpred69_UL4()) : 
     3218                        alt45 = 1 
     3219                    elif (True) : 
     3220                        alt45 = 2 
     3221                    else: 
     3222                        if self._state.backtracking > 0: 
     3223                            raise BacktrackingFailed 
     3224 
     3225 
     3226                        nvae = NoViableAltException("", 45, 3, self.input) 
     3227 
     3228                        raise nvae 
     3229 
     3230 
     3231                elif LA45 == FALSE: 
     3232                    LA45_4 = self.input.LA(2) 
     3233 
     3234                    if (self.synpred69_UL4()) : 
     3235                        alt45 = 1 
     3236                    elif (True) : 
     3237                        alt45 = 2 
     3238                    else: 
     3239                        if self._state.backtracking > 0: 
     3240                            raise BacktrackingFailed 
     3241 
     3242 
     3243                        nvae = NoViableAltException("", 45, 4, self.input) 
     3244 
     3245                        raise nvae 
     3246 
     3247 
     3248                elif LA45 == TRUE: 
     3249                    LA45_5 = self.input.LA(2) 
     3250 
     3251                    if (self.synpred69_UL4()) : 
     3252                        alt45 = 1 
     3253                    elif (True) : 
     3254                        alt45 = 2 
     3255                    else: 
     3256                        if self._state.backtracking > 0: 
     3257                            raise BacktrackingFailed 
     3258 
     3259 
     3260                        nvae = NoViableAltException("", 45, 5, self.input) 
     3261 
     3262                        raise nvae 
     3263 
     3264 
     3265                elif LA45 == INT: 
     3266                    LA45_6 = self.input.LA(2) 
     3267 
     3268                    if (self.synpred69_UL4()) : 
     3269                        alt45 = 1 
     3270                    elif (True) : 
     3271                        alt45 = 2 
     3272                    else: 
     3273                        if self._state.backtracking > 0: 
     3274                            raise BacktrackingFailed 
     3275 
     3276 
     3277                        nvae = NoViableAltException("", 45, 6, self.input) 
     3278 
     3279                        raise nvae 
     3280 
     3281 
     3282                elif LA45 == FLOAT: 
     3283                    LA45_7 = self.input.LA(2) 
     3284 
     3285                    if (self.synpred69_UL4()) : 
     3286                        alt45 = 1 
     3287                    elif (True) : 
     3288                        alt45 = 2 
     3289                    else: 
     3290                        if self._state.backtracking > 0: 
     3291                            raise BacktrackingFailed 
     3292 
     3293 
     3294                        nvae = NoViableAltException("", 45, 7, self.input) 
     3295 
     3296                        raise nvae 
     3297 
     3298 
     3299                elif LA45 == STRING: 
     3300                    LA45_8 = self.input.LA(2) 
     3301 
     3302                    if (self.synpred69_UL4()) : 
     3303                        alt45 = 1 
     3304                    elif (True) : 
     3305                        alt45 = 2 
     3306                    else: 
     3307                        if self._state.backtracking > 0: 
     3308                            raise BacktrackingFailed 
     3309 
     3310 
     3311                        nvae = NoViableAltException("", 45, 8, self.input) 
     3312 
     3313                        raise nvae 
     3314 
     3315 
     3316                elif LA45 == DATE: 
     3317                    LA45_9 = self.input.LA(2) 
     3318 
     3319                    if (self.synpred69_UL4()) : 
     3320                        alt45 = 1 
     3321                    elif (True) : 
     3322                        alt45 = 2 
     3323                    else: 
     3324                        if self._state.backtracking > 0: 
     3325                            raise BacktrackingFailed 
     3326 
     3327 
     3328                        nvae = NoViableAltException("", 45, 9, self.input) 
     3329 
     3330                        raise nvae 
     3331 
     3332 
     3333                elif LA45 == COLOR: 
     3334                    LA45_10 = self.input.LA(2) 
     3335 
     3336                    if (self.synpred69_UL4()) : 
     3337                        alt45 = 1 
     3338                    elif (True) : 
     3339                        alt45 = 2 
     3340                    else: 
     3341                        if self._state.backtracking > 0: 
     3342                            raise BacktrackingFailed 
     3343 
     3344 
     3345                        nvae = NoViableAltException("", 45, 10, self.input) 
     3346 
     3347                        raise nvae 
     3348 
     3349 
     3350                elif LA45 == NAME: 
     3351                    LA45_11 = self.input.LA(2) 
     3352 
     3353                    if (self.synpred69_UL4()) : 
     3354                        alt45 = 1 
     3355                    elif (True) : 
     3356                        alt45 = 2 
     3357                    else: 
     3358                        if self._state.backtracking > 0: 
     3359                            raise BacktrackingFailed 
     3360 
     3361 
     3362                        nvae = NoViableAltException("", 45, 11, self.input) 
     3363 
     3364                        raise nvae 
     3365 
     3366 
     3367                elif LA45 == 49: 
     3368                    LA45_12 = self.input.LA(2) 
     3369 
     3370                    if (self.synpred69_UL4()) : 
     3371                        alt45 = 1 
     3372                    elif (True) : 
     3373                        alt45 = 2 
     3374                    else: 
     3375                        if self._state.backtracking > 0: 
     3376                            raise BacktrackingFailed 
     3377 
     3378 
     3379                        nvae = NoViableAltException("", 45, 12, self.input) 
     3380 
     3381                        raise nvae 
     3382 
     3383 
     3384                elif LA45 == 57: 
     3385                    LA45_13 = self.input.LA(2) 
     3386 
     3387                    if (self.synpred69_UL4()) : 
     3388                        alt45 = 1 
     3389                    elif (True) : 
     3390                        alt45 = 2 
     3391                    else: 
     3392                        if self._state.backtracking > 0: 
     3393                            raise BacktrackingFailed 
     3394 
     3395 
     3396                        nvae = NoViableAltException("", 45, 13, self.input) 
     3397 
     3398                        raise nvae 
     3399 
     3400 
     3401                elif LA45 == 27: 
     3402                    LA45_14 = self.input.LA(2) 
     3403 
     3404                    if (self.synpred69_UL4()) : 
     3405                        alt45 = 1 
     3406                    elif (True) : 
     3407                        alt45 = 2 
     3408                    else: 
     3409                        if self._state.backtracking > 0: 
     3410                            raise BacktrackingFailed 
     3411 
     3412 
     3413                        nvae = NoViableAltException("", 45, 14, self.input) 
     3414 
     3415                        raise nvae 
     3416 
     3417 
     3418                else: 
     3419                    if self._state.backtracking > 0: 
     3420                        raise BacktrackingFailed 
     3421 
     3422 
     3423                    nvae = NoViableAltException("", 45, 0, self.input) 
     3424 
     3425                    raise nvae 
     3426 
     3427 
     3428                if alt45 == 1: 
     3429                    # src/ll/UL4.g:523:4: ege= generatorexpression 
     3430                    pass  
     3431                    self._state.following.append(self.FOLLOW_generatorexpression_in_exprarg2695) 
     3432                    ege = self.generatorexpression() 
     3433 
     3434                    self._state.following.pop() 
     3435 
     3436                    if self._state.backtracking == 0: 
     3437                        pass 
     3438                        node =  ege  
     3439 
     3440 
     3441 
     3442 
     3443                elif alt45 == 2: 
     3444                    # src/ll/UL4.g:524:4: e1= expr1 
     3445                    pass  
     3446                    self._state.following.append(self.FOLLOW_expr1_in_exprarg2704) 
     3447                    e1 = self.expr1() 
     3448 
     3449                    self._state.following.pop() 
     3450 
     3451                    if self._state.backtracking == 0: 
     3452                        pass 
     3453                        node =  e1  
    31833454 
    31843455 
     
    31943465        return node 
    31953466 
    3196     # $ANTLR end "expr1" 
    3197  
    3198  
    3199  
    3200     # $ANTLR start "exprarg" 
    3201     # src/ll/UL4.g:525:1: exprarg returns [node] : (ege= generatorexpression |e1= expr1 ); 
    3202     def exprarg(self, ): 
     3467    # $ANTLR end "exprarg" 
     3468 
     3469 
     3470 
     3471    # $ANTLR start "expression" 
     3472    # src/ll/UL4.g:527:1: expression returns [node] : (ege= generatorexpression EOF |e= expr1 EOF ); 
     3473    def expression(self, ): 
    32033474        node = None 
    32043475 
     
    32063477        ege = None 
    32073478 
    3208         e1 = None 
     3479        e = None 
    32093480 
    32103481 
    32113482        try: 
    32123483            try: 
    3213                 # src/ll/UL4.g:526:2: (ege= generatorexpression |e1= expr1 ) 
     3484                # src/ll/UL4.g:528:2: (ege= generatorexpression EOF |e= expr1 EOF ) 
    32143485                alt46 = 2 
    32153486                LA46 = self.input.LA(1) 
     
    34633734 
    34643735                if alt46 == 1: 
    3465                     # src/ll/UL4.g:526:4: ege= generatorexpression 
     3736                    # src/ll/UL4.g:528:4: ege= generatorexpression EOF 
    34663737                    pass  
    3467                     self._state.following.append(self.FOLLOW_generatorexpression_in_exprarg2710) 
     3738                    self._state.following.append(self.FOLLOW_generatorexpression_in_expression2723) 
    34683739                    ege = self.generatorexpression() 
    34693740 
    34703741                    self._state.following.pop() 
     3742 
     3743                    self.match(self.input, EOF, self.FOLLOW_EOF_in_expression2725) 
    34713744 
    34723745                    if self._state.backtracking == 0: 
     
    34783751 
    34793752                elif alt46 == 2: 
    3480                     # src/ll/UL4.g:527:4: e1= expr1 
     3753                    # src/ll/UL4.g:529:4: e= expr1 EOF 
    34813754                    pass  
    3482                     self._state.following.append(self.FOLLOW_expr1_in_exprarg2719) 
    3483                     e1 = self.expr1() 
     3755                    self._state.following.append(self.FOLLOW_expr1_in_expression2734) 
     3756                    e = self.expr1() 
    34843757 
    34853758                    self._state.following.pop() 
     3759 
     3760                    self.match(self.input, EOF, self.FOLLOW_EOF_in_expression2736) 
    34863761 
    34873762                    if self._state.backtracking == 0: 
    34883763                        pass 
    3489                         node =  e1  
     3764                        node =  e  
    34903765 
    34913766 
     
    35013776        return node 
    35023777 
    3503     # $ANTLR end "exprarg" 
    3504  
    3505  
    3506  
    3507     # $ANTLR start "expression" 
    3508     # src/ll/UL4.g:530:1: expression returns [node] : (ege= generatorexpression EOF |e= expr1 EOF ); 
    3509     def expression(self, ): 
     3778    # $ANTLR end "expression" 
     3779 
     3780 
     3781 
     3782    # $ANTLR start "for_" 
     3783    # src/ll/UL4.g:535:1: for_ returns [node] : n= nestedname 'in' e= expr1 EOF ; 
     3784    def for_(self, ): 
    35103785        node = None 
    35113786 
    35123787 
    3513         ege = None 
     3788        n = None 
    35143789 
    35153790        e = None 
     
    35183793        try: 
    35193794            try: 
    3520                 # src/ll/UL4.g:531:2: (ege= generatorexpression EOF |e= expr1 EOF ) 
    3521                 alt47 = 2 
     3795                # src/ll/UL4.g:536:2: (n= nestedname 'in' e= expr1 EOF ) 
     3796                # src/ll/UL4.g:537:3: n= nestedname 'in' e= expr1 EOF 
     3797                pass  
     3798                self._state.following.append(self.FOLLOW_nestedname_in_for_2761) 
     3799                n = self.nestedname() 
     3800 
     3801                self._state.following.pop() 
     3802 
     3803                self.match(self.input, 54, self.FOLLOW_54_in_for_2765) 
     3804 
     3805                self._state.following.append(self.FOLLOW_expr1_in_for_2771) 
     3806                e = self.expr1() 
     3807 
     3808                self._state.following.pop() 
     3809 
     3810                if self._state.backtracking == 0: 
     3811                    pass 
     3812                    node = ul4c.For(self.location, n, e)  
     3813 
     3814 
     3815 
     3816                self.match(self.input, EOF, self.FOLLOW_EOF_in_for_2777) 
     3817 
     3818 
     3819 
     3820 
     3821                        
     3822            except RecognitionException as e: 
     3823                raise 
     3824 
     3825        finally: 
     3826            pass 
     3827        return node 
     3828 
     3829    # $ANTLR end "for_" 
     3830 
     3831 
     3832 
     3833    # $ANTLR start "statement" 
     3834    # src/ll/UL4.g:546:1: statement returns [node] : (nn= nestedname '=' e= expr1 EOF |n= name '+=' e= expr1 EOF |n= name '-=' e= expr1 EOF |n= name '*=' e= expr1 EOF |n= name '/=' e= expr1 EOF |n= name '//=' e= expr1 EOF |n= name '%=' e= expr1 EOF |e= expression EOF ); 
     3835    def statement(self, ): 
     3836        node = None 
     3837 
     3838 
     3839        nn = None 
     3840 
     3841        e = None 
     3842 
     3843        n = None 
     3844 
     3845 
     3846        try: 
     3847            try: 
     3848                # src/ll/UL4.g:547:2: (nn= nestedname '=' e= expr1 EOF |n= name '+=' e= expr1 EOF |n= name '-=' e= expr1 EOF |n= name '*=' e= expr1 EOF |n= name '/=' e= expr1 EOF |n= name '//=' e= expr1 EOF |n= name '%=' e= expr1 EOF |e= expression EOF ) 
     3849                alt47 = 8 
    35223850                LA47 = self.input.LA(1) 
    3523                 if LA47 == 55: 
     3851                if LA47 == NAME: 
    35243852                    LA47_1 = self.input.LA(2) 
     3853 
     3854                    if (self.synpred71_UL4()) : 
     3855                        alt47 = 1 
     3856                    elif (self.synpred72_UL4()) : 
     3857                        alt47 = 2 
     3858                    elif (self.synpred73_UL4()) : 
     3859                        alt47 = 3 
     3860                    elif (self.synpred74_UL4()) : 
     3861                        alt47 = 4 
     3862                    elif (self.synpred75_UL4()) : 
     3863                        alt47 = 5 
     3864                    elif (self.synpred76_UL4()) : 
     3865                        alt47 = 6 
     3866                    elif (self.synpred77_UL4()) : 
     3867                        alt47 = 7 
     3868                    elif (True) : 
     3869                        alt47 = 8 
     3870                    else: 
     3871                        if self._state.backtracking > 0: 
     3872                            raise BacktrackingFailed 
     3873 
     3874 
     3875                        nvae = NoViableAltException("", 47, 1, self.input) 
     3876 
     3877                        raise nvae 
     3878 
     3879 
     3880                elif LA47 == 27: 
     3881                    LA47_2 = self.input.LA(2) 
    35253882 
    35263883                    if (self.synpred71_UL4()) : 
    35273884                        alt47 = 1 
    35283885                    elif (True) : 
    3529                         alt47 = 2 
     3886                        alt47 = 8 
    35303887                    else: 
    35313888                        if self._state.backtracking > 0: 
     
    35333890 
    35343891 
    3535                         nvae = NoViableAltException("", 47, 1, self.input) 
     3892                        nvae = NoViableAltException("", 47, 2, self.input) 
    35363893 
    35373894                        raise nvae 
    35383895 
    35393896 
    3540                 elif LA47 == 35: 
    3541                     LA47_2 = self.input.LA(2) 
    3542  
    3543                     if (self.synpred71_UL4()) : 
    3544                         alt47 = 1 
    3545                     elif (True) : 
    3546                         alt47 = 2 
    3547                     else: 
    3548                         if self._state.backtracking > 0: 
    3549                             raise BacktrackingFailed 
    3550  
    3551  
    3552                         nvae = NoViableAltException("", 47, 2, self.input) 
    3553  
    3554                         raise nvae 
    3555  
    3556  
    3557                 elif LA47 == NONE: 
    3558                     LA47_3 = self.input.LA(2) 
    3559  
    3560                     if (self.synpred71_UL4()) : 
    3561                         alt47 = 1 
    3562                     elif (True) : 
    3563                         alt47 = 2 
    3564                     else: 
    3565                         if self._state.backtracking > 0: 
    3566                             raise BacktrackingFailed 
    3567  
    3568  
    3569                         nvae = NoViableAltException("", 47, 3, self.input) 
    3570  
    3571                         raise nvae 
    3572  
    3573  
    3574                 elif LA47 == FALSE: 
    3575                     LA47_4 = self.input.LA(2) 
    3576  
    3577                     if (self.synpred71_UL4()) : 
    3578                         alt47 = 1 
    3579                     elif (True) : 
    3580                         alt47 = 2 
    3581                     else: 
    3582                         if self._state.backtracking > 0: 
    3583                             raise BacktrackingFailed 
    3584  
    3585  
    3586                         nvae = NoViableAltException("", 47, 4, self.input) 
    3587  
    3588                         raise nvae 
    3589  
    3590  
    3591                 elif LA47 == TRUE: 
    3592                     LA47_5 = self.input.LA(2) 
    3593  
    3594                     if (self.synpred71_UL4()) : 
    3595                         alt47 = 1 
    3596                     elif (True) : 
    3597                         alt47 = 2 
    3598                     else: 
    3599                         if self._state.backtracking > 0: 
    3600                             raise BacktrackingFailed 
    3601  
    3602  
    3603                         nvae = NoViableAltException("", 47, 5, self.input) 
    3604  
    3605                         raise nvae 
    3606  
    3607  
    3608                 elif LA47 == INT: 
    3609                     LA47_6 = self.input.LA(2) 
    3610  
    3611                     if (self.synpred71_UL4()) : 
    3612                         alt47 = 1 
    3613                     elif (True) : 
    3614                         alt47 = 2 
    3615                     else: 
    3616                         if self._state.backtracking > 0: 
    3617                             raise BacktrackingFailed 
    3618  
    3619  
    3620                         nvae = NoViableAltException("", 47, 6, self.input) 
    3621  
    3622                         raise nvae 
    3623  
    3624  
    3625                 elif LA47 == FLOAT: 
    3626                     LA47_7 = self.input.LA(2) 
    3627  
    3628                     if (self.synpred71_UL4()) : 
    3629                         alt47 = 1 
    3630                     elif (True) : 
    3631                         alt47 = 2 
    3632                     else: 
    3633                         if self._state.backtracking > 0: 
    3634                             raise BacktrackingFailed 
    3635  
    3636  
    3637                         nvae = NoViableAltException("", 47, 7, self.input) 
    3638  
    3639                         raise nvae 
    3640  
    3641  
    3642                 elif LA47 == STRING: 
    3643                     LA47_8 = self.input.LA(2) 
    3644  
    3645                     if (self.synpred71_UL4()) : 
    3646                         alt47 = 1 
    3647                     elif (True) : 
    3648                         alt47 = 2 
    3649                     else: 
    3650                         if self._state.backtracking > 0: 
    3651                             raise BacktrackingFailed 
    3652  
    3653  
    3654                         nvae = NoViableAltException("", 47, 8, self.input) 
    3655  
    3656                         raise nvae 
    3657  
    3658  
    3659                 elif LA47 == DATE: 
    3660                     LA47_9 = self.input.LA(2) 
    3661  
    3662                     if (self.synpred71_UL4()) : 
    3663                         alt47 = 1 
    3664                     elif (True) : 
    3665                         alt47 = 2 
    3666                     else: 
    3667                         if self._state.backtracking > 0: 
    3668                             raise BacktrackingFailed 
    3669  
    3670  
    3671                         nvae = NoViableAltException("", 47, 9, self.input) 
    3672  
    3673                         raise nvae 
    3674  
    3675  
    3676                 elif LA47 == COLOR: 
    3677                     LA47_10 = self.input.LA(2) 
    3678  
    3679                     if (self.synpred71_UL4()) : 
    3680                         alt47 = 1 
    3681                     elif (True) : 
    3682                         alt47 = 2 
    3683                     else: 
    3684                         if self._state.backtracking > 0: 
    3685                             raise BacktrackingFailed 
    3686  
    3687  
    3688                         nvae = NoViableAltException("", 47, 10, self.input) 
    3689  
    3690                         raise nvae 
    3691  
    3692  
    3693                 elif LA47 == NAME: 
    3694                     LA47_11 = self.input.LA(2) 
    3695  
    3696                     if (self.synpred71_UL4()) : 
    3697                         alt47 = 1 
    3698                     elif (True) : 
    3699                         alt47 = 2 
    3700                     else: 
    3701                         if self._state.backtracking > 0: 
    3702                             raise BacktrackingFailed 
    3703  
    3704  
    3705                         nvae = NoViableAltException("", 47, 11, self.input) 
    3706  
    3707                         raise nvae 
    3708  
    3709  
    3710                 elif LA47 == 49: 
    3711                     LA47_12 = self.input.LA(2) 
    3712  
    3713                     if (self.synpred71_UL4()) : 
    3714                         alt47 = 1 
    3715                     elif (True) : 
    3716                         alt47 = 2 
    3717                     else: 
    3718                         if self._state.backtracking > 0: 
    3719                             raise BacktrackingFailed 
    3720  
    3721  
    3722                         nvae = NoViableAltException("", 47, 12, self.input) 
    3723  
    3724                         raise nvae 
    3725  
    3726  
    3727                 elif LA47 == 57: 
    3728                     LA47_13 = self.input.LA(2) 
    3729  
    3730                     if (self.synpred71_UL4()) : 
    3731                         alt47 = 1 
    3732                     elif (True) : 
    3733                         alt47 = 2 
    3734                     else: 
    3735                         if self._state.backtracking > 0: 
    3736                             raise BacktrackingFailed 
    3737  
    3738  
    3739                         nvae = NoViableAltException("", 47, 13, self.input) 
    3740  
    3741                         raise nvae 
    3742  
    3743  
    3744                 elif LA47 == 27: 
    3745                     LA47_14 = self.input.LA(2) 
    3746  
    3747                     if (self.synpred71_UL4()) : 
    3748                         alt47 = 1 
    3749                     elif (True) : 
    3750                         alt47 = 2 
    3751                     else: 
    3752                         if self._state.backtracking > 0: 
    3753                             raise BacktrackingFailed 
    3754  
    3755  
    3756                         nvae = NoViableAltException("", 47, 14, self.input) 
    3757  
    3758                         raise nvae 
    3759  
    3760  
     3897                elif LA47 == COLOR or LA47 == DATE or LA47 == FALSE or LA47 == FLOAT or LA47 == INT or LA47 == NONE or LA47 == STRING or LA47 == TRUE or LA47 == 35 or LA47 == 49 or LA47 == 55 or LA47 == 57: 
     3898                    alt47 = 8 
    37613899                else: 
    37623900                    if self._state.backtracking > 0: 
     
    37703908 
    37713909                if alt47 == 1: 
    3772                     # src/ll/UL4.g:531:4: ege= generatorexpression EOF 
     3910                    # src/ll/UL4.g:547:4: nn= nestedname '=' e= expr1 EOF 
    37733911                    pass  
    3774                     self._state.following.append(self.FOLLOW_generatorexpression_in_expression2738) 
    3775                     ege = self.generatorexpression() 
     3912                    self._state.following.append(self.FOLLOW_nestedname_in_statement2798) 
     3913                    nn = self.nestedname() 
    37763914 
    37773915                    self._state.following.pop() 
    37783916 
    3779                     self.match(self.input, EOF, self.FOLLOW_EOF_in_expression2740) 
     3917                    self.match(self.input, 45, self.FOLLOW_45_in_statement2800) 
     3918 
     3919                    self._state.following.append(self.FOLLOW_expr1_in_statement2804) 
     3920                    e = self.expr1() 
     3921 
     3922                    self._state.following.pop() 
     3923 
     3924                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2806) 
    37803925 
    37813926                    if self._state.backtracking == 0: 
    37823927                        pass 
    3783                         node =  ege  
     3928                        node = ul4c.StoreVar(self.location, nn, e)  
    37843929 
    37853930 
     
    37873932 
    37883933                elif alt47 == 2: 
    3789                     # src/ll/UL4.g:532:4: e= expr1 EOF 
     3934                    # src/ll/UL4.g:548:4: n= name '+=' e= expr1 EOF 
    37903935                    pass  
    3791                     self._state.following.append(self.FOLLOW_expr1_in_expression2749) 
     3936                    self._state.following.append(self.FOLLOW_name_in_statement2815) 
     3937                    n = self.name() 
     3938 
     3939                    self._state.following.pop() 
     3940 
     3941                    self.match(self.input, 33, self.FOLLOW_33_in_statement2817) 
     3942 
     3943                    self._state.following.append(self.FOLLOW_expr1_in_statement2821) 
    37923944                    e = self.expr1() 
    37933945 
    37943946                    self._state.following.pop() 
    37953947 
    3796                     self.match(self.input, EOF, self.FOLLOW_EOF_in_expression2751) 
     3948                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2823) 
    37973949 
    37983950                    if self._state.backtracking == 0: 
    37993951                        pass 
    3800                         node =  e  
     3952                        node = ul4c.AddVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
     3953 
     3954 
     3955 
     3956 
     3957                elif alt47 == 3: 
     3958                    # src/ll/UL4.g:549:4: n= name '-=' e= expr1 EOF 
     3959                    pass  
     3960                    self._state.following.append(self.FOLLOW_name_in_statement2832) 
     3961                    n = self.name() 
     3962 
     3963                    self._state.following.pop() 
     3964 
     3965                    self.match(self.input, 36, self.FOLLOW_36_in_statement2834) 
     3966 
     3967                    self._state.following.append(self.FOLLOW_expr1_in_statement2838) 
     3968                    e = self.expr1() 
     3969 
     3970                    self._state.following.pop() 
     3971 
     3972                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2840) 
     3973 
     3974                    if self._state.backtracking == 0: 
     3975                        pass 
     3976                        node = ul4c.SubVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
     3977 
     3978 
     3979 
     3980 
     3981                elif alt47 == 4: 
     3982                    # src/ll/UL4.g:550:4: n= name '*=' e= expr1 EOF 
     3983                    pass  
     3984                    self._state.following.append(self.FOLLOW_name_in_statement2849) 
     3985                    n = self.name() 
     3986 
     3987                    self._state.following.pop() 
     3988 
     3989                    self.match(self.input, 31, self.FOLLOW_31_in_statement2851) 
     3990 
     3991                    self._state.following.append(self.FOLLOW_expr1_in_statement2855) 
     3992                    e = self.expr1() 
     3993 
     3994                    self._state.following.pop() 
     3995 
     3996                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2857) 
     3997 
     3998                    if self._state.backtracking == 0: 
     3999                        pass 
     4000                        node = ul4c.MulVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
     4001 
     4002 
     4003 
     4004 
     4005                elif alt47 == 5: 
     4006                    # src/ll/UL4.g:551:4: n= name '/=' e= expr1 EOF 
     4007                    pass  
     4008                    self._state.following.append(self.FOLLOW_name_in_statement2866) 
     4009                    n = self.name() 
     4010 
     4011                    self._state.following.pop() 
     4012 
     4013                    self.match(self.input, 41, self.FOLLOW_41_in_statement2868) 
     4014 
     4015                    self._state.following.append(self.FOLLOW_expr1_in_statement2872) 
     4016                    e = self.expr1() 
     4017 
     4018                    self._state.following.pop() 
     4019 
     4020                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2874) 
     4021 
     4022                    if self._state.backtracking == 0: 
     4023                        pass 
     4024                        node = ul4c.TrueDivVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
     4025 
     4026 
     4027 
     4028 
     4029                elif alt47 == 6: 
     4030                    # src/ll/UL4.g:552:4: n= name '//=' e= expr1 EOF 
     4031                    pass  
     4032                    self._state.following.append(self.FOLLOW_name_in_statement2883) 
     4033                    n = self.name() 
     4034 
     4035                    self._state.following.pop() 
     4036 
     4037                    self.match(self.input, 40, self.FOLLOW_40_in_statement2885) 
     4038 
     4039                    self._state.following.append(self.FOLLOW_expr1_in_statement2889) 
     4040                    e = self.expr1() 
     4041 
     4042                    self._state.following.pop() 
     4043 
     4044                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2891) 
     4045 
     4046                    if self._state.backtracking == 0: 
     4047                        pass 
     4048                        node = ul4c.FloorDivVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
     4049 
     4050 
     4051 
     4052 
     4053                elif alt47 == 7: 
     4054                    # src/ll/UL4.g:553:4: n= name '%=' e= expr1 EOF 
     4055                    pass  
     4056                    self._state.following.append(self.FOLLOW_name_in_statement2900) 
     4057                    n = self.name() 
     4058 
     4059                    self._state.following.pop() 
     4060 
     4061                    self.match(self.input, 26, self.FOLLOW_26_in_statement2902) 
     4062 
     4063                    self._state.following.append(self.FOLLOW_expr1_in_statement2906) 
     4064                    e = self.expr1() 
     4065 
     4066                    self._state.following.pop() 
     4067 
     4068                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2908) 
     4069 
     4070                    if self._state.backtracking == 0: 
     4071                        pass 
     4072                        node = ul4c.ModVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
     4073 
     4074 
     4075 
     4076 
     4077                elif alt47 == 8: 
     4078                    # src/ll/UL4.g:554:4: e= expression EOF 
     4079                    pass  
     4080                    self._state.following.append(self.FOLLOW_expression_in_statement2917) 
     4081                    e = self.expression() 
     4082 
     4083                    self._state.following.pop() 
     4084 
     4085                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2919) 
     4086 
     4087                    if self._state.backtracking == 0: 
     4088                        pass 
     4089                        node = e  
    38014090 
    38024091 
     
    38124101        return node 
    38134102 
    3814     # $ANTLR end "expression" 
    3815  
    3816  
    3817  
    3818     # $ANTLR start "for_" 
    3819     # src/ll/UL4.g:538:1: for_ returns [node] : n= nestedname 'in' e= expr1 EOF ; 
    3820     def for_(self, ): 
    3821         node = None 
    3822  
    3823  
    3824         n = None 
    3825  
    3826         e = None 
    3827  
    3828  
    3829         try: 
    3830             try: 
    3831                 # src/ll/UL4.g:539:2: (n= nestedname 'in' e= expr1 EOF ) 
    3832                 # src/ll/UL4.g:540:3: n= nestedname 'in' e= expr1 EOF 
    3833                 pass  
    3834                 self._state.following.append(self.FOLLOW_nestedname_in_for_2776) 
    3835                 n = self.nestedname() 
    3836  
    3837                 self._state.following.pop() 
    3838  
    3839                 self.match(self.input, 54, self.FOLLOW_54_in_for_2780) 
    3840  
    3841                 self._state.following.append(self.FOLLOW_expr1_in_for_2786) 
    3842                 e = self.expr1() 
    3843  
    3844                 self._state.following.pop() 
    3845  
    3846                 if self._state.backtracking == 0: 
    3847                     pass 
    3848                     node = ul4c.For(self.location, n, e)  
    3849  
    3850  
    3851  
    3852                 self.match(self.input, EOF, self.FOLLOW_EOF_in_for_2792) 
    3853  
    3854  
    3855  
    3856  
    3857                         
    3858             except RecognitionException as e: 
    3859                 raise 
    3860  
    3861         finally: 
    3862             pass 
    3863         return node 
    3864  
    3865     # $ANTLR end "for_" 
    3866  
    3867  
    3868  
    3869     # $ANTLR start "statement" 
    3870     # src/ll/UL4.g:549:1: statement returns [node] : (nn= nestedname '=' e= expr1 EOF |n= name '+=' e= expr1 EOF |n= name '-=' e= expr1 EOF |n= name '*=' e= expr1 EOF |n= name '/=' e= expr1 EOF |n= name '//=' e= expr1 EOF |n= name '%=' e= expr1 EOF |e= expression EOF ); 
    3871     def statement(self, ): 
    3872         node = None 
    3873  
    3874  
    3875         nn = None 
    3876  
    3877         e = None 
    3878  
    3879         n = None 
    3880  
    3881  
    3882         try: 
    3883             try: 
    3884                 # src/ll/UL4.g:550:2: (nn= nestedname '=' e= expr1 EOF |n= name '+=' e= expr1 EOF |n= name '-=' e= expr1 EOF |n= name '*=' e= expr1 EOF |n= name '/=' e= expr1 EOF |n= name '//=' e= expr1 EOF |n= name '%=' e= expr1 EOF |e= expression EOF ) 
    3885                 alt48 = 8 
    3886                 LA48 = self.input.LA(1) 
    3887                 if LA48 == NAME: 
    3888                     LA48_1 = self.input.LA(2) 
    3889  
    3890                     if (self.synpred72_UL4()) : 
    3891                         alt48 = 1 
    3892                     elif (self.synpred73_UL4()) : 
    3893                         alt48 = 2 
    3894                     elif (self.synpred74_UL4()) : 
    3895                         alt48 = 3 
    3896                     elif (self.synpred75_UL4()) : 
    3897                         alt48 = 4 
    3898                     elif (self.synpred76_UL4()) : 
    3899                         alt48 = 5 
    3900                     elif (self.synpred77_UL4()) : 
    3901                         alt48 = 6 
    3902                     elif (self.synpred78_UL4()) : 
    3903                         alt48 = 7 
    3904                     elif (True) : 
    3905                         alt48 = 8 
    3906                     else: 
    3907                         if self._state.backtracking > 0: 
    3908                             raise BacktrackingFailed 
    3909  
    3910  
    3911                         nvae = NoViableAltException("", 48, 1, self.input) 
    3912  
    3913                         raise nvae 
    3914  
    3915  
    3916                 elif LA48 == 27: 
    3917                     LA48_2 = self.input.LA(2) 
    3918  
    3919                     if (self.synpred72_UL4()) : 
    3920                         alt48 = 1 
    3921                     elif (True) : 
    3922                         alt48 = 8 
    3923                     else: 
    3924                         if self._state.backtracking > 0: 
    3925                             raise BacktrackingFailed 
    3926  
    3927  
    3928                         nvae = NoViableAltException("", 48, 2, self.input) 
    3929  
    3930                         raise nvae 
    3931  
    3932  
    3933                 elif LA48 == COLOR or LA48 == DATE or LA48 == FALSE or LA48 == FLOAT or LA48 == INT or LA48 == NONE or LA48 == STRING or LA48 == TRUE or LA48 == 35 or LA48 == 49 or LA48 == 55 or LA48 == 57: 
    3934                     alt48 = 8 
    3935                 else: 
    3936                     if self._state.backtracking > 0: 
    3937                         raise BacktrackingFailed 
    3938  
    3939  
    3940                     nvae = NoViableAltException("", 48, 0, self.input) 
    3941  
    3942                     raise nvae 
    3943  
    3944  
    3945                 if alt48 == 1: 
    3946                     # src/ll/UL4.g:550:4: nn= nestedname '=' e= expr1 EOF 
    3947                     pass  
    3948                     self._state.following.append(self.FOLLOW_nestedname_in_statement2813) 
    3949                     nn = self.nestedname() 
    3950  
    3951                     self._state.following.pop() 
    3952  
    3953                     self.match(self.input, 45, self.FOLLOW_45_in_statement2815) 
    3954  
    3955                     self._state.following.append(self.FOLLOW_expr1_in_statement2819) 
    3956                     e = self.expr1() 
    3957  
    3958                     self._state.following.pop() 
    3959  
    3960                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2821) 
    3961  
    3962                     if self._state.backtracking == 0: 
    3963                         pass 
    3964                         node = ul4c.StoreVar(self.location, nn, e)  
    3965  
    3966  
    3967  
    3968  
    3969                 elif alt48 == 2: 
    3970                     # src/ll/UL4.g:551:4: n= name '+=' e= expr1 EOF 
    3971                     pass  
    3972                     self._state.following.append(self.FOLLOW_name_in_statement2830) 
    3973                     n = self.name() 
    3974  
    3975                     self._state.following.pop() 
    3976  
    3977                     self.match(self.input, 33, self.FOLLOW_33_in_statement2832) 
    3978  
    3979                     self._state.following.append(self.FOLLOW_expr1_in_statement2836) 
    3980                     e = self.expr1() 
    3981  
    3982                     self._state.following.pop() 
    3983  
    3984                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2838) 
    3985  
    3986                     if self._state.backtracking == 0: 
    3987                         pass 
    3988                         node = ul4c.AddVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
    3989  
    3990  
    3991  
    3992  
    3993                 elif alt48 == 3: 
    3994                     # src/ll/UL4.g:552:4: n= name '-=' e= expr1 EOF 
    3995                     pass  
    3996                     self._state.following.append(self.FOLLOW_name_in_statement2847) 
    3997                     n = self.name() 
    3998  
    3999                     self._state.following.pop() 
    4000  
    4001                     self.match(self.input, 36, self.FOLLOW_36_in_statement2849) 
    4002  
    4003                     self._state.following.append(self.FOLLOW_expr1_in_statement2853) 
    4004                     e = self.expr1() 
    4005  
    4006                     self._state.following.pop() 
    4007  
    4008                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2855) 
    4009  
    4010                     if self._state.backtracking == 0: 
    4011                         pass 
    4012                         node = ul4c.SubVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
    4013  
    4014  
    4015  
    4016  
    4017                 elif alt48 == 4: 
    4018                     # src/ll/UL4.g:553:4: n= name '*=' e= expr1 EOF 
    4019                     pass  
    4020                     self._state.following.append(self.FOLLOW_name_in_statement2864) 
    4021                     n = self.name() 
    4022  
    4023                     self._state.following.pop() 
    4024  
    4025                     self.match(self.input, 31, self.FOLLOW_31_in_statement2866) 
    4026  
    4027                     self._state.following.append(self.FOLLOW_expr1_in_statement2870) 
    4028                     e = self.expr1() 
    4029  
    4030                     self._state.following.pop() 
    4031  
    4032                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2872) 
    4033  
    4034                     if self._state.backtracking == 0: 
    4035                         pass 
    4036                         node = ul4c.MulVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
    4037  
    4038  
    4039  
    4040  
    4041                 elif alt48 == 5: 
    4042                     # src/ll/UL4.g:554:4: n= name '/=' e= expr1 EOF 
    4043                     pass  
    4044                     self._state.following.append(self.FOLLOW_name_in_statement2881) 
    4045                     n = self.name() 
    4046  
    4047                     self._state.following.pop() 
    4048  
    4049                     self.match(self.input, 41, self.FOLLOW_41_in_statement2883) 
    4050  
    4051                     self._state.following.append(self.FOLLOW_expr1_in_statement2887) 
    4052                     e = self.expr1() 
    4053  
    4054                     self._state.following.pop() 
    4055  
    4056                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2889) 
    4057  
    4058                     if self._state.backtracking == 0: 
    4059                         pass 
    4060                         node = ul4c.TrueDivVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
    4061  
    4062  
    4063  
    4064  
    4065                 elif alt48 == 6: 
    4066                     # src/ll/UL4.g:555:4: n= name '//=' e= expr1 EOF 
    4067                     pass  
    4068                     self._state.following.append(self.FOLLOW_name_in_statement2898) 
    4069                     n = self.name() 
    4070  
    4071                     self._state.following.pop() 
    4072  
    4073                     self.match(self.input, 40, self.FOLLOW_40_in_statement2900) 
    4074  
    4075                     self._state.following.append(self.FOLLOW_expr1_in_statement2904) 
    4076                     e = self.expr1() 
    4077  
    4078                     self._state.following.pop() 
    4079  
    4080                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2906) 
    4081  
    4082                     if self._state.backtracking == 0: 
    4083                         pass 
    4084                         node = ul4c.FloorDivVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
    4085  
    4086  
    4087  
    4088  
    4089                 elif alt48 == 7: 
    4090                     # src/ll/UL4.g:556:4: n= name '%=' e= expr1 EOF 
    4091                     pass  
    4092                     self._state.following.append(self.FOLLOW_name_in_statement2915) 
    4093                     n = self.name() 
    4094  
    4095                     self._state.following.pop() 
    4096  
    4097                     self.match(self.input, 26, self.FOLLOW_26_in_statement2917) 
    4098  
    4099                     self._state.following.append(self.FOLLOW_expr1_in_statement2921) 
    4100                     e = self.expr1() 
    4101  
    4102                     self._state.following.pop() 
    4103  
    4104                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2923) 
    4105  
    4106                     if self._state.backtracking == 0: 
    4107                         pass 
    4108                         node = ul4c.ModVar(self.location, ((n is not None) and [self.input.toString(n.start,n.stop)] or [None])[0], e)  
    4109  
    4110  
    4111  
    4112  
    4113                 elif alt48 == 8: 
    4114                     # src/ll/UL4.g:557:4: e= expression EOF 
    4115                     pass  
    4116                     self._state.following.append(self.FOLLOW_expression_in_statement2932) 
    4117                     e = self.expression() 
    4118  
    4119                     self._state.following.pop() 
    4120  
    4121                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement2934) 
    4122  
    4123                     if self._state.backtracking == 0: 
    4124                         pass 
    4125                         node = e  
    4126  
    4127  
    4128  
    4129  
    4130  
    4131                         
    4132             except RecognitionException as e: 
    4133                 raise 
    4134  
    4135         finally: 
    4136             pass 
    4137         return node 
    4138  
    41394103    # $ANTLR end "statement" 
     4104 
     4105    # $ANTLR start "synpred19_UL4" 
     4106    def synpred19_UL4_fragment(self, ): 
     4107        e_list = None 
     4108 
     4109 
     4110        # src/ll/UL4.g:289:4: (e_list= list ) 
     4111        # src/ll/UL4.g:289:4: e_list= list 
     4112        pass  
     4113        self._state.following.append(self.FOLLOW_list_in_synpred19_UL41370) 
     4114        e_list = self.list() 
     4115 
     4116        self._state.following.pop() 
     4117 
     4118 
     4119 
     4120    # $ANTLR end "synpred19_UL4" 
     4121 
     4122 
    41404123 
    41414124    # $ANTLR start "synpred20_UL4" 
    41424125    def synpred20_UL4_fragment(self, ): 
    4143         e_list = None 
    4144  
    4145  
    4146         # src/ll/UL4.g:292:4: (e_list= list ) 
    4147         # src/ll/UL4.g:292:4: e_list= list 
     4126        e_listcomp = None 
     4127 
     4128 
     4129        # src/ll/UL4.g:290:4: (e_listcomp= listcomprehension ) 
     4130        # src/ll/UL4.g:290:4: e_listcomp= listcomprehension 
    41484131        pass  
    4149         self._state.following.append(self.FOLLOW_list_in_synpred20_UL41385) 
    4150         e_list = self.list() 
     4132        self._state.following.append(self.FOLLOW_listcomprehension_in_synpred20_UL41379) 
     4133        e_listcomp = self.listcomprehension() 
    41514134 
    41524135        self._state.following.pop() 
     
    41604143    # $ANTLR start "synpred21_UL4" 
    41614144    def synpred21_UL4_fragment(self, ): 
    4162         e_listcomp = None 
    4163  
    4164  
    4165         # src/ll/UL4.g:293:4: (e_listcomp= listcomprehension ) 
    4166         # src/ll/UL4.g:293:4: e_listcomp= listcomprehension 
     4145        e_dict = None 
     4146 
     4147 
     4148        # src/ll/UL4.g:291:4: (e_dict= dict ) 
     4149        # src/ll/UL4.g:291:4: e_dict= dict 
    41674150        pass  
    4168         self._state.following.append(self.FOLLOW_listcomprehension_in_synpred21_UL41394) 
    4169         e_listcomp = self.listcomprehension() 
     4151        self._state.following.append(self.FOLLOW_dict_in_synpred21_UL41388) 
     4152        e_dict = self.dict() 
    41704153 
    41714154        self._state.following.pop() 
     
    41794162    # $ANTLR start "synpred22_UL4" 
    41804163    def synpred22_UL4_fragment(self, ): 
    4181         e_dict = None 
    4182  
    4183  
    4184         # src/ll/UL4.g:294:4: (e_dict= dict ) 
    4185         # src/ll/UL4.g:294:4: e_dict= dict 
     4164        e_dictcomp = None 
     4165 
     4166 
     4167        # src/ll/UL4.g:292:4: (e_dictcomp= dictcomprehension ) 
     4168        # src/ll/UL4.g:292:4: e_dictcomp= dictcomprehension 
    41864169        pass  
    4187         self._state.following.append(self.FOLLOW_dict_in_synpred22_UL41403) 
    4188         e_dict = self.dict() 
     4170        self._state.following.append(self.FOLLOW_dictcomprehension_in_synpred22_UL41397) 
     4171        e_dictcomp = self.dictcomprehension() 
    41894172 
    41904173        self._state.following.pop() 
     
    41984181    # $ANTLR start "synpred23_UL4" 
    41994182    def synpred23_UL4_fragment(self, ): 
    4200         e_dictcomp = None 
    4201  
    4202  
    4203         # src/ll/UL4.g:295:4: (e_dictcomp= dictcomprehension ) 
    4204         # src/ll/UL4.g:295:4: e_dictcomp= dictcomprehension 
     4183        e_genexpr = None 
     4184 
     4185 
     4186        # src/ll/UL4.g:293:4: ( '(' e_genexpr= generatorexpression ')' ) 
     4187        # src/ll/UL4.g:293:4: '(' e_genexpr= generatorexpression ')' 
    42054188        pass  
    4206         self._state.following.append(self.FOLLOW_dictcomprehension_in_synpred23_UL41412) 
    4207         e_dictcomp = self.dictcomprehension() 
     4189        self.match(self.input, 27, self.FOLLOW_27_in_synpred23_UL41404) 
     4190 
     4191        self._state.following.append(self.FOLLOW_generatorexpression_in_synpred23_UL41408) 
     4192        e_genexpr = self.generatorexpression() 
    42084193 
    42094194        self._state.following.pop() 
    42104195 
     4196        self.match(self.input, 28, self.FOLLOW_28_in_synpred23_UL41410) 
     4197 
    42114198 
    42124199 
     
    42154202 
    42164203 
    4217     # $ANTLR start "synpred24_UL4" 
    4218     def synpred24_UL4_fragment(self, ): 
    4219         e_genexpr = None 
    4220  
    4221  
    4222         # src/ll/UL4.g:296:4: ( '(' e_genexpr= generatorexpression ')' ) 
    4223         # src/ll/UL4.g:296:4: '(' e_genexpr= generatorexpression ')' 
     4204    # $ANTLR start "synpred25_UL4" 
     4205    def synpred25_UL4_fragment(self, ): 
     4206        n0 = None 
     4207 
     4208 
     4209        # src/ll/UL4.g:302:3: ( '(' n0= nestedname ',' ')' ) 
     4210        # src/ll/UL4.g:302:3: '(' n0= nestedname ',' ')' 
    42244211        pass  
    4225         self.match(self.input, 27, self.FOLLOW_27_in_synpred24_UL41419) 
    4226  
    4227         self._state.following.append(self.FOLLOW_generatorexpression_in_synpred24_UL41423) 
    4228         e_genexpr = self.generatorexpression() 
     4212        self.match(self.input, 27, self.FOLLOW_27_in_synpred25_UL41455) 
     4213 
     4214        self._state.following.append(self.FOLLOW_nestedname_in_synpred25_UL41459) 
     4215        n0 = self.nestedname() 
    42294216 
    42304217        self._state.following.pop() 
    42314218 
    4232         self.match(self.input, 28, self.FOLLOW_28_in_synpred24_UL41425) 
    4233  
    4234  
    4235  
    4236     # $ANTLR end "synpred24_UL4" 
    4237  
    4238  
    4239  
    4240     # $ANTLR start "synpred26_UL4" 
    4241     def synpred26_UL4_fragment(self, ): 
    4242         n0 = None 
    4243  
    4244  
    4245         # src/ll/UL4.g:305:3: ( '(' n0= nestedname ',' ')' ) 
    4246         # src/ll/UL4.g:305:3: '(' n0= nestedname ',' ')' 
     4219        self.match(self.input, 34, self.FOLLOW_34_in_synpred25_UL41461) 
     4220 
     4221        self.match(self.input, 28, self.FOLLOW_28_in_synpred25_UL41463) 
     4222 
     4223 
     4224 
     4225    # $ANTLR end "synpred25_UL4" 
     4226 
     4227 
     4228 
     4229    # $ANTLR start "synpred69_UL4" 
     4230    def synpred69_UL4_fragment(self, ): 
     4231        ege = None 
     4232 
     4233 
     4234        # src/ll/UL4.g:523:4: (ege= generatorexpression ) 
     4235        # src/ll/UL4.g:523:4: ege= generatorexpression 
    42474236        pass  
    4248         self.match(self.input, 27, self.FOLLOW_27_in_synpred26_UL41470) 
    4249  
    4250         self._state.following.append(self.FOLLOW_nestedname_in_synpred26_UL41474) 
    4251         n0 = self.nestedname() 
     4237        self._state.following.append(self.FOLLOW_generatorexpression_in_synpred69_UL42695) 
     4238        ege = self.generatorexpression() 
    42524239 
    42534240        self._state.following.pop() 
    42544241 
    4255         self.match(self.input, 34, self.FOLLOW_34_in_synpred26_UL41476) 
    4256  
    4257         self.match(self.input, 28, self.FOLLOW_28_in_synpred26_UL41478) 
    4258  
    4259  
    4260  
    4261     # $ANTLR end "synpred26_UL4" 
     4242 
     4243 
     4244    # $ANTLR end "synpred69_UL4" 
    42624245 
    42634246 
     
    42684251 
    42694252 
    4270         # src/ll/UL4.g:526:4: (ege= generatorexpression ) 
    4271         # src/ll/UL4.g:526:4: ege= generatorexpression 
     4253        # src/ll/UL4.g:528:4: (ege= generatorexpression EOF ) 
     4254        # src/ll/UL4.g:528:4: ege= generatorexpression EOF 
    42724255        pass  
    4273         self._state.following.append(self.FOLLOW_generatorexpression_in_synpred70_UL42710) 
     4256        self._state.following.append(self.FOLLOW_generatorexpression_in_synpred70_UL42723) 
    42744257        ege = self.generatorexpression() 
    42754258 
    42764259        self._state.following.pop() 
     4260 
     4261        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred70_UL42725) 
    42774262 
    42784263 
     
    42844269    # $ANTLR start "synpred71_UL4" 
    42854270    def synpred71_UL4_fragment(self, ): 
    4286         ege = None 
    4287  
    4288  
    4289         # src/ll/UL4.g:531:4: (ege= generatorexpression EOF ) 
    4290         # src/ll/UL4.g:531:4: ege= generatorexpression EOF 
     4271        nn = None 
     4272 
     4273        e = None 
     4274 
     4275 
     4276        # src/ll/UL4.g:547:4: (nn= nestedname '=' e= expr1 EOF ) 
     4277        # src/ll/UL4.g:547:4: nn= nestedname '=' e= expr1 EOF 
    42914278        pass  
    4292         self._state.following.append(self.FOLLOW_generatorexpression_in_synpred71_UL42738) 
    4293         ege = self.generatorexpression() 
     4279        self._state.following.append(self.FOLLOW_nestedname_in_synpred71_UL42798) 
     4280        nn = self.nestedname() 
    42944281 
    42954282        self._state.following.pop() 
    42964283 
    4297         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred71_UL42740) 
     4284        self.match(self.input, 45, self.FOLLOW_45_in_synpred71_UL42800) 
     4285 
     4286        self._state.following.append(self.FOLLOW_expr1_in_synpred71_UL42804) 
     4287        e = self.expr1() 
     4288 
     4289        self._state.following.pop() 
     4290 
     4291        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred71_UL42806) 
    42984292 
    42994293 
     
    43054299    # $ANTLR start "synpred72_UL4" 
    43064300    def synpred72_UL4_fragment(self, ): 
    4307         nn = None 
     4301        n = None 
    43084302 
    43094303        e = None 
    43104304 
    43114305 
    4312         # src/ll/UL4.g:550:4: (nn= nestedname '=' e= expr1 EOF ) 
    4313         # src/ll/UL4.g:550:4: nn= nestedname '=' e= expr1 EOF 
     4306        # src/ll/UL4.g:548:4: (n= name '+=' e= expr1 EOF ) 
     4307        # src/ll/UL4.g:548:4: n= name '+=' e= expr1 EOF 
    43144308        pass  
    4315         self._state.following.append(self.FOLLOW_nestedname_in_synpred72_UL42813) 
    4316         nn = self.nestedname() 
     4309        self._state.following.append(self.FOLLOW_name_in_synpred72_UL42815) 
     4310        n = self.name() 
    43174311 
    43184312        self._state.following.pop() 
    43194313 
    4320         self.match(self.input, 45, self.FOLLOW_45_in_synpred72_UL42815) 
    4321  
    4322         self._state.following.append(self.FOLLOW_expr1_in_synpred72_UL42819) 
     4314        self.match(self.input, 33, self.FOLLOW_33_in_synpred72_UL42817) 
     4315 
     4316        self._state.following.append(self.FOLLOW_expr1_in_synpred72_UL42821) 
    43234317        e = self.expr1() 
    43244318 
    43254319        self._state.following.pop() 
    43264320 
    4327         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred72_UL42821) 
     4321        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred72_UL42823) 
    43284322 
    43294323 
     
    43404334 
    43414335 
    4342         # src/ll/UL4.g:551:4: (n= name '+=' e= expr1 EOF ) 
    4343         # src/ll/UL4.g:551:4: n= name '+=' e= expr1 EOF 
     4336        # src/ll/UL4.g:549:4: (n= name '-=' e= expr1 EOF ) 
     4337        # src/ll/UL4.g:549:4: n= name '-=' e= expr1 EOF 
    43444338        pass  
    4345         self._state.following.append(self.FOLLOW_name_in_synpred73_UL42830) 
     4339        self._state.following.append(self.FOLLOW_name_in_synpred73_UL42832) 
    43464340        n = self.name() 
    43474341 
    43484342        self._state.following.pop() 
    43494343 
    4350         self.match(self.input, 33, self.FOLLOW_33_in_synpred73_UL42832) 
    4351  
    4352         self._state.following.append(self.FOLLOW_expr1_in_synpred73_UL42836) 
     4344        self.match(self.input, 36, self.FOLLOW_36_in_synpred73_UL42834) 
     4345 
     4346        self._state.following.append(self.FOLLOW_expr1_in_synpred73_UL42838) 
    43534347        e = self.expr1() 
    43544348 
    43554349        self._state.following.pop() 
    43564350 
    4357         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred73_UL42838) 
     4351        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred73_UL42840) 
    43584352 
    43594353 
     
    43704364 
    43714365 
    4372         # src/ll/UL4.g:552:4: (n= name '-=' e= expr1 EOF ) 
    4373         # src/ll/UL4.g:552:4: n= name '-=' e= expr1 EOF 
     4366        # src/ll/UL4.g:550:4: (n= name '*=' e= expr1 EOF ) 
     4367        # src/ll/UL4.g:550:4: n= name '*=' e= expr1 EOF 
    43744368        pass  
    4375         self._state.following.append(self.FOLLOW_name_in_synpred74_UL42847) 
     4369        self._state.following.append(self.FOLLOW_name_in_synpred74_UL42849) 
    43764370        n = self.name() 
    43774371 
    43784372        self._state.following.pop() 
    43794373 
    4380         self.match(self.input, 36, self.FOLLOW_36_in_synpred74_UL42849) 
    4381  
    4382         self._state.following.append(self.FOLLOW_expr1_in_synpred74_UL42853) 
     4374        self.match(self.input, 31, self.FOLLOW_31_in_synpred74_UL42851) 
     4375 
     4376        self._state.following.append(self.FOLLOW_expr1_in_synpred74_UL42855) 
    43834377        e = self.expr1() 
    43844378 
    43854379        self._state.following.pop() 
    43864380 
    4387         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred74_UL42855) 
     4381        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred74_UL42857) 
    43884382 
    43894383 
     
    44004394 
    44014395 
    4402         # src/ll/UL4.g:553:4: (n= name '*=' e= expr1 EOF ) 
    4403         # src/ll/UL4.g:553:4: n= name '*=' e= expr1 EOF 
     4396        # src/ll/UL4.g:551:4: (n= name '/=' e= expr1 EOF ) 
     4397        # src/ll/UL4.g:551:4: n= name '/=' e= expr1 EOF 
    44044398        pass  
    4405         self._state.following.append(self.FOLLOW_name_in_synpred75_UL42864) 
     4399        self._state.following.append(self.FOLLOW_name_in_synpred75_UL42866) 
    44064400        n = self.name() 
    44074401 
    44084402        self._state.following.pop() 
    44094403 
    4410         self.match(self.input, 31, self.FOLLOW_31_in_synpred75_UL42866) 
    4411  
    4412         self._state.following.append(self.FOLLOW_expr1_in_synpred75_UL42870) 
     4404        self.match(self.input, 41, self.FOLLOW_41_in_synpred75_UL42868) 
     4405 
     4406        self._state.following.append(self.FOLLOW_expr1_in_synpred75_UL42872) 
    44134407        e = self.expr1() 
    44144408 
    44154409        self._state.following.pop() 
    44164410 
    4417         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred75_UL42872) 
     4411        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred75_UL42874) 
    44184412 
    44194413 
     
    44304424 
    44314425 
    4432         # src/ll/UL4.g:554:4: (n= name '/=' e= expr1 EOF ) 
    4433         # src/ll/UL4.g:554:4: n= name '/=' e= expr1 EOF 
     4426        # src/ll/UL4.g:552:4: (n= name '//=' e= expr1 EOF ) 
     4427        # src/ll/UL4.g:552:4: n= name '//=' e= expr1 EOF 
    44344428        pass  
    4435         self._state.following.append(self.FOLLOW_name_in_synpred76_UL42881) 
     4429        self._state.following.append(self.FOLLOW_name_in_synpred76_UL42883) 
    44364430        n = self.name() 
    44374431 
    44384432        self._state.following.pop() 
    44394433 
    4440         self.match(self.input, 41, self.FOLLOW_41_in_synpred76_UL42883) 
    4441  
    4442         self._state.following.append(self.FOLLOW_expr1_in_synpred76_UL42887) 
     4434        self.match(self.input, 40, self.FOLLOW_40_in_synpred76_UL42885) 
     4435 
     4436        self._state.following.append(self.FOLLOW_expr1_in_synpred76_UL42889) 
    44434437        e = self.expr1() 
    44444438 
    44454439        self._state.following.pop() 
    44464440 
    4447         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred76_UL42889) 
     4441        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred76_UL42891) 
    44484442 
    44494443 
     
    44604454 
    44614455 
    4462         # src/ll/UL4.g:555:4: (n= name '//=' e= expr1 EOF ) 
    4463         # src/ll/UL4.g:555:4: n= name '//=' e= expr1 EOF 
     4456        # src/ll/UL4.g:553:4: (n= name '%=' e= expr1 EOF ) 
     4457        # src/ll/UL4.g:553:4: n= name '%=' e= expr1 EOF 
    44644458        pass  
    4465         self._state.following.append(self.FOLLOW_name_in_synpred77_UL42898) 
     4459        self._state.following.append(self.FOLLOW_name_in_synpred77_UL42900) 
    44664460        n = self.name() 
    44674461 
    44684462        self._state.following.pop() 
    44694463 
    4470         self.match(self.input, 40, self.FOLLOW_40_in_synpred77_UL42900) 
    4471  
    4472         self._state.following.append(self.FOLLOW_expr1_in_synpred77_UL42904) 
     4464        self.match(self.input, 26, self.FOLLOW_26_in_synpred77_UL42902) 
     4465 
     4466        self._state.following.append(self.FOLLOW_expr1_in_synpred77_UL42906) 
    44734467        e = self.expr1() 
    44744468 
    44754469        self._state.following.pop() 
    44764470 
    4477         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred77_UL42906) 
     4471        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred77_UL42908) 
    44784472 
    44794473 
    44804474 
    44814475    # $ANTLR end "synpred77_UL4" 
    4482  
    4483  
    4484  
    4485     # $ANTLR start "synpred78_UL4" 
    4486     def synpred78_UL4_fragment(self, ): 
    4487         n = None 
    4488  
    4489         e = None 
    4490  
    4491  
    4492         # src/ll/UL4.g:556:4: (n= name '%=' e= expr1 EOF ) 
    4493         # src/ll/UL4.g:556:4: n= name '%=' e= expr1 EOF 
    4494         pass  
    4495         self._state.following.append(self.FOLLOW_name_in_synpred78_UL42915) 
    4496         n = self.name() 
    4497  
    4498         self._state.following.pop() 
    4499  
    4500         self.match(self.input, 26, self.FOLLOW_26_in_synpred78_UL42917) 
    4501  
    4502         self._state.following.append(self.FOLLOW_expr1_in_synpred78_UL42921) 
    4503         e = self.expr1() 
    4504  
    4505         self._state.following.pop() 
    4506  
    4507         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred78_UL42923) 
    4508  
    4509  
    4510  
    4511     # $ANTLR end "synpred78_UL4" 
    45124476 
    45134477 
     
    45404504        return success 
    45414505 
    4542     def synpred78_UL4(self): 
    4543         self._state.backtracking += 1 
    4544         start = self.input.mark() 
    4545         try: 
    4546             self.synpred78_UL4_fragment() 
    4547         except BacktrackingFailed: 
    4548             success = False 
    4549         else: 
    4550             success = True 
    4551         self.input.rewind(start) 
    4552         self._state.backtracking -= 1 
    4553         return success 
    4554  
    45554506    def synpred77_UL4(self): 
    45564507        self._state.backtracking += 1 
     
    45794530        return success 
    45804531 
    4581     def synpred24_UL4(self): 
    4582         self._state.backtracking += 1 
    4583         start = self.input.mark() 
    4584         try: 
    4585             self.synpred24_UL4_fragment() 
    4586         except BacktrackingFailed: 
    4587             success = False 
    4588         else: 
    4589             success = True 
    4590         self.input.rewind(start) 
    4591         self._state.backtracking -= 1 
    4592         return success 
    4593  
    45944532    def synpred75_UL4(self): 
    45954533        self._state.backtracking += 1 
     
    46314569        return success 
    46324570 
    4633     def synpred26_UL4(self): 
    4634         self._state.backtracking += 1 
    4635         start = self.input.mark() 
    4636         try: 
    4637             self.synpred26_UL4_fragment() 
    4638         except BacktrackingFailed: 
    4639             success = False 
    4640         else: 
    4641             success = True 
    4642         self.input.rewind(start) 
    4643         self._state.backtracking -= 1 
    4644         return success 
    4645  
    46464571    def synpred72_UL4(self): 
    46474572        self._state.backtracking += 1 
     
    46574582        return success 
    46584583 
     4584    def synpred69_UL4(self): 
     4585        self._state.backtracking += 1 
     4586        start = self.input.mark() 
     4587        try: 
     4588            self.synpred69_UL4_fragment() 
     4589        except BacktrackingFailed: 
     4590            success = False 
     4591        else: 
     4592            success = True 
     4593        self.input.rewind(start) 
     4594        self._state.backtracking -= 1 
     4595        return success 
     4596 
     4597    def synpred19_UL4(self): 
     4598        self._state.backtracking += 1 
     4599        start = self.input.mark() 
     4600        try: 
     4601            self.synpred19_UL4_fragment() 
     4602        except BacktrackingFailed: 
     4603            success = False 
     4604        else: 
     4605            success = True 
     4606        self.input.rewind(start) 
     4607        self._state.backtracking -= 1 
     4608        return success 
     4609 
    46594610    def synpred71_UL4(self): 
    46604611        self._state.backtracking += 1 
     
    46884639        try: 
    46894640            self.synpred73_UL4_fragment() 
     4641        except BacktrackingFailed: 
     4642            success = False 
     4643        else: 
     4644            success = True 
     4645        self.input.rewind(start) 
     4646        self._state.backtracking -= 1 
     4647        return success 
     4648 
     4649    def synpred25_UL4(self): 
     4650        self._state.backtracking += 1 
     4651        start = self.input.mark() 
     4652        try: 
     4653            self.synpred25_UL4_fragment() 
    46904654        except BacktrackingFailed: 
    46914655            success = False 
     
    47514715    FOLLOW_42_in_dictitem1104 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    47524716    FOLLOW_expr1_in_dictitem1110 = frozenset([1]) 
    4753     FOLLOW_30_in_dictitem1119 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4754     FOLLOW_expr1_in_dictitem1125 = frozenset([1]) 
    4755     FOLLOW_57_in_dict1144 = frozenset([58]) 
    4756     FOLLOW_58_in_dict1148 = frozenset([1]) 
    4757     FOLLOW_57_in_dict1157 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 30, 35, 49, 55, 57]) 
    4758     FOLLOW_dictitem_in_dict1165 = frozenset([34, 58]) 
    4759     FOLLOW_34_in_dict1176 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 30, 35, 49, 55, 57]) 
    4760     FOLLOW_dictitem_in_dict1183 = frozenset([34, 58]) 
    4761     FOLLOW_34_in_dict1194 = frozenset([58]) 
    4762     FOLLOW_58_in_dict1199 = frozenset([1]) 
    4763     FOLLOW_57_in_dictcomprehension1223 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4764     FOLLOW_expr1_in_dictcomprehension1229 = frozenset([42]) 
    4765     FOLLOW_42_in_dictcomprehension1233 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4766     FOLLOW_expr1_in_dictcomprehension1239 = frozenset([52]) 
    4767     FOLLOW_52_in_dictcomprehension1243 = frozenset([14, 27]) 
    4768     FOLLOW_nestedname_in_dictcomprehension1249 = frozenset([54]) 
    4769     FOLLOW_54_in_dictcomprehension1253 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4770     FOLLOW_expr1_in_dictcomprehension1259 = frozenset([53, 58]) 
    4771     FOLLOW_53_in_dictcomprehension1268 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4772     FOLLOW_expr1_in_dictcomprehension1275 = frozenset([58]) 
    4773     FOLLOW_58_in_dictcomprehension1286 = frozenset([1]) 
    4774     FOLLOW_expr1_in_generatorexpression1314 = frozenset([52]) 
    4775     FOLLOW_52_in_generatorexpression1318 = frozenset([14, 27]) 
    4776     FOLLOW_nestedname_in_generatorexpression1324 = frozenset([54]) 
    4777     FOLLOW_54_in_generatorexpression1328 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4778     FOLLOW_expr1_in_generatorexpression1334 = frozenset([1, 53]) 
    4779     FOLLOW_53_in_generatorexpression1343 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4780     FOLLOW_expr1_in_generatorexpression1350 = frozenset([1]) 
    4781     FOLLOW_literal_in_atom1376 = frozenset([1]) 
    4782     FOLLOW_list_in_atom1385 = frozenset([1]) 
    4783     FOLLOW_listcomprehension_in_atom1394 = frozenset([1]) 
    4784     FOLLOW_dict_in_atom1403 = frozenset([1]) 
    4785     FOLLOW_dictcomprehension_in_atom1412 = frozenset([1]) 
    4786     FOLLOW_27_in_atom1419 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4787     FOLLOW_generatorexpression_in_atom1423 = frozenset([28]) 
    4788     FOLLOW_28_in_atom1425 = frozenset([1]) 
    4789     FOLLOW_27_in_atom1432 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4790     FOLLOW_expr1_in_atom1436 = frozenset([28]) 
    4791     FOLLOW_28_in_atom1438 = frozenset([1]) 
    4792     FOLLOW_name_in_nestedname1461 = frozenset([1]) 
    4793     FOLLOW_27_in_nestedname1470 = frozenset([14, 27]) 
    4794     FOLLOW_nestedname_in_nestedname1474 = frozenset([34]) 
    4795     FOLLOW_34_in_nestedname1476 = frozenset([28]) 
    4796     FOLLOW_28_in_nestedname1478 = frozenset([1]) 
    4797     FOLLOW_27_in_nestedname1487 = frozenset([14, 27]) 
    4798     FOLLOW_nestedname_in_nestedname1493 = frozenset([34]) 
    4799     FOLLOW_34_in_nestedname1497 = frozenset([14, 27]) 
    4800     FOLLOW_nestedname_in_nestedname1503 = frozenset([28, 34]) 
    4801     FOLLOW_34_in_nestedname1514 = frozenset([14, 27]) 
    4802     FOLLOW_nestedname_in_nestedname1521 = frozenset([28, 34]) 
    4803     FOLLOW_34_in_nestedname1532 = frozenset([28]) 
    4804     FOLLOW_28_in_nestedname1537 = frozenset([1]) 
    4805     FOLLOW_atom_in_expr91566 = frozenset([1, 27, 37, 49]) 
    4806     FOLLOW_37_in_expr91582 = frozenset([14]) 
    4807     FOLLOW_name_in_expr91589 = frozenset([1, 27, 37, 49]) 
    4808     FOLLOW_27_in_expr91605 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 28, 29, 30, 35, 49, 55, 57]) 
    4809     FOLLOW_30_in_expr91635 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4810     FOLLOW_exprarg_in_expr91639 = frozenset([28, 34]) 
    4811     FOLLOW_34_in_expr91647 = frozenset([28]) 
    4812     FOLLOW_29_in_expr91665 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4813     FOLLOW_exprarg_in_expr91669 = frozenset([28, 34]) 
    4814     FOLLOW_34_in_expr91684 = frozenset([30]) 
    4815     FOLLOW_30_in_expr91691 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4816     FOLLOW_exprarg_in_expr91695 = frozenset([28, 34]) 
    4817     FOLLOW_34_in_expr91710 = frozenset([28]) 
    4818     FOLLOW_exprarg_in_expr91730 = frozenset([28, 34]) 
    4819     FOLLOW_34_in_expr91745 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4820     FOLLOW_exprarg_in_expr91754 = frozenset([28, 34]) 
    4821     FOLLOW_34_in_expr91776 = frozenset([14]) 
    4822     FOLLOW_name_in_expr91785 = frozenset([45]) 
    4823     FOLLOW_45_in_expr91787 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4824     FOLLOW_exprarg_in_expr91791 = frozenset([28, 34]) 
    4825     FOLLOW_34_in_expr91813 = frozenset([29]) 
    4826     FOLLOW_29_in_expr91820 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4827     FOLLOW_exprarg_in_expr91824 = frozenset([28, 34]) 
    4828     FOLLOW_34_in_expr91846 = frozenset([30]) 
    4829     FOLLOW_30_in_expr91853 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4830     FOLLOW_exprarg_in_expr91857 = frozenset([28, 34]) 
    4831     FOLLOW_34_in_expr91872 = frozenset([28]) 
    4832     FOLLOW_name_in_expr91892 = frozenset([45]) 
    4833     FOLLOW_45_in_expr91894 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4834     FOLLOW_exprarg_in_expr91898 = frozenset([28, 34]) 
    4835     FOLLOW_34_in_expr91913 = frozenset([14]) 
    4836     FOLLOW_name_in_expr91922 = frozenset([45]) 
    4837     FOLLOW_45_in_expr91924 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4838     FOLLOW_exprarg_in_expr91928 = frozenset([28, 34]) 
    4839     FOLLOW_34_in_expr91950 = frozenset([29]) 
    4840     FOLLOW_29_in_expr91957 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4841     FOLLOW_exprarg_in_expr91961 = frozenset([28, 34]) 
    4842     FOLLOW_34_in_expr91983 = frozenset([30]) 
    4843     FOLLOW_30_in_expr91990 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4844     FOLLOW_exprarg_in_expr91994 = frozenset([28, 34]) 
    4845     FOLLOW_34_in_expr92009 = frozenset([28]) 
    4846     FOLLOW_28_in_expr92020 = frozenset([1, 27, 37, 49]) 
    4847     FOLLOW_49_in_expr92034 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 42, 49, 55, 57]) 
    4848     FOLLOW_42_in_expr92045 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 50, 55, 57]) 
    4849     FOLLOW_expr1_in_expr92060 = frozenset([50]) 
    4850     FOLLOW_expr1_in_expr92084 = frozenset([42, 50]) 
    4851     FOLLOW_42_in_expr92099 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 50, 55, 57]) 
    4852     FOLLOW_expr1_in_expr92118 = frozenset([50]) 
    4853     FOLLOW_50_in_expr92147 = frozenset([1, 27, 37, 49]) 
    4854     FOLLOW_35_in_expr82183 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4855     FOLLOW_expr9_in_expr82196 = frozenset([1]) 
    4856     FOLLOW_expr8_in_expr72219 = frozenset([1, 25, 29, 38, 39]) 
    4857     FOLLOW_29_in_expr72236 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4858     FOLLOW_38_in_expr72249 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4859     FOLLOW_39_in_expr72262 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4860     FOLLOW_25_in_expr72275 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4861     FOLLOW_expr8_in_expr72289 = frozenset([1, 25, 29, 38, 39]) 
    4862     FOLLOW_expr7_in_expr62317 = frozenset([1, 32, 35]) 
    4863     FOLLOW_32_in_expr62334 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4864     FOLLOW_35_in_expr62347 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4865     FOLLOW_expr7_in_expr62361 = frozenset([1, 32, 35]) 
    4866     FOLLOW_expr6_in_expr52389 = frozenset([1, 24, 43, 44, 46, 47, 48]) 
    4867     FOLLOW_46_in_expr52406 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4868     FOLLOW_24_in_expr52419 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4869     FOLLOW_43_in_expr52432 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4870     FOLLOW_44_in_expr52445 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4871     FOLLOW_47_in_expr52458 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4872     FOLLOW_48_in_expr52471 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4873     FOLLOW_expr6_in_expr52485 = frozenset([1, 24, 43, 44, 46, 47, 48]) 
    4874     FOLLOW_expr5_in_expr42513 = frozenset([1, 54, 55]) 
    4875     FOLLOW_55_in_expr42535 = frozenset([54]) 
    4876     FOLLOW_54_in_expr42548 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4877     FOLLOW_expr5_in_expr42555 = frozenset([1]) 
    4878     FOLLOW_55_in_expr32581 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
    4879     FOLLOW_expr4_in_expr32587 = frozenset([1]) 
    4880     FOLLOW_expr4_in_expr32598 = frozenset([1]) 
    4881     FOLLOW_expr3_in_expr22622 = frozenset([1, 51]) 
    4882     FOLLOW_51_in_expr22633 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4883     FOLLOW_expr3_in_expr22640 = frozenset([1, 51]) 
    4884     FOLLOW_expr2_in_expr12668 = frozenset([1, 56]) 
    4885     FOLLOW_56_in_expr12679 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4886     FOLLOW_expr2_in_expr12686 = frozenset([1, 56]) 
    4887     FOLLOW_generatorexpression_in_exprarg2710 = frozenset([1]) 
    4888     FOLLOW_expr1_in_exprarg2719 = frozenset([1]) 
    4889     FOLLOW_generatorexpression_in_expression2738 = frozenset([]) 
    4890     FOLLOW_EOF_in_expression2740 = frozenset([1]) 
    4891     FOLLOW_expr1_in_expression2749 = frozenset([]) 
    4892     FOLLOW_EOF_in_expression2751 = frozenset([1]) 
    4893     FOLLOW_nestedname_in_for_2776 = frozenset([54]) 
    4894     FOLLOW_54_in_for_2780 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4895     FOLLOW_expr1_in_for_2786 = frozenset([]) 
    4896     FOLLOW_EOF_in_for_2792 = frozenset([1]) 
    4897     FOLLOW_nestedname_in_statement2813 = frozenset([45]) 
    4898     FOLLOW_45_in_statement2815 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4899     FOLLOW_expr1_in_statement2819 = frozenset([]) 
    4900     FOLLOW_EOF_in_statement2821 = frozenset([1]) 
    4901     FOLLOW_name_in_statement2830 = frozenset([33]) 
    4902     FOLLOW_33_in_statement2832 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4903     FOLLOW_expr1_in_statement2836 = frozenset([]) 
    4904     FOLLOW_EOF_in_statement2838 = frozenset([1]) 
    4905     FOLLOW_name_in_statement2847 = frozenset([36]) 
    4906     FOLLOW_36_in_statement2849 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4907     FOLLOW_expr1_in_statement2853 = frozenset([]) 
    4908     FOLLOW_EOF_in_statement2855 = frozenset([1]) 
    4909     FOLLOW_name_in_statement2864 = frozenset([31]) 
    4910     FOLLOW_31_in_statement2866 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4911     FOLLOW_expr1_in_statement2870 = frozenset([]) 
    4912     FOLLOW_EOF_in_statement2872 = frozenset([1]) 
    4913     FOLLOW_name_in_statement2881 = frozenset([41]) 
    4914     FOLLOW_41_in_statement2883 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4915     FOLLOW_expr1_in_statement2887 = frozenset([]) 
    4916     FOLLOW_EOF_in_statement2889 = frozenset([1]) 
    4917     FOLLOW_name_in_statement2898 = frozenset([40]) 
    4918     FOLLOW_40_in_statement2900 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4919     FOLLOW_expr1_in_statement2904 = frozenset([]) 
    4920     FOLLOW_EOF_in_statement2906 = frozenset([1]) 
    4921     FOLLOW_name_in_statement2915 = frozenset([26]) 
    4922     FOLLOW_26_in_statement2917 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4923     FOLLOW_expr1_in_statement2921 = frozenset([]) 
    4924     FOLLOW_EOF_in_statement2923 = frozenset([1]) 
    4925     FOLLOW_expression_in_statement2932 = frozenset([]) 
    4926     FOLLOW_EOF_in_statement2934 = frozenset([1]) 
    4927     FOLLOW_list_in_synpred20_UL41385 = frozenset([1]) 
    4928     FOLLOW_listcomprehension_in_synpred21_UL41394 = frozenset([1]) 
    4929     FOLLOW_dict_in_synpred22_UL41403 = frozenset([1]) 
    4930     FOLLOW_dictcomprehension_in_synpred23_UL41412 = frozenset([1]) 
    4931     FOLLOW_27_in_synpred24_UL41419 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4932     FOLLOW_generatorexpression_in_synpred24_UL41423 = frozenset([28]) 
    4933     FOLLOW_28_in_synpred24_UL41425 = frozenset([1]) 
    4934     FOLLOW_27_in_synpred26_UL41470 = frozenset([14, 27]) 
    4935     FOLLOW_nestedname_in_synpred26_UL41474 = frozenset([34]) 
    4936     FOLLOW_34_in_synpred26_UL41476 = frozenset([28]) 
    4937     FOLLOW_28_in_synpred26_UL41478 = frozenset([1]) 
    4938     FOLLOW_generatorexpression_in_synpred70_UL42710 = frozenset([1]) 
    4939     FOLLOW_generatorexpression_in_synpred71_UL42738 = frozenset([]) 
    4940     FOLLOW_EOF_in_synpred71_UL42740 = frozenset([1]) 
    4941     FOLLOW_nestedname_in_synpred72_UL42813 = frozenset([45]) 
    4942     FOLLOW_45_in_synpred72_UL42815 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4943     FOLLOW_expr1_in_synpred72_UL42819 = frozenset([]) 
    4944     FOLLOW_EOF_in_synpred72_UL42821 = frozenset([1]) 
    4945     FOLLOW_name_in_synpred73_UL42830 = frozenset([33]) 
    4946     FOLLOW_33_in_synpred73_UL42832 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4947     FOLLOW_expr1_in_synpred73_UL42836 = frozenset([]) 
    4948     FOLLOW_EOF_in_synpred73_UL42838 = frozenset([1]) 
    4949     FOLLOW_name_in_synpred74_UL42847 = frozenset([36]) 
    4950     FOLLOW_36_in_synpred74_UL42849 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4951     FOLLOW_expr1_in_synpred74_UL42853 = frozenset([]) 
    4952     FOLLOW_EOF_in_synpred74_UL42855 = frozenset([1]) 
    4953     FOLLOW_name_in_synpred75_UL42864 = frozenset([31]) 
    4954     FOLLOW_31_in_synpred75_UL42866 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4955     FOLLOW_expr1_in_synpred75_UL42870 = frozenset([]) 
    4956     FOLLOW_EOF_in_synpred75_UL42872 = frozenset([1]) 
    4957     FOLLOW_name_in_synpred76_UL42881 = frozenset([41]) 
    4958     FOLLOW_41_in_synpred76_UL42883 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4959     FOLLOW_expr1_in_synpred76_UL42887 = frozenset([]) 
    4960     FOLLOW_EOF_in_synpred76_UL42889 = frozenset([1]) 
    4961     FOLLOW_name_in_synpred77_UL42898 = frozenset([40]) 
    4962     FOLLOW_40_in_synpred77_UL42900 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4963     FOLLOW_expr1_in_synpred77_UL42904 = frozenset([]) 
    4964     FOLLOW_EOF_in_synpred77_UL42906 = frozenset([1]) 
    4965     FOLLOW_name_in_synpred78_UL42915 = frozenset([26]) 
    4966     FOLLOW_26_in_synpred78_UL42917 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
    4967     FOLLOW_expr1_in_synpred78_UL42921 = frozenset([]) 
    4968     FOLLOW_EOF_in_synpred78_UL42923 = frozenset([1]) 
     4717    FOLLOW_57_in_dict1129 = frozenset([58]) 
     4718    FOLLOW_58_in_dict1133 = frozenset([1]) 
     4719    FOLLOW_57_in_dict1142 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4720    FOLLOW_dictitem_in_dict1150 = frozenset([34, 58]) 
     4721    FOLLOW_34_in_dict1161 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4722    FOLLOW_dictitem_in_dict1168 = frozenset([34, 58]) 
     4723    FOLLOW_34_in_dict1179 = frozenset([58]) 
     4724    FOLLOW_58_in_dict1184 = frozenset([1]) 
     4725    FOLLOW_57_in_dictcomprehension1208 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4726    FOLLOW_expr1_in_dictcomprehension1214 = frozenset([42]) 
     4727    FOLLOW_42_in_dictcomprehension1218 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4728    FOLLOW_expr1_in_dictcomprehension1224 = frozenset([52]) 
     4729    FOLLOW_52_in_dictcomprehension1228 = frozenset([14, 27]) 
     4730    FOLLOW_nestedname_in_dictcomprehension1234 = frozenset([54]) 
     4731    FOLLOW_54_in_dictcomprehension1238 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4732    FOLLOW_expr1_in_dictcomprehension1244 = frozenset([53, 58]) 
     4733    FOLLOW_53_in_dictcomprehension1253 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4734    FOLLOW_expr1_in_dictcomprehension1260 = frozenset([58]) 
     4735    FOLLOW_58_in_dictcomprehension1271 = frozenset([1]) 
     4736    FOLLOW_expr1_in_generatorexpression1299 = frozenset([52]) 
     4737    FOLLOW_52_in_generatorexpression1303 = frozenset([14, 27]) 
     4738    FOLLOW_nestedname_in_generatorexpression1309 = frozenset([54]) 
     4739    FOLLOW_54_in_generatorexpression1313 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4740    FOLLOW_expr1_in_generatorexpression1319 = frozenset([1, 53]) 
     4741    FOLLOW_53_in_generatorexpression1328 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4742    FOLLOW_expr1_in_generatorexpression1335 = frozenset([1]) 
     4743    FOLLOW_literal_in_atom1361 = frozenset([1]) 
     4744    FOLLOW_list_in_atom1370 = frozenset([1]) 
     4745    FOLLOW_listcomprehension_in_atom1379 = frozenset([1]) 
     4746    FOLLOW_dict_in_atom1388 = frozenset([1]) 
     4747    FOLLOW_dictcomprehension_in_atom1397 = frozenset([1]) 
     4748    FOLLOW_27_in_atom1404 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4749    FOLLOW_generatorexpression_in_atom1408 = frozenset([28]) 
     4750    FOLLOW_28_in_atom1410 = frozenset([1]) 
     4751    FOLLOW_27_in_atom1417 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4752    FOLLOW_expr1_in_atom1421 = frozenset([28]) 
     4753    FOLLOW_28_in_atom1423 = frozenset([1]) 
     4754    FOLLOW_name_in_nestedname1446 = frozenset([1]) 
     4755    FOLLOW_27_in_nestedname1455 = frozenset([14, 27]) 
     4756    FOLLOW_nestedname_in_nestedname1459 = frozenset([34]) 
     4757    FOLLOW_34_in_nestedname1461 = frozenset([28]) 
     4758    FOLLOW_28_in_nestedname1463 = frozenset([1]) 
     4759    FOLLOW_27_in_nestedname1472 = frozenset([14, 27]) 
     4760    FOLLOW_nestedname_in_nestedname1478 = frozenset([34]) 
     4761    FOLLOW_34_in_nestedname1482 = frozenset([14, 27]) 
     4762    FOLLOW_nestedname_in_nestedname1488 = frozenset([28, 34]) 
     4763    FOLLOW_34_in_nestedname1499 = frozenset([14, 27]) 
     4764    FOLLOW_nestedname_in_nestedname1506 = frozenset([28, 34]) 
     4765    FOLLOW_34_in_nestedname1517 = frozenset([28]) 
     4766    FOLLOW_28_in_nestedname1522 = frozenset([1]) 
     4767    FOLLOW_atom_in_expr91551 = frozenset([1, 27, 37, 49]) 
     4768    FOLLOW_37_in_expr91567 = frozenset([14]) 
     4769    FOLLOW_name_in_expr91574 = frozenset([1, 27, 37, 49]) 
     4770    FOLLOW_27_in_expr91590 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 28, 29, 30, 35, 49, 55, 57]) 
     4771    FOLLOW_30_in_expr91620 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4772    FOLLOW_exprarg_in_expr91624 = frozenset([28, 34]) 
     4773    FOLLOW_34_in_expr91632 = frozenset([28]) 
     4774    FOLLOW_29_in_expr91650 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4775    FOLLOW_exprarg_in_expr91654 = frozenset([28, 34]) 
     4776    FOLLOW_34_in_expr91669 = frozenset([30]) 
     4777    FOLLOW_30_in_expr91676 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4778    FOLLOW_exprarg_in_expr91680 = frozenset([28, 34]) 
     4779    FOLLOW_34_in_expr91695 = frozenset([28]) 
     4780    FOLLOW_exprarg_in_expr91715 = frozenset([28, 34]) 
     4781    FOLLOW_34_in_expr91730 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4782    FOLLOW_exprarg_in_expr91739 = frozenset([28, 34]) 
     4783    FOLLOW_34_in_expr91761 = frozenset([14]) 
     4784    FOLLOW_name_in_expr91770 = frozenset([45]) 
     4785    FOLLOW_45_in_expr91772 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4786    FOLLOW_exprarg_in_expr91776 = frozenset([28, 34]) 
     4787    FOLLOW_34_in_expr91798 = frozenset([29]) 
     4788    FOLLOW_29_in_expr91805 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4789    FOLLOW_exprarg_in_expr91809 = frozenset([28, 34]) 
     4790    FOLLOW_34_in_expr91831 = frozenset([30]) 
     4791    FOLLOW_30_in_expr91838 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4792    FOLLOW_exprarg_in_expr91842 = frozenset([28, 34]) 
     4793    FOLLOW_34_in_expr91857 = frozenset([28]) 
     4794    FOLLOW_name_in_expr91877 = frozenset([45]) 
     4795    FOLLOW_45_in_expr91879 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4796    FOLLOW_exprarg_in_expr91883 = frozenset([28, 34]) 
     4797    FOLLOW_34_in_expr91898 = frozenset([14]) 
     4798    FOLLOW_name_in_expr91907 = frozenset([45]) 
     4799    FOLLOW_45_in_expr91909 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4800    FOLLOW_exprarg_in_expr91913 = frozenset([28, 34]) 
     4801    FOLLOW_34_in_expr91935 = frozenset([29]) 
     4802    FOLLOW_29_in_expr91942 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4803    FOLLOW_exprarg_in_expr91946 = frozenset([28, 34]) 
     4804    FOLLOW_34_in_expr91968 = frozenset([30]) 
     4805    FOLLOW_30_in_expr91975 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4806    FOLLOW_exprarg_in_expr91979 = frozenset([28, 34]) 
     4807    FOLLOW_34_in_expr91994 = frozenset([28]) 
     4808    FOLLOW_28_in_expr92005 = frozenset([1, 27, 37, 49]) 
     4809    FOLLOW_49_in_expr92019 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 42, 49, 55, 57]) 
     4810    FOLLOW_42_in_expr92030 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 50, 55, 57]) 
     4811    FOLLOW_expr1_in_expr92045 = frozenset([50]) 
     4812    FOLLOW_expr1_in_expr92069 = frozenset([42, 50]) 
     4813    FOLLOW_42_in_expr92084 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 50, 55, 57]) 
     4814    FOLLOW_expr1_in_expr92103 = frozenset([50]) 
     4815    FOLLOW_50_in_expr92132 = frozenset([1, 27, 37, 49]) 
     4816    FOLLOW_35_in_expr82168 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4817    FOLLOW_expr9_in_expr82181 = frozenset([1]) 
     4818    FOLLOW_expr8_in_expr72204 = frozenset([1, 25, 29, 38, 39]) 
     4819    FOLLOW_29_in_expr72221 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4820    FOLLOW_38_in_expr72234 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4821    FOLLOW_39_in_expr72247 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4822    FOLLOW_25_in_expr72260 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4823    FOLLOW_expr8_in_expr72274 = frozenset([1, 25, 29, 38, 39]) 
     4824    FOLLOW_expr7_in_expr62302 = frozenset([1, 32, 35]) 
     4825    FOLLOW_32_in_expr62319 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4826    FOLLOW_35_in_expr62332 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4827    FOLLOW_expr7_in_expr62346 = frozenset([1, 32, 35]) 
     4828    FOLLOW_expr6_in_expr52374 = frozenset([1, 24, 43, 44, 46, 47, 48]) 
     4829    FOLLOW_46_in_expr52391 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4830    FOLLOW_24_in_expr52404 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4831    FOLLOW_43_in_expr52417 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4832    FOLLOW_44_in_expr52430 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4833    FOLLOW_47_in_expr52443 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4834    FOLLOW_48_in_expr52456 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4835    FOLLOW_expr6_in_expr52470 = frozenset([1, 24, 43, 44, 46, 47, 48]) 
     4836    FOLLOW_expr5_in_expr42498 = frozenset([1, 54, 55]) 
     4837    FOLLOW_55_in_expr42520 = frozenset([54]) 
     4838    FOLLOW_54_in_expr42533 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4839    FOLLOW_expr5_in_expr42540 = frozenset([1]) 
     4840    FOLLOW_55_in_expr32566 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 57]) 
     4841    FOLLOW_expr4_in_expr32572 = frozenset([1]) 
     4842    FOLLOW_expr4_in_expr32583 = frozenset([1]) 
     4843    FOLLOW_expr3_in_expr22607 = frozenset([1, 51]) 
     4844    FOLLOW_51_in_expr22618 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4845    FOLLOW_expr3_in_expr22625 = frozenset([1, 51]) 
     4846    FOLLOW_expr2_in_expr12653 = frozenset([1, 56]) 
     4847    FOLLOW_56_in_expr12664 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4848    FOLLOW_expr2_in_expr12671 = frozenset([1, 56]) 
     4849    FOLLOW_generatorexpression_in_exprarg2695 = frozenset([1]) 
     4850    FOLLOW_expr1_in_exprarg2704 = frozenset([1]) 
     4851    FOLLOW_generatorexpression_in_expression2723 = frozenset([]) 
     4852    FOLLOW_EOF_in_expression2725 = frozenset([1]) 
     4853    FOLLOW_expr1_in_expression2734 = frozenset([]) 
     4854    FOLLOW_EOF_in_expression2736 = frozenset([1]) 
     4855    FOLLOW_nestedname_in_for_2761 = frozenset([54]) 
     4856    FOLLOW_54_in_for_2765 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4857    FOLLOW_expr1_in_for_2771 = frozenset([]) 
     4858    FOLLOW_EOF_in_for_2777 = frozenset([1]) 
     4859    FOLLOW_nestedname_in_statement2798 = frozenset([45]) 
     4860    FOLLOW_45_in_statement2800 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4861    FOLLOW_expr1_in_statement2804 = frozenset([]) 
     4862    FOLLOW_EOF_in_statement2806 = frozenset([1]) 
     4863    FOLLOW_name_in_statement2815 = frozenset([33]) 
     4864    FOLLOW_33_in_statement2817 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4865    FOLLOW_expr1_in_statement2821 = frozenset([]) 
     4866    FOLLOW_EOF_in_statement2823 = frozenset([1]) 
     4867    FOLLOW_name_in_statement2832 = frozenset([36]) 
     4868    FOLLOW_36_in_statement2834 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4869    FOLLOW_expr1_in_statement2838 = frozenset([]) 
     4870    FOLLOW_EOF_in_statement2840 = frozenset([1]) 
     4871    FOLLOW_name_in_statement2849 = frozenset([31]) 
     4872    FOLLOW_31_in_statement2851 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4873    FOLLOW_expr1_in_statement2855 = frozenset([]) 
     4874    FOLLOW_EOF_in_statement2857 = frozenset([1]) 
     4875    FOLLOW_name_in_statement2866 = frozenset([41]) 
     4876    FOLLOW_41_in_statement2868 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4877    FOLLOW_expr1_in_statement2872 = frozenset([]) 
     4878    FOLLOW_EOF_in_statement2874 = frozenset([1]) 
     4879    FOLLOW_name_in_statement2883 = frozenset([40]) 
     4880    FOLLOW_40_in_statement2885 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4881    FOLLOW_expr1_in_statement2889 = frozenset([]) 
     4882    FOLLOW_EOF_in_statement2891 = frozenset([1]) 
     4883    FOLLOW_name_in_statement2900 = frozenset([26]) 
     4884    FOLLOW_26_in_statement2902 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4885    FOLLOW_expr1_in_statement2906 = frozenset([]) 
     4886    FOLLOW_EOF_in_statement2908 = frozenset([1]) 
     4887    FOLLOW_expression_in_statement2917 = frozenset([]) 
     4888    FOLLOW_EOF_in_statement2919 = frozenset([1]) 
     4889    FOLLOW_list_in_synpred19_UL41370 = frozenset([1]) 
     4890    FOLLOW_listcomprehension_in_synpred20_UL41379 = frozenset([1]) 
     4891    FOLLOW_dict_in_synpred21_UL41388 = frozenset([1]) 
     4892    FOLLOW_dictcomprehension_in_synpred22_UL41397 = frozenset([1]) 
     4893    FOLLOW_27_in_synpred23_UL41404 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4894    FOLLOW_generatorexpression_in_synpred23_UL41408 = frozenset([28]) 
     4895    FOLLOW_28_in_synpred23_UL41410 = frozenset([1]) 
     4896    FOLLOW_27_in_synpred25_UL41455 = frozenset([14, 27]) 
     4897    FOLLOW_nestedname_in_synpred25_UL41459 = frozenset([34]) 
     4898    FOLLOW_34_in_synpred25_UL41461 = frozenset([28]) 
     4899    FOLLOW_28_in_synpred25_UL41463 = frozenset([1]) 
     4900    FOLLOW_generatorexpression_in_synpred69_UL42695 = frozenset([1]) 
     4901    FOLLOW_generatorexpression_in_synpred70_UL42723 = frozenset([]) 
     4902    FOLLOW_EOF_in_synpred70_UL42725 = frozenset([1]) 
     4903    FOLLOW_nestedname_in_synpred71_UL42798 = frozenset([45]) 
     4904    FOLLOW_45_in_synpred71_UL42800 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4905    FOLLOW_expr1_in_synpred71_UL42804 = frozenset([]) 
     4906    FOLLOW_EOF_in_synpred71_UL42806 = frozenset([1]) 
     4907    FOLLOW_name_in_synpred72_UL42815 = frozenset([33]) 
     4908    FOLLOW_33_in_synpred72_UL42817 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4909    FOLLOW_expr1_in_synpred72_UL42821 = frozenset([]) 
     4910    FOLLOW_EOF_in_synpred72_UL42823 = frozenset([1]) 
     4911    FOLLOW_name_in_synpred73_UL42832 = frozenset([36]) 
     4912    FOLLOW_36_in_synpred73_UL42834 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4913    FOLLOW_expr1_in_synpred73_UL42838 = frozenset([]) 
     4914    FOLLOW_EOF_in_synpred73_UL42840 = frozenset([1]) 
     4915    FOLLOW_name_in_synpred74_UL42849 = frozenset([31]) 
     4916    FOLLOW_31_in_synpred74_UL42851 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4917    FOLLOW_expr1_in_synpred74_UL42855 = frozenset([]) 
     4918    FOLLOW_EOF_in_synpred74_UL42857 = frozenset([1]) 
     4919    FOLLOW_name_in_synpred75_UL42866 = frozenset([41]) 
     4920    FOLLOW_41_in_synpred75_UL42868 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4921    FOLLOW_expr1_in_synpred75_UL42872 = frozenset([]) 
     4922    FOLLOW_EOF_in_synpred75_UL42874 = frozenset([1]) 
     4923    FOLLOW_name_in_synpred76_UL42883 = frozenset([40]) 
     4924    FOLLOW_40_in_synpred76_UL42885 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4925    FOLLOW_expr1_in_synpred76_UL42889 = frozenset([]) 
     4926    FOLLOW_EOF_in_synpred76_UL42891 = frozenset([1]) 
     4927    FOLLOW_name_in_synpred77_UL42900 = frozenset([26]) 
     4928    FOLLOW_26_in_synpred77_UL42902 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 19, 27, 35, 49, 55, 57]) 
     4929    FOLLOW_expr1_in_synpred77_UL42906 = frozenset([]) 
     4930    FOLLOW_EOF_in_synpred77_UL42908 = frozenset([1]) 
    49694931 
    49704932 
  • src/ll/ul4c.py

    r5330 r5331  
    557557                for item in self.items: 
    558558                    p.breakable() 
    559                     if len(item) == 2: 
    560                         p.pretty(item[0]) 
    561                         p.text("=") 
    562                         p.pretty(item[1]) 
    563                     else: 
    564                         p.text("**") 
    565                         p.pretty(item) 
     559                    p.pretty(item[0]) 
     560                    p.text("=") 
     561                    p.pretty(item[1]) 
    566562                p.breakable() 
    567563                p.text("at {:#x}".format(id(self))) 
     
    572568            if i: 
    573569                yield ", " 
    574             if len(item) == 2: 
    575                 yield from item[0]._str(indent, keepws) 
    576                 yield ": " 
    577                 yield from item[1]._str(indent, keepws) 
    578             else: 
    579                 yield "**" 
    580                 yield from item[0]._str(indent, keepws) 
     570            yield from item[0]._str(indent, keepws) 
     571            yield ": " 
     572            yield from item[1]._str(indent, keepws) 
    581573        yield "}" 
    582574 
     
    585577        result = {} 
    586578        for item in self.items: 
    587             if len(item) == 1: 
    588                 item = (yield from item[0].eval(keepws, vars)) 
    589                 result.update(item) 
    590             else: 
    591                 key = (yield from item[0].eval(keepws, vars)) 
    592                 value = (yield from item[1].eval(keepws, vars)) 
    593                 result[key] = value 
     579            key = (yield from item[0].eval(keepws, vars)) 
     580            value = (yield from item[1].eval(keepws, vars)) 
     581            result[key] = value 
    594582        return result 
    595583 
     
    34403428### 
    34413429 
    3442 def _makedict(*items): 
    3443     result = {} 
    3444     for item in items: 
    3445         if len(item) == 1: 
    3446             result.update(item[0]) 
    3447         else: 
    3448             result[item[0]] = item[1] 
    3449     return result 
    3450  
    3451  
    34523430def _formatnestednameul4(name): 
    34533431    if isinstance(name, str): 
  • test/test_ul4.py

    r5330 r5331  
    682682    # With duplicate keys, later ones simply overwrite earlier ones 
    683683    assert '1:3\n' == r('<?for (key, value) in {1:2, 1: 3}.items()?><?print key?>:<?print value?>\n<?end for?>') 
    684     # Test ** 
    685     assert '1:2\n' == r('<?for (key, value) in {**{1:2}}.items()?><?print key?>:<?print value?>\n<?end for?>') 
    686     assert '1:4\n' == r('<?for (key, value) in {1:1, **{1:2}, 1:3, **{1:4}}.items()?><?print key?>:<?print value?>\n<?end for?>') 
    687684    assert 'no' == r('<?if {}?>yes<?else?>no<?end if?>') 
    688685    assert 'yes' == r('<?if {1:2}?>yes<?else?>no<?end if?>') 
     
    31813178        <?code x = [42]?> 
    31823179        <?code x = {"fortytwo": 42}?> 
    3183         <?code x = {**{"fortytwo": 42}}?> 
    31843180        <?code x = [x for x in range(10) if i % 2]?> 
    31853181        <?code x = {x : x*x for x in range(10) if i % 2}?>