Changeset 5715:1f2d51c195d8 in livinglogic.python.xist

Show
Ignore:
Timestamp:
12/29/13 11:35:41 (5 years ago)
Author:
Walter Doerwald <walter@…>
Parents:
5713:cdde351c7908 (diff), 5714:3b102f7d5601 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Branch:
default
Tags:
tip
Message:

Merge.

Files:
9 modified

Legend:

Unmodified
Added
Removed
  • src/ll/UL4.g

    r5713 r5715  
    477477    ; 
    478478 
     479/* Binary shift */ 
     480expr_bitshift returns [AST node] 
     481    : 
     482        e1=expr_add { $node = $e1.node; } 
     483        ( 
     484            ( 
     485                '<<' { cls = ul4c.ShiftLeft; } 
     486            | 
     487                '>>' { cls = ul4c.ShiftRight; } 
     488            ) 
     489            e2=expr_add { $node = cls.make(self.location, $node.start, $e2.node.end, $node, $e2.node) } 
     490        )* 
     491    ; 
     492 
    479493/* Comparisons */ 
    480494expr_cmp returns [node] 
    481495    : 
    482         e1=expr_add { $node = $e1.node; } 
     496        e1=expr_bitshift { $node = $e1.node; } 
    483497        ( 
    484498            ( 
     
    495509                '>=' { cls = ul4c.GE; } 
    496510            ) 
    497             e2=expr_add { $node = cls.make(self.location, $node.start, $e2.node.end, $node, $e2.node) } 
     511            e2=expr_bitshift { $node = cls.make(self.location, $node.start, $e2.node.end, $node, $e2.node) } 
    498512        )* 
    499513    ; 
     
    586600    | n=expr_subscript '//=' e=expr_if EOF { $node = ul4c.FloorDivVar(self.location, self.start($n.start), $e.node.end, $n.node, $e.node) } 
    587601    | n=expr_subscript '%=' e=expr_if EOF { $node = ul4c.ModVar(self.location, self.start($n.start), $e.node.end, $n.node, $e.node) } 
     602    | n=expr_subscript '<<=' e=expr_if EOF { $node = ul4c.ShiftLeftVar(self.location, self.start($n.start), $e.node.end, $n.node, $e.node) } 
     603    | n=expr_subscript '>>=' e=expr_if EOF { $node = ul4c.ShiftRightVar(self.location, self.start($n.start), $e.node.end, $n.node, $e.node) } 
    588604    | e=expression EOF { $node = $e.node } 
    589605    ; 
  • src/ll/UL4.g

    r5714 r5715  
    564564            e2=expr_or 
    565565            'else' 
    566             e3=expr_or { $node = ul4c.IfExpr.make(self.location, $e1.node.start, $e3.node.end, $node, $e2.node, $e3.node); } 
     566            e3=expr_or { $node = ul4c.If.make(self.location, $e1.node.start, $e3.node.end, $node, $e2.node, $e3.node); } 
    567567        )? 
    568568    ; 
     
    585585        n=nestedlvalue 
    586586        'in' 
    587         e=expr_if { $node = ul4c.For(self.location, self.start($n.start), $e.node.end, $n.lvalue, $e.node) } 
     587        e=expr_if { $node = ul4c.ForBlock(self.location, self.start($n.start), $e.node.end, $n.lvalue, $e.node) } 
    588588        EOF 
    589589    ; 
  • src/ll/UL4Lexer.py

    r5713 r5715  
    1 # $ANTLR 3.5 src/ll/UL4.g 2013-12-25 15:13:15 
     1# $ANTLR 3.5 src/ll/UL4.g 2013-12-29 11:35:07 
    22 
    33import sys 
     
    5151T__61=61 
    5252T__62=62 
     53T__63=63 
     54T__64=64 
     55T__65=65 
     56T__66=66 
    5357BIN_DIGIT=4 
    5458COLOR=5 
     
    574578            _channel = DEFAULT_CHANNEL 
    575579 
    576             # src/ll/UL4.g:35:7: ( '<=' ) 
    577             # src/ll/UL4.g:35:9: '<=' 
    578             pass  
    579             self.match("<=") 
     580            # src/ll/UL4.g:35:7: ( '<<' ) 
     581            # src/ll/UL4.g:35:9: '<<' 
     582            pass  
     583            self.match("<<") 
    580584 
    581585 
     
    597601            _channel = DEFAULT_CHANNEL 
    598602 
    599             # src/ll/UL4.g:36:7: ( '=' ) 
    600             # src/ll/UL4.g:36:9: '=' 
    601             pass  
    602             self.match(61) 
     603            # src/ll/UL4.g:36:7: ( '<<=' ) 
     604            # src/ll/UL4.g:36:9: '<<=' 
     605            pass  
     606            self.match("<<=") 
     607 
    603608 
    604609 
     
    619624            _channel = DEFAULT_CHANNEL 
    620625 
    621             # src/ll/UL4.g:37:7: ( '==' ) 
    622             # src/ll/UL4.g:37:9: '==' 
    623             pass  
    624             self.match("==") 
     626            # src/ll/UL4.g:37:7: ( '<=' ) 
     627            # src/ll/UL4.g:37:9: '<=' 
     628            pass  
     629            self.match("<=") 
    625630 
    626631 
     
    642647            _channel = DEFAULT_CHANNEL 
    643648 
    644             # src/ll/UL4.g:38:7: ( '>' ) 
    645             # src/ll/UL4.g:38:9: '>' 
    646             pass  
    647             self.match(62) 
     649            # src/ll/UL4.g:38:7: ( '=' ) 
     650            # src/ll/UL4.g:38:9: '=' 
     651            pass  
     652            self.match(61) 
    648653 
    649654 
     
    664669            _channel = DEFAULT_CHANNEL 
    665670 
    666             # src/ll/UL4.g:39:7: ( '>=' ) 
    667             # src/ll/UL4.g:39:9: '>=' 
    668             pass  
    669             self.match(">=") 
     671            # src/ll/UL4.g:39:7: ( '==' ) 
     672            # src/ll/UL4.g:39:9: '==' 
     673            pass  
     674            self.match("==") 
    670675 
    671676 
     
    687692            _channel = DEFAULT_CHANNEL 
    688693 
    689             # src/ll/UL4.g:40:7: ( '[' ) 
    690             # src/ll/UL4.g:40:9: '[' 
    691             pass  
    692             self.match(91) 
     694            # src/ll/UL4.g:40:7: ( '>' ) 
     695            # src/ll/UL4.g:40:9: '>' 
     696            pass  
     697            self.match(62) 
    693698 
    694699 
     
    709714            _channel = DEFAULT_CHANNEL 
    710715 
    711             # src/ll/UL4.g:41:7: ( ']' ) 
    712             # src/ll/UL4.g:41:9: ']' 
    713             pass  
    714             self.match(93) 
     716            # src/ll/UL4.g:41:7: ( '>=' ) 
     717            # src/ll/UL4.g:41:9: '>=' 
     718            pass  
     719            self.match(">=") 
     720 
    715721 
    716722 
     
    731737            _channel = DEFAULT_CHANNEL 
    732738 
    733             # src/ll/UL4.g:42:7: ( 'and' ) 
    734             # src/ll/UL4.g:42:9: 'and' 
    735             pass  
    736             self.match("and") 
     739            # src/ll/UL4.g:42:7: ( '>>' ) 
     740            # src/ll/UL4.g:42:9: '>>' 
     741            pass  
     742            self.match(">>") 
    737743 
    738744 
     
    754760            _channel = DEFAULT_CHANNEL 
    755761 
    756             # src/ll/UL4.g:43:7: ( 'else' ) 
    757             # src/ll/UL4.g:43:9: 'else' 
    758             pass  
    759             self.match("else") 
     762            # src/ll/UL4.g:43:7: ( '>>=' ) 
     763            # src/ll/UL4.g:43:9: '>>=' 
     764            pass  
     765            self.match(">>=") 
    760766 
    761767 
     
    777783            _channel = DEFAULT_CHANNEL 
    778784 
    779             # src/ll/UL4.g:44:7: ( 'for' ) 
    780             # src/ll/UL4.g:44:9: 'for' 
    781             pass  
    782             self.match("for") 
    783  
     785            # src/ll/UL4.g:44:7: ( '[' ) 
     786            # src/ll/UL4.g:44:9: '[' 
     787            pass  
     788            self.match(91) 
    784789 
    785790 
     
    800805            _channel = DEFAULT_CHANNEL 
    801806 
    802             # src/ll/UL4.g:45:7: ( 'if' ) 
    803             # src/ll/UL4.g:45:9: 'if' 
    804             pass  
    805             self.match("if") 
    806  
     807            # src/ll/UL4.g:45:7: ( ']' ) 
     808            # src/ll/UL4.g:45:9: ']' 
     809            pass  
     810            self.match(93) 
    807811 
    808812 
     
    823827            _channel = DEFAULT_CHANNEL 
    824828 
    825             # src/ll/UL4.g:46:7: ( 'in' ) 
    826             # src/ll/UL4.g:46:9: 'in' 
    827             pass  
    828             self.match("in") 
     829            # src/ll/UL4.g:46:7: ( 'and' ) 
     830            # src/ll/UL4.g:46:9: 'and' 
     831            pass  
     832            self.match("and") 
    829833 
    830834 
     
    846850            _channel = DEFAULT_CHANNEL 
    847851 
    848             # src/ll/UL4.g:47:7: ( 'not' ) 
    849             # src/ll/UL4.g:47:9: 'not' 
    850             pass  
    851             self.match("not") 
     852            # src/ll/UL4.g:47:7: ( 'else' ) 
     853            # src/ll/UL4.g:47:9: 'else' 
     854            pass  
     855            self.match("else") 
    852856 
    853857 
     
    869873            _channel = DEFAULT_CHANNEL 
    870874 
    871             # src/ll/UL4.g:48:7: ( 'or' ) 
    872             # src/ll/UL4.g:48:9: 'or' 
    873             pass  
    874             self.match("or") 
     875            # src/ll/UL4.g:48:7: ( 'for' ) 
     876            # src/ll/UL4.g:48:9: 'for' 
     877            pass  
     878            self.match("for") 
    875879 
    876880 
     
    892896            _channel = DEFAULT_CHANNEL 
    893897 
    894             # src/ll/UL4.g:49:7: ( '{' ) 
    895             # src/ll/UL4.g:49:9: '{' 
    896             pass  
    897             self.match(123) 
     898            # src/ll/UL4.g:49:7: ( 'if' ) 
     899            # src/ll/UL4.g:49:9: 'if' 
     900            pass  
     901            self.match("if") 
     902 
    898903 
    899904 
     
    914919            _channel = DEFAULT_CHANNEL 
    915920 
    916             # src/ll/UL4.g:50:7: ( '}' ) 
    917             # src/ll/UL4.g:50:9: '}' 
     921            # src/ll/UL4.g:50:7: ( 'in' ) 
     922            # src/ll/UL4.g:50:9: 'in' 
     923            pass  
     924            self.match("in") 
     925 
     926 
     927 
     928 
     929            self._state.type = _type 
     930            self._state.channel = _channel 
     931        finally: 
     932            pass 
     933 
     934    # $ANTLR end "T__62" 
     935 
     936 
     937 
     938    # $ANTLR start "T__63" 
     939    def mT__63(self, ): 
     940        try: 
     941            _type = T__63 
     942            _channel = DEFAULT_CHANNEL 
     943 
     944            # src/ll/UL4.g:51:7: ( 'not' ) 
     945            # src/ll/UL4.g:51:9: 'not' 
     946            pass  
     947            self.match("not") 
     948 
     949 
     950 
     951 
     952            self._state.type = _type 
     953            self._state.channel = _channel 
     954        finally: 
     955            pass 
     956 
     957    # $ANTLR end "T__63" 
     958 
     959 
     960 
     961    # $ANTLR start "T__64" 
     962    def mT__64(self, ): 
     963        try: 
     964            _type = T__64 
     965            _channel = DEFAULT_CHANNEL 
     966 
     967            # src/ll/UL4.g:52:7: ( 'or' ) 
     968            # src/ll/UL4.g:52:9: 'or' 
     969            pass  
     970            self.match("or") 
     971 
     972 
     973 
     974 
     975            self._state.type = _type 
     976            self._state.channel = _channel 
     977        finally: 
     978            pass 
     979 
     980    # $ANTLR end "T__64" 
     981 
     982 
     983 
     984    # $ANTLR start "T__65" 
     985    def mT__65(self, ): 
     986        try: 
     987            _type = T__65 
     988            _channel = DEFAULT_CHANNEL 
     989 
     990            # src/ll/UL4.g:53:7: ( '{' ) 
     991            # src/ll/UL4.g:53:9: '{' 
     992            pass  
     993            self.match(123) 
     994 
     995 
     996 
     997            self._state.type = _type 
     998            self._state.channel = _channel 
     999        finally: 
     1000            pass 
     1001 
     1002    # $ANTLR end "T__65" 
     1003 
     1004 
     1005 
     1006    # $ANTLR start "T__66" 
     1007    def mT__66(self, ): 
     1008        try: 
     1009            _type = T__66 
     1010            _channel = DEFAULT_CHANNEL 
     1011 
     1012            # src/ll/UL4.g:54:7: ( '}' ) 
     1013            # src/ll/UL4.g:54:9: '}' 
    9181014            pass  
    9191015            self.match(125) 
     
    9261022            pass 
    9271023 
    928     # $ANTLR end "T__62" 
     1024    # $ANTLR end "T__66" 
    9291025 
    9301026 
     
    25912687 
    25922688    def mTokens(self): 
    2593         # src/ll/UL4.g:1:8: ( T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | NONE | TRUE | FALSE | NAME | INT | FLOAT | DATE | COLOR | WS | STRING | STRING3 ) 
    2594         alt32 = 47 
     2689        # src/ll/UL4.g:1:8: ( T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | NONE | TRUE | FALSE | NAME | INT | FLOAT | DATE | COLOR | WS | STRING | STRING3 ) 
     2690        alt32 = 51 
    25952691        alt32 = self.dfa32.predict(self.input) 
    25962692        if alt32 == 1: 
     
    28472943 
    28482944        elif alt32 == 37: 
    2849             # src/ll/UL4.g:1:226: NONE 
     2945            # src/ll/UL4.g:1:226: T__63 
     2946            pass  
     2947            self.mT__63() 
     2948 
     2949 
     2950 
     2951        elif alt32 == 38: 
     2952            # src/ll/UL4.g:1:232: T__64 
     2953            pass  
     2954            self.mT__64() 
     2955 
     2956 
     2957 
     2958        elif alt32 == 39: 
     2959            # src/ll/UL4.g:1:238: T__65 
     2960            pass  
     2961            self.mT__65() 
     2962 
     2963 
     2964 
     2965        elif alt32 == 40: 
     2966            # src/ll/UL4.g:1:244: T__66 
     2967            pass  
     2968            self.mT__66() 
     2969 
     2970 
     2971 
     2972        elif alt32 == 41: 
     2973            # src/ll/UL4.g:1:250: NONE 
    28502974            pass  
    28512975            self.mNONE() 
     
    28532977 
    28542978 
    2855         elif alt32 == 38: 
    2856             # src/ll/UL4.g:1:231: TRUE 
     2979        elif alt32 == 42: 
     2980            # src/ll/UL4.g:1:255: TRUE 
    28572981            pass  
    28582982            self.mTRUE() 
     
    28602984 
    28612985 
    2862         elif alt32 == 39: 
    2863             # src/ll/UL4.g:1:236: FALSE 
     2986        elif alt32 == 43: 
     2987            # src/ll/UL4.g:1:260: FALSE 
    28642988            pass  
    28652989            self.mFALSE() 
     
    28672991 
    28682992 
    2869         elif alt32 == 40: 
    2870             # src/ll/UL4.g:1:242: NAME 
     2993        elif alt32 == 44: 
     2994            # src/ll/UL4.g:1:266: NAME 
    28712995            pass  
    28722996            self.mNAME() 
     
    28742998 
    28752999 
    2876         elif alt32 == 41: 
    2877             # src/ll/UL4.g:1:247: INT 
     3000        elif alt32 == 45: 
     3001            # src/ll/UL4.g:1:271: INT 
    28783002            pass  
    28793003            self.mINT() 
     
    28813005 
    28823006 
    2883         elif alt32 == 42: 
    2884             # src/ll/UL4.g:1:251: FLOAT 
     3007        elif alt32 == 46: 
     3008            # src/ll/UL4.g:1:275: FLOAT 
    28853009            pass  
    28863010            self.mFLOAT() 
     
    28883012 
    28893013 
    2890         elif alt32 == 43: 
    2891             # src/ll/UL4.g:1:257: DATE 
     3014        elif alt32 == 47: 
     3015            # src/ll/UL4.g:1:281: DATE 
    28923016            pass  
    28933017            self.mDATE() 
     
    28953019 
    28963020 
    2897         elif alt32 == 44: 
    2898             # src/ll/UL4.g:1:262: COLOR 
     3021        elif alt32 == 48: 
     3022            # src/ll/UL4.g:1:286: COLOR 
    28993023            pass  
    29003024            self.mCOLOR() 
     
    29023026 
    29033027 
    2904         elif alt32 == 45: 
    2905             # src/ll/UL4.g:1:268: WS 
     3028        elif alt32 == 49: 
     3029            # src/ll/UL4.g:1:292: WS 
    29063030            pass  
    29073031            self.mWS() 
     
    29093033 
    29103034 
    2911         elif alt32 == 46: 
    2912             # src/ll/UL4.g:1:271: STRING 
     3035        elif alt32 == 50: 
     3036            # src/ll/UL4.g:1:295: STRING 
    29133037            pass  
    29143038            self.mSTRING() 
     
    29163040 
    29173041 
    2918         elif alt32 == 47: 
    2919             # src/ll/UL4.g:1:278: STRING3 
     3042        elif alt32 == 51: 
     3043            # src/ll/UL4.g:1:302: STRING3 
    29203044            pass  
    29213045            self.mSTRING3() 
     
    29733097    DFA32_eot = DFA.unpack( 
    29743098        "\2\uffff\1\45\2\uffff\1\50\1\52\1\uffff\1\54\1\55\1\61\1\uffff" 
    2975         "\1\63\1\65\1\67\2\uffff\6\34\2\uffff\3\34\1\uffff\2\102\20\uffff" 
    2976         "\1\107\10\uffff\3\34\1\113\1\114\1\34\1\116\3\34\1\uffff\1\104" 
    2977         "\1\uffff\1\104\2\uffff\1\123\1\34\1\125\2\uffff\1\126\1\uffff\3" 
    2978         "\34\2\uffff\1\132\2\uffff\1\133\1\134\1\34\3\uffff\1\136\1\uffff" 
     3099        "\1\64\1\66\1\71\2\uffff\6\34\2\uffff\3\34\1\uffff\2\104\20\uffff" 
     3100        "\1\111\2\uffff\1\113\5\uffff\1\115\1\uffff\3\34\1\121\1\122\1\34" 
     3101        "\1\124\3\34\1\uffff\1\106\1\uffff\1\106\6\uffff\1\131\1\34\1\133" 
     3102        "\2\uffff\1\134\1\uffff\3\34\2\uffff\1\140\2\uffff\1\141\1\142\1" 
     3103        "\34\3\uffff\1\144\1\uffff" 
    29793104        ) 
    29803105 
    29813106    DFA32_eof = DFA.unpack( 
    2982         "\137\uffff" 
     3107        "\145\uffff" 
    29833108        ) 
    29843109 
    29853110    DFA32_min = DFA.unpack( 
    29863111        "\1\11\1\uffff\1\75\2\uffff\1\52\1\75\1\uffff\1\75\1\60\1\57\1\uffff" 
    2987         "\3\75\2\uffff\1\156\1\154\1\157\1\146\1\157\1\162\2\uffff\1\157" 
    2988         "\1\162\1\141\1\uffff\2\56\3\uffff\2\0\13\uffff\1\75\10\uffff\1" 
    2989         "\144\1\163\1\162\2\60\1\164\1\60\1\156\1\165\1\154\1\uffff\1\42" 
    2990         "\1\uffff\1\47\2\uffff\1\60\1\145\1\60\2\uffff\1\60\1\uffff\2\145" 
    2991         "\1\163\2\uffff\1\60\2\uffff\2\60\1\145\3\uffff\1\60\1\uffff" 
     3112        "\1\74\2\75\2\uffff\1\156\1\154\1\157\1\146\1\157\1\162\2\uffff" 
     3113        "\1\157\1\162\1\141\1\uffff\2\56\3\uffff\2\0\13\uffff\1\75\2\uffff" 
     3114        "\1\75\5\uffff\1\75\1\uffff\1\144\1\163\1\162\2\60\1\164\1\60\1" 
     3115        "\156\1\165\1\154\1\uffff\1\42\1\uffff\1\47\6\uffff\1\60\1\145\1" 
     3116        "\60\2\uffff\1\60\1\uffff\2\145\1\163\2\uffff\1\60\2\uffff\2\60" 
     3117        "\1\145\3\uffff\1\60\1\uffff" 
    29923118        ) 
    29933119 
    29943120    DFA32_max = DFA.unpack( 
    29953121        "\1\175\1\uffff\1\75\2\uffff\2\75\1\uffff\1\75\1\71\1\75\1\uffff" 
    2996         "\3\75\2\uffff\1\156\1\154\1\157\1\156\1\157\1\162\2\uffff\1\157" 
    2997         "\1\162\1\141\1\uffff\2\145\3\uffff\2\uffff\13\uffff\1\75\10\uffff" 
    2998         "\1\144\1\163\1\162\2\172\1\164\1\172\1\156\1\165\1\154\1\uffff" 
    2999         "\1\42\1\uffff\1\47\2\uffff\1\172\1\145\1\172\2\uffff\1\172\1\uffff" 
    3000         "\2\145\1\163\2\uffff\1\172\2\uffff\2\172\1\145\3\uffff\1\172\1" 
    3001         "\uffff" 
     3122        "\2\75\1\76\2\uffff\1\156\1\154\1\157\1\156\1\157\1\162\2\uffff" 
     3123        "\1\157\1\162\1\141\1\uffff\2\145\3\uffff\2\uffff\13\uffff\1\75" 
     3124        "\2\uffff\1\75\5\uffff\1\75\1\uffff\1\144\1\163\1\162\2\172\1\164" 
     3125        "\1\172\1\156\1\165\1\154\1\uffff\1\42\1\uffff\1\47\6\uffff\1\172" 
     3126        "\1\145\1\172\2\uffff\1\172\1\uffff\2\145\1\163\2\uffff\1\172\2" 
     3127        "\uffff\2\172\1\145\3\uffff\1\172\1\uffff" 
    30023128        ) 
    30033129 
    30043130    DFA32_accept = DFA.unpack( 
    30053131        "\1\uffff\1\1\1\uffff\1\4\1\5\2\uffff\1\13\3\uffff\1\23\3\uffff" 
    3006         "\1\32\1\33\6\uffff\1\43\1\44\3\uffff\1\50\2\uffff\1\53\1\54\1\55" 
    3007         "\2\uffff\1\3\1\2\1\7\1\10\1\6\1\12\1\11\1\15\1\14\1\16\1\52\1\uffff" 
    3008         "\1\22\1\17\1\25\1\24\1\27\1\26\1\31\1\30\12\uffff\1\51\1\uffff" 
    3009         "\1\56\1\uffff\1\21\1\20\3\uffff\1\37\1\40\1\uffff\1\42\3\uffff" 
    3010         "\1\57\1\34\1\uffff\1\36\1\41\3\uffff\1\35\1\45\1\46\1\uffff\1\47" 
     3132        "\1\36\1\37\6\uffff\1\47\1\50\3\uffff\1\54\2\uffff\1\57\1\60\1\61" 
     3133        "\2\uffff\1\3\1\2\1\7\1\10\1\6\1\12\1\11\1\15\1\14\1\16\1\56\1\uffff" 
     3134        "\1\22\1\17\1\uffff\1\27\1\24\1\31\1\30\1\33\1\uffff\1\32\12\uffff" 
     3135        "\1\55\1\uffff\1\62\1\uffff\1\21\1\20\1\26\1\25\1\35\1\34\3\uffff" 
     3136        "\1\43\1\44\1\uffff\1\46\3\uffff\1\63\1\40\1\uffff\1\42\1\45\3\uffff" 
     3137        "\1\41\1\51\1\52\1\uffff\1\53" 
    30113138        ) 
    30123139 
    30133140    DFA32_special = DFA.unpack( 
    3014         "\42\uffff\1\0\1\1\73\uffff" 
     3141        "\42\uffff\1\1\1\0\101\uffff" 
    30153142        ) 
    30163143 
     
    30333160        DFA.unpack("\1\57\15\uffff\1\60"), 
    30343161        DFA.unpack(""), 
    3035         DFA.unpack("\1\62"), 
    3036         DFA.unpack("\1\64"), 
    3037         DFA.unpack("\1\66"), 
    3038         DFA.unpack(""), 
    3039         DFA.unpack(""), 
    3040         DFA.unpack("\1\70"), 
    3041         DFA.unpack("\1\71"), 
     3162        DFA.unpack("\1\62\1\63"), 
     3163        DFA.unpack("\1\65"), 
     3164        DFA.unpack("\1\67\1\70"), 
     3165        DFA.unpack(""), 
     3166        DFA.unpack(""), 
    30423167        DFA.unpack("\1\72"), 
    3043         DFA.unpack("\1\73\7\uffff\1\74"), 
    3044         DFA.unpack("\1\75"), 
    3045         DFA.unpack("\1\76"), 
    3046         DFA.unpack(""), 
    3047         DFA.unpack(""), 
     3168        DFA.unpack("\1\73"), 
     3169        DFA.unpack("\1\74"), 
     3170        DFA.unpack("\1\75\7\uffff\1\76"), 
    30483171        DFA.unpack("\1\77"), 
    30493172        DFA.unpack("\1\100"), 
     3173        DFA.unpack(""), 
     3174        DFA.unpack(""), 
    30503175        DFA.unpack("\1\101"), 
     3176        DFA.unpack("\1\102"), 
     3177        DFA.unpack("\1\103"), 
    30513178        DFA.unpack(""), 
    30523179        DFA.unpack("\1\56\1\uffff\12\36\13\uffff\1\56\37\uffff\1\56"), 
     
    30553182        DFA.unpack(""), 
    30563183        DFA.unpack(""), 
    3057         DFA.unpack("\12\104\1\uffff\2\104\1\uffff\24\104\1\103\uffdd\104"), 
    3058         DFA.unpack("\12\104\1\uffff\2\104\1\uffff\31\104\1\105\uffd8\104"), 
    3059         DFA.unpack(""), 
    3060         DFA.unpack(""), 
    3061         DFA.unpack(""), 
    3062         DFA.unpack(""), 
    3063         DFA.unpack(""), 
    3064         DFA.unpack(""), 
    3065         DFA.unpack(""), 
    3066         DFA.unpack(""), 
    3067         DFA.unpack(""), 
    3068         DFA.unpack(""), 
    3069         DFA.unpack(""), 
    3070         DFA.unpack("\1\106"), 
     3184        DFA.unpack("\12\106\1\uffff\2\106\1\uffff\24\106\1\105\uffdd\106"), 
     3185        DFA.unpack("\12\106\1\uffff\2\106\1\uffff\31\106\1\107\uffd8\106"), 
     3186        DFA.unpack(""), 
     3187        DFA.unpack(""), 
     3188        DFA.unpack(""), 
    30713189        DFA.unpack(""), 
    30723190        DFA.unpack(""), 
     
    30783196        DFA.unpack(""), 
    30793197        DFA.unpack("\1\110"), 
    3080         DFA.unpack("\1\111"), 
     3198        DFA.unpack(""), 
     3199        DFA.unpack(""), 
    30813200        DFA.unpack("\1\112"), 
     3201        DFA.unpack(""), 
     3202        DFA.unpack(""), 
     3203        DFA.unpack(""), 
     3204        DFA.unpack(""), 
     3205        DFA.unpack(""), 
     3206        DFA.unpack("\1\114"), 
     3207        DFA.unpack(""), 
     3208        DFA.unpack("\1\116"), 
     3209        DFA.unpack("\1\117"), 
     3210        DFA.unpack("\1\120"), 
    30823211        DFA.unpack("\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34"), 
    30833212        DFA.unpack("\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34"), 
    3084         DFA.unpack("\1\115"), 
     3213        DFA.unpack("\1\123"), 
    30853214        DFA.unpack("\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34"), 
    3086         DFA.unpack("\1\117"), 
    3087         DFA.unpack("\1\120"), 
    3088         DFA.unpack("\1\121"), 
    3089         DFA.unpack(""), 
    3090         DFA.unpack("\1\122"), 
    3091         DFA.unpack(""), 
    3092         DFA.unpack("\1\122"), 
     3215        DFA.unpack("\1\125"), 
     3216        DFA.unpack("\1\126"), 
     3217        DFA.unpack("\1\127"), 
     3218        DFA.unpack(""), 
     3219        DFA.unpack("\1\130"), 
     3220        DFA.unpack(""), 
     3221        DFA.unpack("\1\130"), 
     3222        DFA.unpack(""), 
     3223        DFA.unpack(""), 
     3224        DFA.unpack(""), 
     3225        DFA.unpack(""), 
    30933226        DFA.unpack(""), 
    30943227        DFA.unpack(""), 
    30953228        DFA.unpack("\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34"), 
    3096         DFA.unpack("\1\124"), 
     3229        DFA.unpack("\1\132"), 
    30973230        DFA.unpack("\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34"), 
    30983231        DFA.unpack(""), 
     
    31003233        DFA.unpack("\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34"), 
    31013234        DFA.unpack(""), 
    3102         DFA.unpack("\1\127"), 
    3103         DFA.unpack("\1\130"), 
    3104         DFA.unpack("\1\131"), 
     3235        DFA.unpack("\1\135"), 
     3236        DFA.unpack("\1\136"), 
     3237        DFA.unpack("\1\137"), 
    31053238        DFA.unpack(""), 
    31063239        DFA.unpack(""), 
     
    31103243        DFA.unpack("\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34"), 
    31113244        DFA.unpack("\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34"), 
    3112         DFA.unpack("\1\135"), 
     3245        DFA.unpack("\1\143"), 
    31133246        DFA.unpack(""), 
    31143247        DFA.unpack(""), 
     
    31353268 
    31363269            if s == 0:  
    3137                 LA32_34 = input.LA(1) 
     3270                LA32_35 = input.LA(1) 
    31383271 
    31393272                s = -1 
    3140                 if (LA32_34 == 34): 
    3141                     s = 67 
    3142  
    3143                 elif ((0 <= LA32_34 <= 9) or (11 <= LA32_34 <= 12) or (14 <= LA32_34 <= 33) or (35 <= LA32_34 <= 65535)): 
    3144                     s = 68 
     3273                if (LA32_35 == 39): 
     3274                    s = 71 
     3275 
     3276                elif ((0 <= LA32_35 <= 9) or (11 <= LA32_35 <= 12) or (14 <= LA32_35 <= 38) or (40 <= LA32_35 <= 65535)): 
     3277                    s = 70 
    31453278 
    31463279                if s >= 0: 
    31473280                    return s 
    31483281            elif s == 1:  
    3149                 LA32_35 = input.LA(1) 
     3282                LA32_34 = input.LA(1) 
    31503283 
    31513284                s = -1 
    3152                 if (LA32_35 == 39): 
     3285                if (LA32_34 == 34): 
    31533286                    s = 69 
    31543287 
    3155                 elif ((0 <= LA32_35 <= 9) or (11 <= LA32_35 <= 12) or (14 <= LA32_35 <= 38) or (40 <= LA32_35 <= 65535)): 
    3156                     s = 68 
     3288                elif ((0 <= LA32_34 <= 9) or (11 <= LA32_34 <= 12) or (14 <= LA32_34 <= 33) or (35 <= LA32_34 <= 65535)): 
     3289                    s = 70 
    31573290 
    31583291                if s >= 0: 
  • src/ll/UL4Lexer.py

    r5714 r5715  
    1 # $ANTLR 3.5 src/ll/UL4.g 2013-12-28 13:05:43 
     1# $ANTLR 3.5 src/ll/UL4.g 2013-12-29 11:35:07 
    22 
    33import sys 
  • src/ll/UL4Parser.py

    r5713 r5715  
    1 # $ANTLR 3.5 src/ll/UL4.g 2013-12-25 15:13:15 
     1# $ANTLR 3.5 src/ll/UL4.g 2013-12-29 11:35:06 
    22 
    33import sys 
     
    5252T__61=61 
    5353T__62=62 
     54T__63=63 
     55T__64=64 
     56T__65=65 
     57T__66=66 
    5458BIN_DIGIT=4 
    5559COLOR=5 
     
    8488    "UNICODE4_ESC", "WS", "'!='", "'%'", "'%='", "'('", "')'", "'*'", "'**'",  
    8589    "'*='", "'+'", "'+='", "','", "'-'", "'-='", "'.'", "'/'", "'//'", "'//='",  
    86     "'/='", "':'", "'<'", "'<='", "'='", "'=='", "'>'", "'>='", "'['", "']'",  
    87     "'and'", "'else'", "'for'", "'if'", "'in'", "'not'", "'or'", "'{'",  
    88     "'}'" 
     90    "'/='", "':'", "'<'", "'<<'", "'<<='", "'<='", "'='", "'=='", "'>'",  
     91    "'>='", "'>>'", "'>>='", "'['", "']'", "'and'", "'else'", "'for'", "'if'",  
     92    "'in'", "'not'", "'or'", "'{'", "'}'" 
    8993] 
    9094 
     
    710714                LA5_0 = self.input.LA(1) 
    711715 
    712                 if (LA5_0 == 52) : 
     716                if (LA5_0 == 56) : 
    713717                    LA5_1 = self.input.LA(2) 
    714718 
    715                     if (LA5_1 == 53) : 
     719                    if (LA5_1 == 57) : 
    716720                        alt5 = 1 
    717                     elif ((COLOR <= LA5_1 <= DATE) or (FALSE <= LA5_1 <= FLOAT) or (INT <= LA5_1 <= NONE) or (STRING <= LA5_1 <= STRING3) or LA5_1 == TRUE or LA5_1 == 30 or LA5_1 == 38 or LA5_1 == 52 or LA5_1 == 59 or LA5_1 == 61) : 
     721                    elif ((COLOR <= LA5_1 <= DATE) or (FALSE <= LA5_1 <= FLOAT) or (INT <= LA5_1 <= NONE) or (STRING <= LA5_1 <= STRING3) or LA5_1 == TRUE or LA5_1 == 30 or LA5_1 == 38 or LA5_1 == 56 or LA5_1 == 63 or LA5_1 == 65) : 
    718722                        alt5 = 2 
    719723                    else: 
     
    740744                    # src/ll/UL4.g:217:3: open= '[' close= ']' 
    741745                    pass  
    742                     open = self.match(self.input, 52, self.FOLLOW_52_in_list1056) 
    743  
    744                     close = self.match(self.input, 53, self.FOLLOW_53_in_list1062) 
     746                    open = self.match(self.input, 56, self.FOLLOW_56_in_list1056) 
     747 
     748                    close = self.match(self.input, 57, self.FOLLOW_57_in_list1062) 
    745749 
    746750                    if self._state.backtracking == 0: 
     
    754758                    # src/ll/UL4.g:220:3: open= '[' e1= expr_if ( ',' e2= expr_if )* ( ',' )? close= ']' 
    755759                    pass  
    756                     open = self.match(self.input, 52, self.FOLLOW_52_in_list1073) 
     760                    open = self.match(self.input, 56, self.FOLLOW_56_in_list1073) 
    757761 
    758762                    if self._state.backtracking == 0: 
     
    781785                            LA3_1 = self.input.LA(2) 
    782786 
    783                             if ((COLOR <= LA3_1 <= DATE) or (FALSE <= LA3_1 <= FLOAT) or (INT <= LA3_1 <= NONE) or (STRING <= LA3_1 <= STRING3) or LA3_1 == TRUE or LA3_1 == 30 or LA3_1 == 38 or LA3_1 == 52 or LA3_1 == 59 or LA3_1 == 61) : 
     787                            if ((COLOR <= LA3_1 <= DATE) or (FALSE <= LA3_1 <= FLOAT) or (INT <= LA3_1 <= NONE) or (STRING <= LA3_1 <= STRING3) or LA3_1 == TRUE or LA3_1 == 30 or LA3_1 == 38 or LA3_1 == 56 or LA3_1 == 63 or LA3_1 == 65) : 
    784788                                alt3 = 1 
    785789 
     
    822826 
    823827 
    824                     close = self.match(self.input, 53, self.FOLLOW_53_in_list1117) 
     828                    close = self.match(self.input, 57, self.FOLLOW_57_in_list1117) 
    825829 
    826830                    if self._state.backtracking == 0: 
     
    865869                # src/ll/UL4.g:236:3: open= '[' item= expr_if 'for' n= nestedlvalue 'in' container= expr_if ( 'if' condition= expr_if )? close= ']' 
    866870                pass  
    867                 open = self.match(self.input, 52, self.FOLLOW_52_in_listcomprehension1145) 
     871                open = self.match(self.input, 56, self.FOLLOW_56_in_listcomprehension1145) 
    868872 
    869873                self._state.following.append(self.FOLLOW_expr_if_in_listcomprehension1151) 
     
    872876                self._state.following.pop() 
    873877 
    874                 self.match(self.input, 56, self.FOLLOW_56_in_listcomprehension1155) 
     878                self.match(self.input, 60, self.FOLLOW_60_in_listcomprehension1155) 
    875879 
    876880                self._state.following.append(self.FOLLOW_nestedlvalue_in_listcomprehension1161) 
     
    879883                self._state.following.pop() 
    880884 
    881                 self.match(self.input, 58, self.FOLLOW_58_in_listcomprehension1165) 
     885                self.match(self.input, 62, self.FOLLOW_62_in_listcomprehension1165) 
    882886 
    883887                self._state.following.append(self.FOLLOW_expr_if_in_listcomprehension1171) 
     
    890894                LA6_0 = self.input.LA(1) 
    891895 
    892                 if (LA6_0 == 57) : 
     896                if (LA6_0 == 61) : 
    893897                    alt6 = 1 
    894898                if alt6 == 1: 
    895899                    # src/ll/UL4.g:243:4: 'if' condition= expr_if 
    896900                    pass  
    897                     self.match(self.input, 57, self.FOLLOW_57_in_listcomprehension1180) 
     901                    self.match(self.input, 61, self.FOLLOW_61_in_listcomprehension1180) 
    898902 
    899903                    self._state.following.append(self.FOLLOW_expr_if_in_listcomprehension1187) 
     
    911915 
    912916 
    913                 close = self.match(self.input, 53, self.FOLLOW_53_in_listcomprehension1200) 
     917                close = self.match(self.input, 57, self.FOLLOW_57_in_listcomprehension1200) 
    914918 
    915919                if self._state.backtracking == 0: 
     
    9981002                LA9_0 = self.input.LA(1) 
    9991003 
    1000                 if (LA9_0 == 61) : 
     1004                if (LA9_0 == 65) : 
    10011005                    LA9_1 = self.input.LA(2) 
    10021006 
    1003                     if (LA9_1 == 62) : 
     1007                    if (LA9_1 == 66) : 
    10041008                        alt9 = 1 
    1005                     elif ((COLOR <= LA9_1 <= DATE) or (FALSE <= LA9_1 <= FLOAT) or (INT <= LA9_1 <= NONE) or (STRING <= LA9_1 <= STRING3) or LA9_1 == TRUE or LA9_1 == 30 or LA9_1 == 38 or LA9_1 == 52 or LA9_1 == 59 or LA9_1 == 61) : 
     1009                    elif ((COLOR <= LA9_1 <= DATE) or (FALSE <= LA9_1 <= FLOAT) or (INT <= LA9_1 <= NONE) or (STRING <= LA9_1 <= STRING3) or LA9_1 == TRUE or LA9_1 == 30 or LA9_1 == 38 or LA9_1 == 56 or LA9_1 == 63 or LA9_1 == 65) : 
    10061010                        alt9 = 2 
    10071011                    else: 
     
    10281032                    # src/ll/UL4.g:260:3: open= '{' close= '}' 
    10291033                    pass  
    1030                     open = self.match(self.input, 61, self.FOLLOW_61_in_dict1256) 
    1031  
    1032                     close = self.match(self.input, 62, self.FOLLOW_62_in_dict1262) 
     1034                    open = self.match(self.input, 65, self.FOLLOW_65_in_dict1256) 
     1035 
     1036                    close = self.match(self.input, 66, self.FOLLOW_66_in_dict1262) 
    10331037 
    10341038                    if self._state.backtracking == 0: 
     
    10421046                    # src/ll/UL4.g:263:3: open= '{' i1= dictitem ( ',' i2= dictitem )* ( ',' )? close= '}' 
    10431047                    pass  
    1044                     open = self.match(self.input, 61, self.FOLLOW_61_in_dict1273) 
     1048                    open = self.match(self.input, 65, self.FOLLOW_65_in_dict1273) 
    10451049 
    10461050                    if self._state.backtracking == 0: 
     
    10691073                            LA7_1 = self.input.LA(2) 
    10701074 
    1071                             if ((COLOR <= LA7_1 <= DATE) or (FALSE <= LA7_1 <= FLOAT) or (INT <= LA7_1 <= NONE) or (STRING <= LA7_1 <= STRING3) or LA7_1 == TRUE or LA7_1 == 30 or LA7_1 == 38 or LA7_1 == 52 or LA7_1 == 59 or LA7_1 == 61) : 
     1075                            if ((COLOR <= LA7_1 <= DATE) or (FALSE <= LA7_1 <= FLOAT) or (INT <= LA7_1 <= NONE) or (STRING <= LA7_1 <= STRING3) or LA7_1 == TRUE or LA7_1 == 30 or LA7_1 == 38 or LA7_1 == 56 or LA7_1 == 63 or LA7_1 == 65) : 
    10721076                                alt7 = 1 
    10731077 
     
    11101114 
    11111115 
    1112                     close = self.match(self.input, 62, self.FOLLOW_62_in_dict1317) 
     1116                    close = self.match(self.input, 66, self.FOLLOW_66_in_dict1317) 
    11131117 
    11141118                    if self._state.backtracking == 0: 
     
    11541158                # src/ll/UL4.g:279:3: open= '{' key= expr_if ':' value= expr_if 'for' n= nestedlvalue 'in' container= expr_if ( 'if' condition= expr_if )? close= '}' 
    11551159                pass  
    1156                 open = self.match(self.input, 61, self.FOLLOW_61_in_dictcomprehension1345) 
     1160                open = self.match(self.input, 65, self.FOLLOW_65_in_dictcomprehension1345) 
    11571161 
    11581162                self._state.following.append(self.FOLLOW_expr_if_in_dictcomprehension1351) 
     
    11681172                self._state.following.pop() 
    11691173 
    1170                 self.match(self.input, 56, self.FOLLOW_56_in_dictcomprehension1365) 
     1174                self.match(self.input, 60, self.FOLLOW_60_in_dictcomprehension1365) 
    11711175 
    11721176                self._state.following.append(self.FOLLOW_nestedlvalue_in_dictcomprehension1371) 
     
    11751179                self._state.following.pop() 
    11761180 
    1177                 self.match(self.input, 58, self.FOLLOW_58_in_dictcomprehension1375) 
     1181                self.match(self.input, 62, self.FOLLOW_62_in_dictcomprehension1375) 
    11781182 
    11791183                self._state.following.append(self.FOLLOW_expr_if_in_dictcomprehension1381) 
     
    11861190                LA10_0 = self.input.LA(1) 
    11871191 
    1188                 if (LA10_0 == 57) : 
     1192                if (LA10_0 == 61) : 
    11891193                    alt10 = 1 
    11901194                if alt10 == 1: 
    11911195                    # src/ll/UL4.g:288:4: 'if' condition= expr_if 
    11921196                    pass  
    1193                     self.match(self.input, 57, self.FOLLOW_57_in_dictcomprehension1390) 
     1197                    self.match(self.input, 61, self.FOLLOW_61_in_dictcomprehension1390) 
    11941198 
    11951199                    self._state.following.append(self.FOLLOW_expr_if_in_dictcomprehension1397) 
     
    12071211 
    12081212 
    1209                 close = self.match(self.input, 62, self.FOLLOW_62_in_dictcomprehension1410) 
     1213                close = self.match(self.input, 66, self.FOLLOW_66_in_dictcomprehension1410) 
    12101214 
    12111215                if self._state.backtracking == 0: 
     
    12611265 
    12621266 
    1263                 self.match(self.input, 56, self.FOLLOW_56_in_generatorexpression1444) 
     1267                self.match(self.input, 60, self.FOLLOW_60_in_generatorexpression1444) 
    12641268 
    12651269                self._state.following.append(self.FOLLOW_nestedlvalue_in_generatorexpression1450) 
     
    12681272                self._state.following.pop() 
    12691273 
    1270                 self.match(self.input, 58, self.FOLLOW_58_in_generatorexpression1454) 
     1274                self.match(self.input, 62, self.FOLLOW_62_in_generatorexpression1454) 
    12711275 
    12721276                self._state.following.append(self.FOLLOW_expr_if_in_generatorexpression1460) 
     
    12851289                LA11_0 = self.input.LA(1) 
    12861290 
    1287                 if (LA11_0 == 57) : 
     1291                if (LA11_0 == 61) : 
    12881292                    alt11 = 1 
    12891293                if alt11 == 1: 
    12901294                    # src/ll/UL4.g:307:4: 'if' condition= expr_if 
    12911295                    pass  
    1292                     self.match(self.input, 57, self.FOLLOW_57_in_generatorexpression1471) 
     1296                    self.match(self.input, 61, self.FOLLOW_61_in_generatorexpression1471) 
    12931297 
    12941298                    self._state.following.append(self.FOLLOW_expr_if_in_generatorexpression1478) 
     
    13501354                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 == STRING3 or LA12 == TRUE: 
    13511355                    alt12 = 1 
    1352                 elif LA12 == 52: 
     1356                elif LA12 == 56: 
    13531357                    LA12_11 = self.input.LA(2) 
    13541358 
     
    13671371 
    13681372 
    1369                 elif LA12 == 61: 
     1373                elif LA12 == 65: 
    13701374                    LA12_12 = self.input.LA(2) 
    13711375 
     
    15731577                LA15_0 = self.input.LA(1) 
    15741578 
    1575                 if ((COLOR <= LA15_0 <= DATE) or (FALSE <= LA15_0 <= FLOAT) or (INT <= LA15_0 <= NONE) or (STRING <= LA15_0 <= STRING3) or LA15_0 == TRUE or LA15_0 == 52 or LA15_0 == 61) : 
     1579                if ((COLOR <= LA15_0 <= DATE) or (FALSE <= LA15_0 <= FLOAT) or (INT <= LA15_0 <= NONE) or (STRING <= LA15_0 <= STRING3) or LA15_0 == TRUE or LA15_0 == 56 or LA15_0 == 65) : 
    15761580                    alt15 = 1 
    15771581                elif (LA15_0 == 30) : 
     
    16711675                            LA13_1 = self.input.LA(2) 
    16721676 
    1673                             if ((COLOR <= LA13_1 <= DATE) or (FALSE <= LA13_1 <= FLOAT) or (INT <= LA13_1 <= NONE) or (STRING <= LA13_1 <= STRING3) or LA13_1 == TRUE or LA13_1 == 30 or LA13_1 == 52 or LA13_1 == 61) : 
     1677                            if ((COLOR <= LA13_1 <= DATE) or (FALSE <= LA13_1 <= FLOAT) or (INT <= LA13_1 <= NONE) or (STRING <= LA13_1 <= STRING3) or LA13_1 == TRUE or LA13_1 == 30 or LA13_1 == 56 or LA13_1 == 65) : 
    16741678                                alt13 = 1 
    16751679 
     
    17921796                    elif LA33 == 30: 
    17931797                        alt33 = 2 
    1794                     elif LA33 == 52: 
     1798                    elif LA33 == 56: 
    17951799                        alt33 = 3 
    17961800 
     
    18321836                        elif LA28 == 32: 
    18331837                            alt28 = 3 
    1834                         elif LA28 == COLOR or LA28 == DATE or LA28 == FALSE or LA28 == FLOAT or LA28 == INT or LA28 == NONE or LA28 == STRING or LA28 == STRING3 or LA28 == TRUE or LA28 == 30 or LA28 == 38 or LA28 == 52 or LA28 == 59 or LA28 == 61: 
     1838                        elif LA28 == COLOR or LA28 == DATE or LA28 == FALSE or LA28 == FLOAT or LA28 == INT or LA28 == NONE or LA28 == STRING or LA28 == STRING3 or LA28 == TRUE or LA28 == 30 or LA28 == 38 or LA28 == 56 or LA28 == 63 or LA28 == 65: 
    18351839                            alt28 = 4 
    18361840                        elif LA28 == NAME: 
    18371841                            LA28_5 = self.input.LA(2) 
    18381842 
    1839                             if ((27 <= LA28_5 <= 28) or (30 <= LA28_5 <= 32) or LA28_5 == 35 or (37 <= LA28_5 <= 38) or (40 <= LA28_5 <= 42) or (46 <= LA28_5 <= 47) or (49 <= LA28_5 <= 52) or LA28_5 == 54 or (56 <= LA28_5 <= 60)) : 
     1843                            if ((27 <= LA28_5 <= 28) or (30 <= LA28_5 <= 32) or LA28_5 == 35 or (37 <= LA28_5 <= 38) or (40 <= LA28_5 <= 42) or (46 <= LA28_5 <= 47) or LA28_5 == 49 or (51 <= LA28_5 <= 54) or LA28_5 == 56 or LA28_5 == 58 or (60 <= LA28_5 <= 64)) : 
    18401844                                alt28 = 4 
    1841                             elif (LA28_5 == 48) : 
     1845                            elif (LA28_5 == 50) : 
    18421846                                alt28 = 5 
    18431847                            else: 
     
    19821986                                        LA19_3 = self.input.LA(3) 
    19831987 
    1984                                         if ((27 <= LA19_3 <= 28) or (30 <= LA19_3 <= 32) or LA19_3 == 35 or (37 <= LA19_3 <= 38) or (40 <= LA19_3 <= 42) or (46 <= LA19_3 <= 47) or (49 <= LA19_3 <= 52) or LA19_3 == 54 or (56 <= LA19_3 <= 60)) : 
     1988                                        if ((27 <= LA19_3 <= 28) or (30 <= LA19_3 <= 32) or LA19_3 == 35 or (37 <= LA19_3 <= 38) or (40 <= LA19_3 <= 42) or (46 <= LA19_3 <= 47) or LA19_3 == 49 or (51 <= LA19_3 <= 54) or LA19_3 == 56 or LA19_3 == 58 or (60 <= LA19_3 <= 64)) : 
    19851989                                            alt19 = 1 
    19861990 
    19871991 
    1988                                     elif ((COLOR <= LA19_1 <= DATE) or (FALSE <= LA19_1 <= FLOAT) or LA19_1 == INT or LA19_1 == NONE or (STRING <= LA19_1 <= STRING3) or LA19_1 == TRUE or LA19_1 == 30 or LA19_1 == 38 or LA19_1 == 52 or LA19_1 == 59 or LA19_1 == 61) : 
     1992                                    elif ((COLOR <= LA19_1 <= DATE) or (FALSE <= LA19_1 <= FLOAT) or LA19_1 == INT or LA19_1 == NONE or (STRING <= LA19_1 <= STRING3) or LA19_1 == TRUE or LA19_1 == 30 or LA19_1 == 38 or LA19_1 == 56 or LA19_1 == 63 or LA19_1 == 65) : 
    19891993                                        alt19 = 1 
    19901994 
     
    20372041                                    self._state.following.pop() 
    20382042 
    2039                                     self.match(self.input, 48, self.FOLLOW_48_in_expr_subscript1922) 
     2043                                    self.match(self.input, 50, self.FOLLOW_50_in_expr_subscript1922) 
    20402044 
    20412045                                    self._state.following.append(self.FOLLOW_exprarg_in_expr_subscript1926) 
     
    21382142                            self._state.following.pop() 
    21392143 
    2140                             self.match(self.input, 48, self.FOLLOW_48_in_expr_subscript2029) 
     2144                            self.match(self.input, 50, self.FOLLOW_50_in_expr_subscript2029) 
    21412145 
    21422146                            self._state.following.append(self.FOLLOW_exprarg_in_expr_subscript2033) 
     
    21752179                                    self._state.following.pop() 
    21762180 
    2177                                     self.match(self.input, 48, self.FOLLOW_48_in_expr_subscript2059) 
     2181                                    self.match(self.input, 50, self.FOLLOW_50_in_expr_subscript2059) 
    21782182 
    21792183                                    self._state.following.append(self.FOLLOW_exprarg_in_expr_subscript2063) 
     
    22822286                        # src/ll/UL4.g:420:4: '[' ( ':' (e2= expr_if )? |e2= expr_if ( ':' (e3= expr_if )? )? ) close= ']' 
    22832287                        pass  
    2284                         self.match(self.input, 52, self.FOLLOW_52_in_expr_subscript2173) 
     2288                        self.match(self.input, 56, self.FOLLOW_56_in_expr_subscript2173) 
    22852289 
    22862290                        # src/ll/UL4.g:421:4: ( ':' (e2= expr_if )? |e2= expr_if ( ':' (e3= expr_if )? )? ) 
     
    22902294                        if (LA32_0 == 45) : 
    22912295                            alt32 = 1 
    2292                         elif ((COLOR <= LA32_0 <= DATE) or (FALSE <= LA32_0 <= FLOAT) or (INT <= LA32_0 <= NONE) or (STRING <= LA32_0 <= STRING3) or LA32_0 == TRUE or LA32_0 == 30 or LA32_0 == 38 or LA32_0 == 52 or LA32_0 == 59 or LA32_0 == 61) : 
     2296                        elif ((COLOR <= LA32_0 <= DATE) or (FALSE <= LA32_0 <= FLOAT) or (INT <= LA32_0 <= NONE) or (STRING <= LA32_0 <= STRING3) or LA32_0 == TRUE or LA32_0 == 30 or LA32_0 == 38 or LA32_0 == 56 or LA32_0 == 63 or LA32_0 == 65) : 
    22932297                            alt32 = 2 
    22942298                        else: 
     
    23112315                            LA29_0 = self.input.LA(1) 
    23122316 
    2313                             if ((COLOR <= LA29_0 <= DATE) or (FALSE <= LA29_0 <= FLOAT) or (INT <= LA29_0 <= NONE) or (STRING <= LA29_0 <= STRING3) or LA29_0 == TRUE or LA29_0 == 30 or LA29_0 == 38 or LA29_0 == 52 or LA29_0 == 59 or LA29_0 == 61) : 
     2317                            if ((COLOR <= LA29_0 <= DATE) or (FALSE <= LA29_0 <= FLOAT) or (INT <= LA29_0 <= NONE) or (STRING <= LA29_0 <= STRING3) or LA29_0 == TRUE or LA29_0 == 30 or LA29_0 == 38 or LA29_0 == 56 or LA29_0 == 63 or LA29_0 == 65) : 
    23142318                                alt29 = 1 
    23152319                            if alt29 == 1: 
     
    23722376                                LA30_0 = self.input.LA(1) 
    23732377 
    2374                                 if ((COLOR <= LA30_0 <= DATE) or (FALSE <= LA30_0 <= FLOAT) or (INT <= LA30_0 <= NONE) or (STRING <= LA30_0 <= STRING3) or LA30_0 == TRUE or LA30_0 == 30 or LA30_0 == 38 or LA30_0 == 52 or LA30_0 == 59 or LA30_0 == 61) : 
     2378                                if ((COLOR <= LA30_0 <= DATE) or (FALSE <= LA30_0 <= FLOAT) or (INT <= LA30_0 <= NONE) or (STRING <= LA30_0 <= STRING3) or LA30_0 == TRUE or LA30_0 == 30 or LA30_0 == 38 or LA30_0 == 56 or LA30_0 == 63 or LA30_0 == 65) : 
    23752379                                    alt30 = 1 
    23762380                                if alt30 == 1: 
     
    24032407 
    24042408 
    2405                         close = self.match(self.input, 53, self.FOLLOW_53_in_expr_subscript2288) 
     2409                        close = self.match(self.input, 57, self.FOLLOW_57_in_expr_subscript2288) 
    24062410 
    24072411                        if self._state.backtracking == 0: 
     
    24502454                LA34_0 = self.input.LA(1) 
    24512455 
    2452                 if ((COLOR <= LA34_0 <= DATE) or (FALSE <= LA34_0 <= FLOAT) or (INT <= LA34_0 <= NONE) or (STRING <= LA34_0 <= STRING3) or LA34_0 == TRUE or LA34_0 == 30 or LA34_0 == 52 or LA34_0 == 61) : 
     2456                if ((COLOR <= LA34_0 <= DATE) or (FALSE <= LA34_0 <= FLOAT) or (INT <= LA34_0 <= NONE) or (STRING <= LA34_0 <= STRING3) or LA34_0 == TRUE or LA34_0 == 30 or LA34_0 == 56 or LA34_0 == 65) : 
    24532457                    alt34 = 1 
    24542458                elif (LA34_0 == 38) : 
     
    27602764 
    27612765 
    2762     # $ANTLR start "expr_cmp" 
    2763     # src/ll/UL4.g:480:1: expr_cmp returns [node] : e1= expr_add ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_add )* ; 
    2764     def expr_cmp(self, ): 
     2766    # $ANTLR start "expr_bitshift" 
     2767    # src/ll/UL4.g:480:1: expr_bitshift returns [AST node] : e1= expr_add ( ( '<<' | '>>' ) e2= expr_add )* ; 
     2768    def expr_bitshift(self, ): 
    27652769        node = None 
    27662770 
     
    27712775        try: 
    27722776            try: 
    2773                 # src/ll/UL4.g:481:2: (e1= expr_add ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_add )* ) 
    2774                 # src/ll/UL4.g:482:3: e1= expr_add ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_add )* 
     2777                # src/ll/UL4.g:481:2: (e1= expr_add ( ( '<<' | '>>' ) e2= expr_add )* ) 
     2778                # src/ll/UL4.g:482:3: e1= expr_add ( ( '<<' | '>>' ) e2= expr_add )* 
    27752779                pass  
    2776                 self._state.following.append(self.FOLLOW_expr_add_in_expr_cmp2524) 
     2780                self._state.following.append(self.FOLLOW_expr_add_in_expr_bitshift2524) 
    27772781                e1 = self.expr_add() 
    27782782 
     
    27852789 
    27862790 
    2787                 # src/ll/UL4.g:483:3: ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_add )* 
     2791                # src/ll/UL4.g:483:3: ( ( '<<' | '>>' ) e2= expr_add )* 
    27882792                while True: #loop40 
    27892793                    alt40 = 2 
    27902794                    LA40_0 = self.input.LA(1) 
    27912795 
    2792                     if (LA40_0 == 27 or (46 <= LA40_0 <= 47) or (49 <= LA40_0 <= 51)) : 
     2796                    if (LA40_0 == 47 or LA40_0 == 54) : 
    27932797                        alt40 = 1 
    27942798 
    27952799 
    27962800                    if alt40 == 1: 
    2797                         # src/ll/UL4.g:484:4: ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_add 
     2801                        # src/ll/UL4.g:484:4: ( '<<' | '>>' ) e2= expr_add 
    27982802                        pass  
    2799                         # src/ll/UL4.g:484:4: ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) 
    2800                         alt39 = 6 
    2801                         LA39 = self.input.LA(1) 
    2802                         if LA39 == 49: 
     2803                        # src/ll/UL4.g:484:4: ( '<<' | '>>' ) 
     2804                        alt39 = 2 
     2805                        LA39_0 = self.input.LA(1) 
     2806 
     2807                        if (LA39_0 == 47) : 
    28032808                            alt39 = 1 
    2804                         elif LA39 == 27: 
     2809                        elif (LA39_0 == 54) : 
    28052810                            alt39 = 2 
    2806                         elif LA39 == 46: 
    2807                             alt39 = 3 
    2808                         elif LA39 == 47: 
    2809                             alt39 = 4 
    2810                         elif LA39 == 50: 
    2811                             alt39 = 5 
    2812                         elif LA39 == 51: 
    2813                             alt39 = 6 
    28142811                        else: 
    28152812                            if self._state.backtracking > 0: 
     
    28232820 
    28242821                        if alt39 == 1: 
    2825                             # src/ll/UL4.g:485:5: '==' 
     2822                            # src/ll/UL4.g:485:5: '<<' 
    28262823                            pass  
    2827                             self.match(self.input, 49, self.FOLLOW_49_in_expr_cmp2541) 
     2824                            self.match(self.input, 47, self.FOLLOW_47_in_expr_bitshift2541) 
     2825 
     2826                            if self._state.backtracking == 0: 
     2827                                pass 
     2828                                cls = ul4c.ShiftLeft;  
     2829 
     2830 
     2831 
     2832 
     2833                        elif alt39 == 2: 
     2834                            # src/ll/UL4.g:487:5: '>>' 
     2835                            pass  
     2836                            self.match(self.input, 54, self.FOLLOW_54_in_expr_bitshift2554) 
     2837 
     2838                            if self._state.backtracking == 0: 
     2839                                pass 
     2840                                cls = ul4c.ShiftRight;  
     2841 
     2842 
     2843 
     2844 
     2845 
     2846 
     2847                        self._state.following.append(self.FOLLOW_expr_add_in_expr_bitshift2568) 
     2848                        e2 = self.expr_add() 
     2849 
     2850                        self._state.following.pop() 
     2851 
     2852                        if self._state.backtracking == 0: 
     2853                            pass 
     2854                            node = cls.make(self.location, node.start, e2.end, node, e2)  
     2855 
     2856 
     2857 
     2858 
     2859                    else: 
     2860                        break #loop40 
     2861 
     2862 
     2863 
     2864 
     2865 
     2866                        
     2867            except RecognitionException as e: 
     2868                raise 
     2869 
     2870        finally: 
     2871            pass 
     2872        return node 
     2873 
     2874    # $ANTLR end "expr_bitshift" 
     2875 
     2876 
     2877 
     2878    # $ANTLR start "expr_cmp" 
     2879    # src/ll/UL4.g:494:1: expr_cmp returns [node] : e1= expr_bitshift ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_bitshift )* ; 
     2880    def expr_cmp(self, ): 
     2881        node = None 
     2882 
     2883 
     2884        e1 = None 
     2885        e2 = None 
     2886 
     2887        try: 
     2888            try: 
     2889                # src/ll/UL4.g:495:2: (e1= expr_bitshift ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_bitshift )* ) 
     2890                # src/ll/UL4.g:496:3: e1= expr_bitshift ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_bitshift )* 
     2891                pass  
     2892                self._state.following.append(self.FOLLOW_expr_bitshift_in_expr_cmp2596) 
     2893                e1 = self.expr_bitshift() 
     2894 
     2895                self._state.following.pop() 
     2896 
     2897                if self._state.backtracking == 0: 
     2898                    pass 
     2899                    node =  e1  
     2900 
     2901 
     2902 
     2903                # src/ll/UL4.g:497:3: ( ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_bitshift )* 
     2904                while True: #loop42 
     2905                    alt42 = 2 
     2906                    LA42_0 = self.input.LA(1) 
     2907 
     2908                    if (LA42_0 == 27 or LA42_0 == 46 or LA42_0 == 49 or (51 <= LA42_0 <= 53)) : 
     2909                        alt42 = 1 
     2910 
     2911 
     2912                    if alt42 == 1: 
     2913                        # src/ll/UL4.g:498:4: ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) e2= expr_bitshift 
     2914                        pass  
     2915                        # src/ll/UL4.g:498:4: ( '==' | '!=' | '<' | '<=' | '>' | '>=' ) 
     2916                        alt41 = 6 
     2917                        LA41 = self.input.LA(1) 
     2918                        if LA41 == 51: 
     2919                            alt41 = 1 
     2920                        elif LA41 == 27: 
     2921                            alt41 = 2 
     2922                        elif LA41 == 46: 
     2923                            alt41 = 3 
     2924                        elif LA41 == 49: 
     2925                            alt41 = 4 
     2926                        elif LA41 == 52: 
     2927                            alt41 = 5 
     2928                        elif LA41 == 53: 
     2929                            alt41 = 6 
     2930                        else: 
     2931                            if self._state.backtracking > 0: 
     2932                                raise BacktrackingFailed 
     2933 
     2934 
     2935                            nvae = NoViableAltException("", 41, 0, self.input) 
     2936 
     2937                            raise nvae 
     2938 
     2939 
     2940                        if alt41 == 1: 
     2941                            # src/ll/UL4.g:499:5: '==' 
     2942                            pass  
     2943                            self.match(self.input, 51, self.FOLLOW_51_in_expr_cmp2613) 
    28282944 
    28292945                            if self._state.backtracking == 0: 
     
    28342950 
    28352951 
    2836                         elif alt39 == 2: 
    2837                             # src/ll/UL4.g:487:5: '!=' 
     2952                        elif alt41 == 2: 
     2953                            # src/ll/UL4.g:501:5: '!=' 
    28382954                            pass  
    2839                             self.match(self.input, 27, self.FOLLOW_27_in_expr_cmp2554) 
     2955                            self.match(self.input, 27, self.FOLLOW_27_in_expr_cmp2626) 
    28402956 
    28412957                            if self._state.backtracking == 0: 
     
    28462962 
    28472963 
    2848                         elif alt39 == 3: 
    2849                             # src/ll/UL4.g:489:5: '<' 
     2964                        elif alt41 == 3: 
     2965                            # src/ll/UL4.g:503:5: '<' 
    28502966                            pass  
    2851                             self.match(self.input, 46, self.FOLLOW_46_in_expr_cmp2567) 
     2967                            self.match(self.input, 46, self.FOLLOW_46_in_expr_cmp2639) 
    28522968 
    28532969                            if self._state.backtracking == 0: 
     
    28582974 
    28592975 
    2860                         elif alt39 == 4: 
    2861                             # src/ll/UL4.g:491:5: '<=' 
     2976                        elif alt41 == 4: 
     2977                            # src/ll/UL4.g:505:5: '<=' 
    28622978                            pass  
    2863                             self.match(self.input, 47, self.FOLLOW_47_in_expr_cmp2580) 
     2979                            self.match(self.input, 49, self.FOLLOW_49_in_expr_cmp2652) 
    28642980 
    28652981                            if self._state.backtracking == 0: 
     
    28702986 
    28712987 
    2872                         elif alt39 == 5: 
    2873                             # src/ll/UL4.g:493:5: '>' 
     2988                        elif alt41 == 5: 
     2989                            # src/ll/UL4.g:507:5: '>' 
    28742990                            pass  
    2875                             self.match(self.input, 50, self.FOLLOW_50_in_expr_cmp2593) 
     2991                            self.match(self.input, 52, self.FOLLOW_52_in_expr_cmp2665) 
    28762992 
    28772993                            if self._state.backtracking == 0: 
     
    28822998 
    28832999 
    2884                         elif alt39 == 6: 
    2885                             # src/ll/UL4.g:495:5: '>=' 
     3000                        elif alt41 == 6: 
     3001                            # src/ll/UL4.g:509:5: '>=' 
    28863002                            pass  
    2887                             self.match(self.input, 51, self.FOLLOW_51_in_expr_cmp2606) 
     3003                            self.match(self.input, 53, self.FOLLOW_53_in_expr_cmp2678) 
    28883004 
    28893005                            if self._state.backtracking == 0: 
     
    28963012 
    28973013 
    2898                         self._state.following.append(self.FOLLOW_expr_add_in_expr_cmp2620) 
    2899                         e2 = self.expr_add() 
     3014                        self._state.following.append(self.FOLLOW_expr_bitshift_in_expr_cmp2692) 
     3015                        e2 = self.expr_bitshift() 
    29003016 
    29013017                        self._state.following.pop() 
     
    29093025 
    29103026                    else: 
    2911                         break #loop40 
     3027                        break #loop42 
    29123028 
    29133029 
     
    29283044 
    29293045    # $ANTLR start "expr_contain" 
    2930     # src/ll/UL4.g:502:1: expr_contain returns [node] : e1= expr_cmp ( ( 'not' )? 'in' e2= expr_cmp )? ; 
     3046    # src/ll/UL4.g:516:1: expr_contain returns [node] : e1= expr_cmp ( ( 'not' )? 'in' e2= expr_cmp )? ; 
    29313047    def expr_contain(self, ): 
    29323048        node = None 
     
    29383054        try: 
    29393055            try: 
    2940                 # src/ll/UL4.g:503:2: (e1= expr_cmp ( ( 'not' )? 'in' e2= expr_cmp )? ) 
    2941                 # src/ll/UL4.g:504:3: e1= expr_cmp ( ( 'not' )? 'in' e2= expr_cmp )? 
     3056                # src/ll/UL4.g:517:2: (e1= expr_cmp ( ( 'not' )? 'in' e2= expr_cmp )? ) 
     3057                # src/ll/UL4.g:518:3: e1= expr_cmp ( ( 'not' )? 'in' e2= expr_cmp )? 
    29423058                pass  
    2943                 self._state.following.append(self.FOLLOW_expr_cmp_in_expr_contain2648) 
     3059                self._state.following.append(self.FOLLOW_expr_cmp_in_expr_contain2720) 
    29443060                e1 = self.expr_cmp() 
    29453061 
     
    29523068 
    29533069 
    2954                 # src/ll/UL4.g:505:3: ( ( 'not' )? 'in' e2= expr_cmp )? 
    2955                 alt42 = 2 
    2956                 LA42_0 = self.input.LA(1) 
    2957  
    2958                 if ((58 <= LA42_0 <= 59)) : 
    2959                     alt42 = 1 
    2960                 if alt42 == 1: 
    2961                     # src/ll/UL4.g:506:4: ( 'not' )? 'in' e2= expr_cmp 
     3070                # src/ll/UL4.g:519:3: ( ( 'not' )? 'in' e2= expr_cmp )? 
     3071                alt44 = 2 
     3072                LA44_0 = self.input.LA(1) 
     3073 
     3074                if ((62 <= LA44_0 <= 63)) : 
     3075                    alt44 = 1 
     3076                if alt44 == 1: 
     3077                    # src/ll/UL4.g:520:4: ( 'not' )? 'in' e2= expr_cmp 
    29623078                    pass  
    29633079                    if self._state.backtracking == 0: 
     
    29673083 
    29683084 
    2969                     # src/ll/UL4.g:507:4: ( 'not' )? 
    2970                     alt41 = 2 
    2971                     LA41_0 = self.input.LA(1) 
    2972  
    2973                     if (LA41_0 == 59) : 
    2974                         alt41 = 1 
    2975                     if alt41 == 1: 
    2976                         # src/ll/UL4.g:508:5: 'not' 
     3085                    # src/ll/UL4.g:521:4: ( 'not' )? 
     3086                    alt43 = 2 
     3087                    LA43_0 = self.input.LA(1) 
     3088 
     3089                    if (LA43_0 == 63) : 
     3090                        alt43 = 1 
     3091                    if alt43 == 1: 
     3092                        # src/ll/UL4.g:522:5: 'not' 
    29773093                        pass  
    2978                         self.match(self.input, 59, self.FOLLOW_59_in_expr_contain2670) 
     3094                        self.match(self.input, 63, self.FOLLOW_63_in_expr_contain2742) 
    29793095 
    29803096                        if self._state.backtracking == 0: 
     
    29873103 
    29883104 
    2989                     self.match(self.input, 58, self.FOLLOW_58_in_expr_contain2683) 
    2990  
    2991                     self._state.following.append(self.FOLLOW_expr_cmp_in_expr_contain2690) 
     3105                    self.match(self.input, 62, self.FOLLOW_62_in_expr_contain2755) 
     3106 
     3107                    self._state.following.append(self.FOLLOW_expr_cmp_in_expr_contain2762) 
    29923108                    e2 = self.expr_cmp() 
    29933109 
     
    30193135 
    30203136    # $ANTLR start "expr_not" 
    3021     # src/ll/UL4.g:516:1: expr_not returns [node] : (e1= expr_contain |n= 'not' e2= expr_not ); 
     3137    # src/ll/UL4.g:530:1: expr_not returns [node] : (e1= expr_contain |n= 'not' e2= expr_not ); 
    30223138    def expr_not(self, ): 
    30233139        node = None 
     
    30303146        try: 
    30313147            try: 
    3032                 # src/ll/UL4.g:517:2: (e1= expr_contain |n= 'not' e2= expr_not ) 
    3033                 alt43 = 2 
    3034                 LA43_0 = self.input.LA(1) 
    3035  
    3036                 if ((COLOR <= LA43_0 <= DATE) or (FALSE <= LA43_0 <= FLOAT) or (INT <= LA43_0 <= NONE) or (STRING <= LA43_0 <= STRING3) or LA43_0 == TRUE or LA43_0 == 30 or LA43_0 == 38 or LA43_0 == 52 or LA43_0 == 61) : 
    3037                     alt43 = 1 
    3038                 elif (LA43_0 == 59) : 
    3039                     alt43 = 2 
     3148                # src/ll/UL4.g:531:2: (e1= expr_contain |n= 'not' e2= expr_not ) 
     3149                alt45 = 2 
     3150                LA45_0 = self.input.LA(1) 
     3151 
     3152                if ((COLOR <= LA45_0 <= DATE) or (FALSE <= LA45_0 <= FLOAT) or (INT <= LA45_0 <= NONE) or (STRING <= LA45_0 <= STRING3) or LA45_0 == TRUE or LA45_0 == 30 or LA45_0 == 38 or LA45_0 == 56 or LA45_0 == 65) : 
     3153                    alt45 = 1 
     3154                elif (LA45_0 == 63) : 
     3155                    alt45 = 2 
    30403156                else: 
    30413157                    if self._state.backtracking > 0: 
     
    30433159 
    30443160 
    3045                     nvae = NoViableAltException("", 43, 0, self.input) 
     3161                    nvae = NoViableAltException("", 45, 0, self.input) 
    30463162 
    30473163                    raise nvae 
    30483164 
    30493165 
    3050                 if alt43 == 1: 
    3051                     # src/ll/UL4.g:518:3: e1= expr_contain 
     3166                if alt45 == 1: 
     3167                    # src/ll/UL4.g:532:3: e1= expr_contain 
    30523168                    pass  
    3053                     self._state.following.append(self.FOLLOW_expr_contain_in_expr_not2718) 
     3169                    self._state.following.append(self.FOLLOW_expr_contain_in_expr_not2790) 
    30543170                    e1 = self.expr_contain() 
    30553171 
     
    30633179 
    30643180 
    3065                 elif alt43 == 2: 
    3066                     # src/ll/UL4.g:520:3: n= 'not' e2= expr_not 
     3181                elif alt45 == 2: 
     3182                    # src/ll/UL4.g:534:3: n= 'not' e2= expr_not 
    30673183                    pass  
    3068                     n = self.match(self.input, 59, self.FOLLOW_59_in_expr_not2729) 
    3069  
    3070                     self._state.following.append(self.FOLLOW_expr_not_in_expr_not2733) 
     3184                    n = self.match(self.input, 63, self.FOLLOW_63_in_expr_not2801) 
     3185 
     3186                    self._state.following.append(self.FOLLOW_expr_not_in_expr_not2805) 
    30713187                    e2 = self.expr_not() 
    30723188 
     
    30943210 
    30953211    # $ANTLR start "expr_and" 
    3096     # src/ll/UL4.g:525:1: expr_and returns [node] : e1= expr_not ( 'and' e2= expr_not )* ; 
     3212    # src/ll/UL4.g:539:1: expr_and returns [node] : e1= expr_not ( 'and' e2= expr_not )* ; 
    30973213    def expr_and(self, ): 
    30983214        node = None 
     
    31043220        try: 
    31053221            try: 
    3106                 # src/ll/UL4.g:526:2: (e1= expr_not ( 'and' e2= expr_not )* ) 
    3107                 # src/ll/UL4.g:527:3: e1= expr_not ( 'and' e2= expr_not )* 
     3222                # src/ll/UL4.g:540:2: (e1= expr_not ( 'and' e2= expr_not )* ) 
     3223                # src/ll/UL4.g:541:3: e1= expr_not ( 'and' e2= expr_not )* 
    31083224                pass  
    3109                 self._state.following.append(self.FOLLOW_expr_not_in_expr_and2757) 
     3225                self._state.following.append(self.FOLLOW_expr_not_in_expr_and2829) 
    31103226                e1 = self.expr_not() 
    31113227 
     
    31183234 
    31193235 
    3120                 # src/ll/UL4.g:528:3: ( 'and' e2= expr_not )* 
    3121                 while True: #loop44 
    3122                     alt44 = 2 
    3123                     LA44_0 = self.input.LA(1) 
    3124  
    3125                     if (LA44_0 == 54) : 
    3126                         alt44 = 1 
    3127  
    3128  
    3129                     if alt44 == 1: 
    3130                         # src/ll/UL4.g:529:4: 'and' e2= expr_not 
     3236                # src/ll/UL4.g:542:3: ( 'and' e2= expr_not )* 
     3237                while True: #loop46 
     3238                    alt46 = 2 
     3239                    LA46_0 = self.input.LA(1) 
     3240 
     3241                    if (LA46_0 == 58) : 
     3242                        alt46 = 1 
     3243 
     3244 
     3245                    if alt46 == 1: 
     3246                        # src/ll/UL4.g:543:4: 'and' e2= expr_not 
    31313247                        pass  
    3132                         self.match(self.input, 54, self.FOLLOW_54_in_expr_and2768) 
    3133  
    3134                         self._state.following.append(self.FOLLOW_expr_not_in_expr_and2775) 
     3248                        self.match(self.input, 58, self.FOLLOW_58_in_expr_and2840) 
     3249 
     3250                        self._state.following.append(self.FOLLOW_expr_not_in_expr_and2847) 
    31353251                        e2 = self.expr_not() 
    31363252 
     
    31453261 
    31463262                    else: 
    3147                         break #loop44 
     3263                        break #loop46 
    31483264 
    31493265 
     
    31643280 
    31653281    # $ANTLR start "expr_or" 
    3166     # src/ll/UL4.g:535:1: expr_or returns [node] : e1= expr_and ( 'or' e2= expr_and )* ; 
     3282    # src/ll/UL4.g:549:1: expr_or returns [node] : e1= expr_and ( 'or' e2= expr_and )* ; 
    31673283    def expr_or(self, ): 
    31683284        node = None 
     
    31743290        try: 
    31753291            try: 
    3176                 # src/ll/UL4.g:536:2: (e1= expr_and ( 'or' e2= expr_and )* ) 
    3177                 # src/ll/UL4.g:537:3: e1= expr_and ( 'or' e2= expr_and )* 
     3292                # src/ll/UL4.g:550:2: (e1= expr_and ( 'or' e2= expr_and )* ) 
     3293                # src/ll/UL4.g:551:3: e1= expr_and ( 'or' e2= expr_and )* 
    31783294                pass  
    3179                 self._state.following.append(self.FOLLOW_expr_and_in_expr_or2803) 
     3295                self._state.following.append(self.FOLLOW_expr_and_in_expr_or2875) 
    31803296                e1 = self.expr_and() 
    31813297 
     
    31883304 
    31893305 
    3190                 # src/ll/UL4.g:538:3: ( 'or' e2= expr_and )* 
    3191                 while True: #loop45 
    3192                     alt45 = 2 
    3193                     LA45_0 = self.input.LA(1) 
    3194  
    3195                     if (LA45_0 == 60) : 
    3196                         alt45 = 1 
    3197  
    3198  
    3199                     if alt45 == 1: 
    3200                         # src/ll/UL4.g:539:4: 'or' e2= expr_and 
     3306                # src/ll/UL4.g:552:3: ( 'or' e2= expr_and )* 
     3307                while True: #loop47 
     3308                    alt47 = 2 
     3309                    LA47_0 = self.input.LA(1) 
     3310 
     3311                    if (LA47_0 == 64) : 
     3312                        alt47 = 1 
     3313 
     3314 
     3315                    if alt47 == 1: 
     3316                        # src/ll/UL4.g:553:4: 'or' e2= expr_and 
    32013317                        pass  
    3202                         self.match(self.input, 60, self.FOLLOW_60_in_expr_or2814) 
    3203  
    3204                         self._state.following.append(self.FOLLOW_expr_and_in_expr_or2821) 
     3318                        self.match(self.input, 64, self.FOLLOW_64_in_expr_or2886) 
     3319 
     3320                        self._state.following.append(self.FOLLOW_expr_and_in_expr_or2893) 
    32053321                        e2 = self.expr_and() 
    32063322 
     
    32153331 
    32163332                    else: 
    3217                         break #loop45 
     3333                        break #loop47 
    32183334 
    32193335 
     
    32343350 
    32353351    # $ANTLR start "expr_if" 
    3236     # src/ll/UL4.g:545:1: expr_if returns [AST node] : e1= expr_or ( 'if' e2= expr_or 'else' e3= expr_or )? ; 
     3352    # src/ll/UL4.g:559:1: expr_if returns [AST node] : e1= expr_or ( 'if' e2= expr_or 'else' e3= expr_or )? ; 
    32373353    def expr_if(self, ): 
    32383354        node = None 
     
    32453361        try: 
    32463362            try: 
    3247                 # src/ll/UL4.g:546:2: (e1= expr_or ( 'if' e2= expr_or 'else' e3= expr_or )? ) 
    3248                 # src/ll/UL4.g:547:3: e1= expr_or ( 'if' e2= expr_or 'else' e3= expr_or )? 
     3363                # src/ll/UL4.g:560:2: (e1= expr_or ( 'if' e2= expr_or 'else' e3= expr_or )? ) 
     3364                # src/ll/UL4.g:561:3: e1= expr_or ( 'if' e2= expr_or 'else' e3= expr_or )? 
    32493365                pass  
    3250                 self._state.following.append(self.FOLLOW_expr_or_in_expr_if2849) 
     3366                self._state.following.append(self.FOLLOW_expr_or_in_expr_if2921) 
    32513367                e1 = self.expr_or() 
    32523368 
     
    32593375 
    32603376 
    3261                 # src/ll/UL4.g:548:3: ( 'if' e2= expr_or 'else' e3= expr_or )? 
    3262                 alt46 = 2 
    3263                 LA46_0 = self.input.LA(1) 
    3264  
    3265                 if (LA46_0 == 57) : 
    3266                     LA46_1 = self.input.LA(2) 
    3267  
    3268                     if (self.synpred70_UL4()) : 
    3269                         alt46 = 1 
    3270                 if alt46 == 1: 
    3271                     # src/ll/UL4.g:549:4: 'if' e2= expr_or 'else' e3= expr_or 
     3377                # src/ll/UL4.g:562:3: ( 'if' e2= expr_or 'else' e3= expr_or )? 
     3378                alt48 = 2 
     3379                LA48_0 = self.input.LA(1) 
     3380 
     3381                if (LA48_0 == 61) : 
     3382                    LA48_1 = self.input.LA(2) 
     3383 
     3384                    if (self.synpred72_UL4()) : 
     3385                        alt48 = 1 
     3386                if alt48 == 1: 
     3387                    # src/ll/UL4.g:563:4: 'if' e2= expr_or 'else' e3= expr_or 
    32723388                    pass  
    3273                     self.match(self.input, 57, self.FOLLOW_57_in_expr_if2860) 
    3274  
    3275                     self._state.following.append(self.FOLLOW_expr_or_in_expr_if2867) 
     3389                    self.match(self.input, 61, self.FOLLOW_61_in_expr_if2932) 
     3390 
     3391                    self._state.following.append(self.FOLLOW_expr_or_in_expr_if2939) 
    32763392                    e2 = self.expr_or() 
    32773393 
    32783394                    self._state.following.pop() 
    32793395 
    3280                     self.match(self.input, 55, self.FOLLOW_55_in_expr_if2872) 
    3281  
    3282                     self._state.following.append(self.FOLLOW_expr_or_in_expr_if2879) 
     3396                    self.match(self.input, 59, self.FOLLOW_59_in_expr_if2944) 
     3397 
     3398                    self._state.following.append(self.FOLLOW_expr_or_in_expr_if2951) 
    32833399                    e3 = self.expr_or() 
    32843400 
     
    33103426 
    33113427    # $ANTLR start "exprarg" 
    3312     # src/ll/UL4.g:556:1: exprarg returns [node] : (ege= generatorexpression |e1= expr_if ); 
     3428    # src/ll/UL4.g:570:1: exprarg returns [node] : (ege= generatorexpression |e1= expr_if ); 
    33133429    def exprarg(self, ): 
    33143430        node = None 
     
    33203436        try: 
    33213437            try: 
    3322                 # src/ll/UL4.g:557:2: (ege= generatorexpression |e1= expr_if ) 
    3323                 alt47 = 2 
    3324                 LA47 = self.input.LA(1) 
    3325                 if LA47 == NONE: 
    3326                     LA47_1 = self.input.LA(2) 
    3327  
    3328                     if (self.synpred71_UL4()) : 
    3329                         alt47 = 1 
     3438                # src/ll/UL4.g:571:2: (ege= generatorexpression |e1= expr_if ) 
     3439                alt49 = 2 
     3440                LA49 = self.input.LA(1) 
     3441                if LA49 == NONE: 
     3442                    LA49_1 = self.input.LA(2) 
     3443 
     3444                    if (self.synpred73_UL4()) : 
     3445                        alt49 = 1 
    33303446                    elif (True) : 
    3331                         alt47 = 2 
     3447                        alt49 = 2 
    33323448                    else: 
    33333449                        if self._state.backtracking > 0: 
     
    33353451 
    33363452 
    3337                         nvae = NoViableAltException("", 47, 1, self.input) 
     3453                        nvae = NoViableAltException("", 49, 1, self.input) 
    33383454 
    33393455                        raise nvae 
    33403456 
    33413457 
    3342                 elif LA47 == FALSE: 
    3343                     LA47_2 = self.input.LA(2) 
    3344  
    3345                     if (self.synpred71_UL4()) : 
    3346                         alt47 = 1 
     3458                elif LA49 == FALSE: 
     3459                    LA49_2 = self.input.LA(2) 
     3460 
     3461                    if (self.synpred73_UL4()) : 
     3462                        alt49 = 1 
    33473463                    elif (True) : 
    3348                         alt47 = 2 
     3464                        alt49 = 2 
    33493465                    else: 
    33503466                        if self._state.backtracking > 0: 
     
    33523468 
    33533469 
    3354                         nvae = NoViableAltException("", 47, 2, self.input) 
     3470                        nvae = NoViableAltException("", 49, 2, self.input) 
    33553471 
    33563472                        raise nvae 
    33573473 
    33583474 
    3359                 elif LA47 == TRUE: 
    3360                     LA47_3 = self.input.LA(2) 
    3361  
    3362                     if (self.synpred71_UL4()) : 
    3363                         alt47 = 1 
     3475                elif LA49 == TRUE: 
     3476                    LA49_3 = self.input.LA(2) 
     3477 
     3478                    if (self.synpred73_UL4()) : 
     3479                        alt49 = 1 
    33643480                    elif (True) : 
    3365                         alt47 = 2 
     3481                        alt49 = 2 
    33663482                    else: 
    33673483                        if self._state.backtracking > 0: 
     
    33693485 
    33703486 
    3371                         nvae = NoViableAltException("", 47, 3, self.input) 
     3487                        nvae = NoViableAltException("", 49, 3, self.input) 
    33723488 
    33733489                        raise nvae 
    33743490 
    33753491 
    3376                 elif LA47 == INT: 
    3377                     LA47_4 = self.input.LA(2) 
    3378  
    3379                     if (self.synpred71_UL4()) : 
    3380                         alt47 = 1 
     3492                elif LA49 == INT: 
     3493                    LA49_4 = self.input.LA(2) 
     3494 
     3495                    if (self.synpred73_UL4()) : 
     3496                        alt49 = 1 
    33813497                    elif (True) : 
    3382                         alt47 = 2 
     3498                        alt49 = 2 
    33833499                    else: 
    33843500                        if self._state.backtracking > 0: 
     
    33863502 
    33873503 
    3388                         nvae = NoViableAltException("", 47, 4, self.input) 
     3504                        nvae = NoViableAltException("", 49, 4, self.input) 
    33893505 
    33903506                        raise nvae 
    33913507 
    33923508 
    3393                 elif LA47 == FLOAT: 
    3394                     LA47_5 = self.input.LA(2) 
    3395  
    3396                     if (self.synpred71_UL4()) : 
    3397                         alt47 = 1 
     3509                elif LA49 == FLOAT: 
     3510                    LA49_5 = self.input.LA(2) 
     3511 
     3512                    if (self.synpred73_UL4()) : 
     3513                        alt49 = 1 
    33983514                    elif (True) : 
    3399                         alt47 = 2 
     3515                        alt49 = 2 
    34003516                    else: 
    34013517                        if self._state.backtracking > 0: 
     
    34033519 
    34043520 
    3405                         nvae = NoViableAltException("", 47, 5, self.input) 
     3521                        nvae = NoViableAltException("", 49, 5, self.input) 
    34063522 
    34073523                        raise nvae 
    34083524 
    34093525 
    3410                 elif LA47 == STRING: 
    3411                     LA47_6 = self.input.LA(2) 
    3412  
    3413                     if (self.synpred71_UL4()) : 
    3414                         alt47 = 1 
     3526                elif LA49 == STRING: 
     3527                    LA49_6 = self.input.LA(2) 
     3528 
     3529                    if (self.synpred73_UL4()) : 
     3530                        alt49 = 1 
    34153531                    elif (True) : 
    3416                         alt47 = 2 
     3532                        alt49 = 2 
    34173533                    else: 
    34183534                        if self._state.backtracking > 0: 
     
    34203536 
    34213537 
    3422                         nvae = NoViableAltException("", 47, 6, self.input) 
     3538                        nvae = NoViableAltException("", 49, 6, self.input) 
    34233539 
    34243540                        raise nvae 
    34253541 
    34263542 
    3427                 elif LA47 == STRING3: 
    3428                     LA47_7 = self.input.LA(2) 
    3429  
    3430                     if (self.synpred71_UL4()) : 
    3431                         alt47 = 1 
     3543                elif LA49 == STRING3: 
     3544                    LA49_7 = self.input.LA(2) 
     3545 
     3546                    if (self.synpred73_UL4()) : 
     3547                        alt49 = 1 
    34323548                    elif (True) : 
    3433                         alt47 = 2 
     3549                        alt49 = 2 
    34343550                    else: 
    34353551                        if self._state.backtracking > 0: 
     
    34373553 
    34383554 
    3439                         nvae = NoViableAltException("", 47, 7, self.input) 
     3555                        nvae = NoViableAltException("", 49, 7, self.input) 
    34403556 
    34413557                        raise nvae 
    34423558 
    34433559 
    3444                 elif LA47 == DATE: 
    3445                     LA47_8 = self.input.LA(2) 
    3446  
    3447                     if (self.synpred71_UL4()) : 
    3448                         alt47 = 1 
     3560                elif LA49 == DATE: 
     3561                    LA49_8 = self.input.LA(2) 
     3562 
     3563                    if (self.synpred73_UL4()) : 
     3564                        alt49 = 1 
    34493565                    elif (True) : 
    3450                         alt47 = 2 
     3566                        alt49 = 2 
    34513567                    else: 
    34523568                        if self._state.backtracking > 0: 
     
    34543570 
    34553571 
    3456                         nvae = NoViableAltException("", 47, 8, self.input) 
     3572                        nvae = NoViableAltException("", 49, 8, self.input) 
    34573573 
    34583574                        raise nvae 
    34593575 
    34603576 
    3461                 elif LA47 == COLOR: 
    3462                     LA47_9 = self.input.LA(2) 
    3463  
    3464                     if (self.synpred71_UL4()) : 
    3465                         alt47 = 1 
     3577                elif LA49 == COLOR: 
     3578                    LA49_9 = self.input.LA(2) 
     3579 
     3580                    if (self.synpred73_UL4()) : 
     3581                        alt49 = 1 
    34663582                    elif (True) : 
    3467                         alt47 = 2 
     3583                        alt49 = 2 
    34683584                    else: 
    34693585                        if self._state.backtracking > 0: 
     
    34713587 
    34723588 
    3473                         nvae = NoViableAltException("", 47, 9, self.input) 
     3589                        nvae = NoViableAltException("", 49, 9, self.input) 
    34743590 
    34753591                        raise nvae 
    34763592 
    34773593 
    3478                 elif LA47 == NAME: 
    3479                     LA47_10 = self.input.LA(2) 
    3480  
    3481                     if (self.synpred71_UL4()) : 
    3482                         alt47 = 1 
     3594                elif LA49 == NAME: 
     3595                    LA49_10 = self.input.LA(2) 
     3596 
     3597                    if (self.synpred73_UL4()) : 
     3598                        alt49 = 1 
    34833599                    elif (True) : 
    3484                         alt47 = 2 
     3600                        alt49 = 2 
    34853601                    else: 
    34863602                        if self._state.backtracking > 0: 
     
    34883604 
    34893605 
    3490                         nvae = NoViableAltException("", 47, 10, self.input) 
     3606                        nvae = NoViableAltException("", 49, 10, self.input) 
    34913607 
    34923608                        raise nvae 
    34933609 
    34943610 
    3495                 elif LA47 == 52: 
    3496                     LA47_11 = self.input.LA(2) 
    3497  
    3498                     if (self.synpred71_UL4()) : 
    3499                         alt47 = 1 
     3611                elif LA49 == 56: 
     3612                    LA49_11 = self.input.LA(2) 
     3613 
     3614                    if (self.synpred73_UL4()) : 
     3615                        alt49 = 1 
    35003616                    elif (True) : 
    3501                         alt47 = 2 
     3617                        alt49 = 2 
    35023618                    else: 
    35033619                        if self._state.backtracking > 0: 
     
    35053621 
    35063622 
    3507                         nvae = NoViableAltException("", 47, 11, self.input) 
     3623                        nvae = NoViableAltException("", 49, 11, self.input) 
    35083624 
    35093625                        raise nvae 
    35103626 
    35113627 
    3512                 elif LA47 == 61: 
    3513                     LA47_12 = self.input.LA(2) 
    3514  
    3515                     if (self.synpred71_UL4()) : 
    3516                         alt47 = 1 
     3628                elif LA49 == 65: 
     3629                    LA49_12 = self.input.LA(2) 
     3630 
     3631                    if (self.synpred73_UL4()) : 
     3632                        alt49 = 1 
    35173633                    elif (True) : 
    3518                         alt47 = 2 
     3634                        alt49 = 2 
    35193635                    else: 
    35203636                        if self._state.backtracking > 0: 
     
    35223638 
    35233639 
    3524                         nvae = NoViableAltException("", 47, 12, self.input) 
     3640                        nvae = NoViableAltException("", 49, 12, self.input) 
    35253641 
    35263642                        raise nvae 
    35273643 
    35283644 
    3529                 elif LA47 == 30: 
    3530                     LA47_13 = self.input.LA(2) 
    3531  
    3532                     if (self.synpred71_UL4()) : 
    3533                         alt47 = 1 
     3645                elif LA49 == 30: 
     3646                    LA49_13 = self.input.LA(2) 
     3647 
     3648                    if (self.synpred73_UL4()) : 
     3649                        alt49 = 1 
    35343650                    elif (True) : 
    3535                         alt47 = 2 
     3651                        alt49 = 2 
    35363652                    else: 
    35373653                        if self._state.backtracking > 0: 
     
    35393655 
    35403656 
    3541                         nvae = NoViableAltException("", 47, 13, self.input) 
     3657                        nvae = NoViableAltException("", 49, 13, self.input) 
    35423658 
    35433659                        raise nvae 
    35443660 
    35453661 
    3546                 elif LA47 == 38: 
    3547                     LA47_14 = self.input.LA(2) 
    3548  
    3549                     if (self.synpred71_UL4()) : 
    3550                         alt47 = 1 
     3662                elif LA49 == 38: 
     3663                    LA49_14 = self.input.LA(2) 
     3664 
     3665                    if (self.synpred73_UL4()) : 
     3666                        alt49 = 1 
    35513667                    elif (True) : 
    3552                         alt47 = 2 
     3668                        alt49 = 2 
    35533669                    else: 
    35543670                        if self._state.backtracking > 0: 
     
    35563672 
    35573673 
    3558                         nvae = NoViableAltException("", 47, 14, self.input) 
     3674                        nvae = NoViableAltException("", 49, 14, self.input) 
    35593675 
    35603676                        raise nvae 
    35613677 
    35623678 
    3563                 elif LA47 == 59: 
    3564                     LA47_15 = self.input.LA(2) 
    3565  
    3566                     if (self.synpred71_UL4()) : 
    3567                         alt47 = 1 
     3679                elif LA49 == 63: 
     3680                    LA49_15 = self.input.LA(2) 
     3681 
     3682                    if (self.synpred73_UL4()) : 
     3683                        alt49 = 1 
    35683684                    elif (True) : 
    3569                         alt47 = 2 
     3685                        alt49 = 2 
    35703686                    else: 
    35713687                        if self._state.backtracking > 0: 
     
    35733689 
    35743690 
    3575                         nvae = NoViableAltException("", 47, 15, self.input) 
     3691                        nvae = NoViableAltException("", 49, 15, self.input) 
    35763692 
    35773693                        raise nvae 
     
    35833699 
    35843700 
    3585                     nvae = NoViableAltException("", 47, 0, self.input) 
     3701                    nvae = NoViableAltException("", 49, 0, self.input) 
    35863702 
    35873703                    raise nvae 
    35883704 
    35893705 
    3590                 if alt47 == 1: 
    3591                     # src/ll/UL4.g:557:4: ege= generatorexpression 
     3706                if alt49 == 1: 
     3707                    # src/ll/UL4.g:571:4: ege= generatorexpression 
    35923708                    pass  
    3593                     self._state.following.append(self.FOLLOW_generatorexpression_in_exprarg2903) 
     3709                    self._state.following.append(self.FOLLOW_generatorexpression_in_exprarg2975) 
    35943710                    ege = self.generatorexpression() 
    35953711 
     
    36033719 
    36043720 
    3605                 elif alt47 == 2: 
    3606                     # src/ll/UL4.g:558:4: e1= expr_if 
     3721                elif alt49 == 2: 
     3722                    # src/ll/UL4.g:572:4: e1= expr_if 
    36073723                    pass  
    3608                     self._state.following.append(self.FOLLOW_expr_if_in_exprarg2912) 
     3724                    self._state.following.append(self.FOLLOW_expr_if_in_exprarg2984) 
    36093725                    e1 = self.expr_if() 
    36103726 
     
    36323748 
    36333749    # $ANTLR start "expression" 
    3634     # src/ll/UL4.g:561:1: expression returns [node] : (ege= generatorexpression EOF |e= expr_if EOF ); 
     3750    # src/ll/UL4.g:575:1: expression returns [node] : (ege= generatorexpression EOF |e= expr_if EOF ); 
    36353751    def expression(self, ): 
    36363752        node = None 
     
    36423758        try: 
    36433759            try: 
    3644                 # src/ll/UL4.g:562:2: (ege= generatorexpression EOF |e= expr_if EOF ) 
    3645                 alt48 = 2 
    3646                 LA48 = self.input.LA(1) 
    3647                 if LA48 == NONE: 
    3648                     LA48_1 = self.input.LA(2) 
    3649  
    3650                     if (self.synpred72_UL4()) : 
    3651                         alt48 = 1 
     3760                # src/ll/UL4.g:576:2: (ege= generatorexpression EOF |e= expr_if EOF ) 
     3761                alt50 = 2 
     3762                LA50 = self.input.LA(1) 
     3763                if LA50 == NONE: 
     3764                    LA50_1 = self.input.LA(2) 
     3765 
     3766                    if (self.synpred74_UL4()) : 
     3767                        alt50 = 1 
    36523768                    elif (True) : 
    3653                         alt48 = 2 
     3769                        alt50 = 2 
    36543770                    else: 
    36553771                        if self._state.backtracking > 0: 
     
    36573773 
    36583774 
    3659                         nvae = NoViableAltException("", 48, 1, self.input) 
     3775                        nvae = NoViableAltException("", 50, 1, self.input) 
    36603776 
    36613777                        raise nvae 
    36623778 
    36633779 
    3664                 elif LA48 == FALSE: 
    3665                     LA48_2 = self.input.LA(2) 
    3666  
    3667                     if (self.synpred72_UL4()) : 
    3668                         alt48 = 1 
     3780                elif LA50 == FALSE: 
     3781                    LA50_2 = self.input.LA(2) 
     3782 
     3783                    if (self.synpred74_UL4()) : 
     3784                        alt50 = 1 
    36693785                    elif (True) : 
    3670                         alt48 = 2 
     3786                        alt50 = 2 
    36713787                    else: 
    36723788                        if self._state.backtracking > 0: 
     
    36743790 
    36753791 
    3676                         nvae = NoViableAltException("", 48, 2, self.input) 
     3792                        nvae = NoViableAltException("", 50, 2, self.input) 
    36773793 
    36783794                        raise nvae 
    36793795 
    36803796 
    3681                 elif LA48 == TRUE: 
    3682                     LA48_3 = self.input.LA(2) 
    3683  
    3684                     if (self.synpred72_UL4()) : 
    3685                         alt48 = 1 
     3797                elif LA50 == TRUE: 
     3798                    LA50_3 = self.input.LA(2) 
     3799 
     3800                    if (self.synpred74_UL4()) : 
     3801                        alt50 = 1 
    36863802                    elif (True) : 
    3687                         alt48 = 2 
     3803                        alt50 = 2 
    36883804                    else: 
    36893805                        if self._state.backtracking > 0: 
     
    36913807 
    36923808 
    3693                         nvae = NoViableAltException("", 48, 3, self.input) 
     3809                        nvae = NoViableAltException("", 50, 3, self.input) 
    36943810 
    36953811                        raise nvae 
    36963812 
    36973813 
    3698                 elif LA48 == INT: 
    3699                     LA48_4 = self.input.LA(2) 
    3700  
    3701                     if (self.synpred72_UL4()) : 
    3702                         alt48 = 1 
     3814                elif LA50 == INT: 
     3815                    LA50_4 = self.input.LA(2) 
     3816 
     3817                    if (self.synpred74_UL4()) : 
     3818                        alt50 = 1 
    37033819                    elif (True) : 
    3704                         alt48 = 2 
     3820                        alt50 = 2 
    37053821                    else: 
    37063822                        if self._state.backtracking > 0: 
     
    37083824 
    37093825 
    3710                         nvae = NoViableAltException("", 48, 4, self.input) 
     3826                        nvae = NoViableAltException("", 50, 4, self.input) 
    37113827 
    37123828                        raise nvae 
    37133829 
    37143830 
    3715                 elif LA48 == FLOAT: 
    3716                     LA48_5 = self.input.LA(2) 
    3717  
    3718                     if (self.synpred72_UL4()) : 
    3719                         alt48 = 1 
     3831                elif LA50 == FLOAT: 
     3832                    LA50_5 = self.input.LA(2) 
     3833 
     3834                    if (self.synpred74_UL4()) : 
     3835                        alt50 = 1 
    37203836                    elif (True) : 
    3721                         alt48 = 2 
     3837                        alt50 = 2 
    37223838                    else: 
    37233839                        if self._state.backtracking > 0: 
     
    37253841 
    37263842 
    3727                         nvae = NoViableAltException("", 48, 5, self.input) 
     3843                        nvae = NoViableAltException("", 50, 5, self.input) 
    37283844 
    37293845                        raise nvae 
    37303846 
    37313847 
    3732                 elif LA48 == STRING: 
    3733                     LA48_6 = self.input.LA(2) 
    3734  
    3735                     if (self.synpred72_UL4()) : 
    3736                         alt48 = 1 
     3848                elif LA50 == STRING: 
     3849                    LA50_6 = self.input.LA(2) 
     3850 
     3851                    if (self.synpred74_UL4()) : 
     3852                        alt50 = 1 
    37373853                    elif (True) : 
    3738                         alt48 = 2 
     3854                        alt50 = 2 
    37393855                    else: 
    37403856                        if self._state.backtracking > 0: 
     
    37423858 
    37433859 
    3744                         nvae = NoViableAltException("", 48, 6, self.input) 
     3860                        nvae = NoViableAltException("", 50, 6, self.input) 
    37453861 
    37463862                        raise nvae 
    37473863 
    37483864 
    3749                 elif LA48 == STRING3: 
    3750                     LA48_7 = self.input.LA(2) 
    3751  
    3752                     if (self.synpred72_UL4()) : 
    3753                         alt48 = 1 
     3865                elif LA50 == STRING3: 
     3866                    LA50_7 = self.input.LA(2) 
     3867 
     3868                    if (self.synpred74_UL4()) : 
     3869                        alt50 = 1 
    37543870                    elif (True) : 
    3755                         alt48 = 2 
     3871                        alt50 = 2 
    37563872                    else: 
    37573873                        if self._state.backtracking > 0: 
     
    37593875 
    37603876 
    3761                         nvae = NoViableAltException("", 48, 7, self.input) 
     3877                        nvae = NoViableAltException("", 50, 7, self.input) 
    37623878 
    37633879                        raise nvae 
    37643880 
    37653881 
    3766                 elif LA48 == DATE: 
    3767                     LA48_8 = self.input.LA(2) 
    3768  
    3769                     if (self.synpred72_UL4()) : 
    3770                         alt48 = 1 
     3882                elif LA50 == DATE: 
     3883                    LA50_8 = self.input.LA(2) 
     3884 
     3885                    if (self.synpred74_UL4()) : 
     3886                        alt50 = 1 
    37713887                    elif (True) : 
    3772                         alt48 = 2 
     3888                        alt50 = 2 
    37733889                    else: 
    37743890                        if self._state.backtracking > 0: 
     
    37763892 
    37773893 
    3778                         nvae = NoViableAltException("", 48, 8, self.input) 
     3894                        nvae = NoViableAltException("", 50, 8, self.input) 
    37793895 
    37803896                        raise nvae 
    37813897 
    37823898 
    3783                 elif LA48 == COLOR: 
    3784                     LA48_9 = self.input.LA(2) 
    3785  
    3786                     if (self.synpred72_UL4()) : 
    3787                         alt48 = 1 
     3899                elif LA50 == COLOR: 
     3900                    LA50_9 = self.input.LA(2) 
     3901 
     3902                    if (self.synpred74_UL4()) : 
     3903                        alt50 = 1 
    37883904                    elif (True) : 
    3789                         alt48 = 2 
     3905                        alt50 = 2 
    37903906                    else: 
    37913907                        if self._state.backtracking > 0: 
     
    37933909 
    37943910 
    3795                         nvae = NoViableAltException("", 48, 9, self.input) 
     3911                        nvae = NoViableAltException("", 50, 9, self.input) 
    37963912 
    37973913                        raise nvae 
    37983914 
    37993915 
    3800                 elif LA48 == NAME: 
    3801                     LA48_10 = self.input.LA(2) 
    3802  
    3803                     if (self.synpred72_UL4()) : 
    3804                         alt48 = 1 
     3916                elif LA50 == NAME: 
     3917                    LA50_10 = self.input.LA(2) 
     3918 
     3919                    if (self.synpred74_UL4()) : 
     3920                        alt50 = 1 
    38053921                    elif (True) : 
    3806                         alt48 = 2 
     3922                        alt50 = 2 
    38073923                    else: 
    38083924                        if self._state.backtracking > 0: 
     
    38103926 
    38113927 
    3812                         nvae = NoViableAltException("", 48, 10, self.input) 
     3928                        nvae = NoViableAltException("", 50, 10, self.input) 
    38133929 
    38143930                        raise nvae 
    38153931 
    38163932 
    3817                 elif LA48 == 52: 
    3818                     LA48_11 = self.input.LA(2) 
    3819  
    3820                     if (self.synpred72_UL4()) : 
    3821                         alt48 = 1 
     3933                elif LA50 == 56: 
     3934                    LA50_11 = self.input.LA(2) 
     3935 
     3936                    if (self.synpred74_UL4()) : 
     3937                        alt50 = 1 
    38223938                    elif (True) : 
    3823                         alt48 = 2 
     3939                        alt50 = 2 
    38243940                    else: 
    38253941                        if self._state.backtracking > 0: 
     
    38273943 
    38283944 
    3829                         nvae = NoViableAltException("", 48, 11, self.input) 
     3945                        nvae = NoViableAltException("", 50, 11, self.input) 
    38303946 
    38313947                        raise nvae 
    38323948 
    38333949 
    3834                 elif LA48 == 61: 
    3835                     LA48_12 = self.input.LA(2) 
    3836  
    3837                     if (self.synpred72_UL4()) : 
    3838                         alt48 = 1 
     3950                elif LA50 == 65: 
     3951                    LA50_12 = self.input.LA(2) 
     3952 
     3953                    if (self.synpred74_UL4()) : 
     3954                        alt50 = 1 
    38393955                    elif (True) : 
    3840                         alt48 = 2 
     3956                        alt50 = 2 
    38413957                    else: 
    38423958                        if self._state.backtracking > 0: 
     
    38443960 
    38453961 
    3846                         nvae = NoViableAltException("", 48, 12, self.input) 
     3962                        nvae = NoViableAltException("", 50, 12, self.input) 
    38473963 
    38483964                        raise nvae 
    38493965 
    38503966 
    3851                 elif LA48 == 30: 
    3852                     LA48_13 = self.input.LA(2) 
    3853  
    3854                     if (self.synpred72_UL4()) : 
    3855                         alt48 = 1 
     3967                elif LA50 == 30: 
     3968                    LA50_13 = self.input.LA(2) 
     3969 
     3970                    if (self.synpred74_UL4()) : 
     3971                        alt50 = 1 
    38563972                    elif (True) : 
    3857                         alt48 = 2 
     3973                        alt50 = 2 
    38583974                    else: 
    38593975                        if self._state.backtracking > 0: 
     
    38613977 
    38623978 
    3863                         nvae = NoViableAltException("", 48, 13, self.input) 
     3979                        nvae = NoViableAltException("", 50, 13, self.input) 
    38643980 
    38653981                        raise nvae 
    38663982 
    38673983 
    3868                 elif LA48 == 38: 
    3869                     LA48_14 = self.input.LA(2) 
    3870  
    3871                     if (self.synpred72_UL4()) : 
    3872                         alt48 = 1 
     3984                elif LA50 == 38: 
     3985                    LA50_14 = self.input.LA(2) 
     3986 
     3987                    if (self.synpred74_UL4()) : 
     3988                        alt50 = 1 
    38733989                    elif (True) : 
    3874                         alt48 = 2 
     3990                        alt50 = 2 
    38753991                    else: 
    38763992                        if self._state.backtracking > 0: 
     
    38783994 
    38793995 
    3880                         nvae = NoViableAltException("", 48, 14, self.input) 
     3996                        nvae = NoViableAltException("", 50, 14, self.input) 
    38813997 
    38823998                        raise nvae 
    38833999 
    38844000 
    3885                 elif LA48 == 59: 
    3886                     LA48_15 = self.input.LA(2) 
    3887  
    3888                     if (self.synpred72_UL4()) : 
    3889                         alt48 = 1 
     4001                elif LA50 == 63: 
     4002                    LA50_15 = self.input.LA(2) 
     4003 
     4004                    if (self.synpred74_UL4()) : 
     4005                        alt50 = 1 
    38904006                    elif (True) : 
    3891                         alt48 = 2 
     4007                        alt50 = 2 
    38924008                    else: 
    38934009                        if self._state.backtracking > 0: 
     
    38954011 
    38964012 
    3897                         nvae = NoViableAltException("", 48, 15, self.input) 
     4013                        nvae = NoViableAltException("", 50, 15, self.input) 
    38984014 
    38994015                        raise nvae 
     
    39054021 
    39064022 
    3907                     nvae = NoViableAltException("", 48, 0, self.input) 
     4023                    nvae = NoViableAltException("", 50, 0, self.input) 
    39084024 
    39094025                    raise nvae 
    39104026 
    39114027 
    3912                 if alt48 == 1: 
    3913                     # src/ll/UL4.g:562:4: ege= generatorexpression EOF 
     4028                if alt50 == 1: 
     4029                    # src/ll/UL4.g:576:4: ege= generatorexpression EOF 
    39144030                    pass  
    3915                     self._state.following.append(self.FOLLOW_generatorexpression_in_expression2931) 
     4031                    self._state.following.append(self.FOLLOW_generatorexpression_in_expression3003) 
    39164032                    ege = self.generatorexpression() 
    39174033 
    39184034                    self._state.following.pop() 
    39194035 
    3920                     self.match(self.input, EOF, self.FOLLOW_EOF_in_expression2933) 
     4036                    self.match(self.input, EOF, self.FOLLOW_EOF_in_expression3005) 
    39214037 
    39224038                    if self._state.backtracking == 0: 
     
    39274043 
    39284044 
    3929                 elif alt48 == 2: 
    3930                     # src/ll/UL4.g:563:4: e= expr_if EOF 
     4045                elif alt50 == 2: 
     4046                    # src/ll/UL4.g:577:4: e= expr_if EOF 
    39314047                    pass  
    3932                     self._state.following.append(self.FOLLOW_expr_if_in_expression2942) 
     4048                    self._state.following.append(self.FOLLOW_expr_if_in_expression3014) 
    39334049                    e = self.expr_if() 
    39344050 
    39354051                    self._state.following.pop() 
    39364052 
    3937                     self.match(self.input, EOF, self.FOLLOW_EOF_in_expression2944) 
     4053                    self.match(self.input, EOF, self.FOLLOW_EOF_in_expression3016) 
    39384054 
    39394055                    if self._state.backtracking == 0: 
     
    39584074 
    39594075    # $ANTLR start "for_" 
    3960     # src/ll/UL4.g:569:1: for_ returns [node] : n= nestedlvalue 'in' e= expr_if EOF ; 
     4076    # src/ll/UL4.g:583:1: for_ returns [node] : n= nestedlvalue 'in' e= expr_if EOF ; 
    39614077    def for_(self, ): 
    39624078        node = None 
     
    39684084        try: 
    39694085            try: 
    3970                 # src/ll/UL4.g:570:2: (n= nestedlvalue 'in' e= expr_if EOF ) 
    3971                 # src/ll/UL4.g:571:3: n= nestedlvalue 'in' e= expr_if EOF 
     4086                # src/ll/UL4.g:584:2: (n= nestedlvalue 'in' e= expr_if EOF ) 
     4087                # src/ll/UL4.g:585:3: n= nestedlvalue 'in' e= expr_if EOF 
    39724088                pass  
    3973                 self._state.following.append(self.FOLLOW_nestedlvalue_in_for_2969) 
     4089                self._state.following.append(self.FOLLOW_nestedlvalue_in_for_3041) 
    39744090                n = self.nestedlvalue() 
    39754091 
    39764092                self._state.following.pop() 
    39774093 
    3978                 self.match(self.input, 58, self.FOLLOW_58_in_for_2973) 
    3979  
    3980                 self._state.following.append(self.FOLLOW_expr_if_in_for_2979) 
     4094                self.match(self.input, 62, self.FOLLOW_62_in_for_3045) 
     4095 
     4096                self._state.following.append(self.FOLLOW_expr_if_in_for_3051) 
    39814097                e = self.expr_if() 
    39824098 
     
    39894105 
    39904106 
    3991                 self.match(self.input, EOF, self.FOLLOW_EOF_in_for_2985) 
     4107                self.match(self.input, EOF, self.FOLLOW_EOF_in_for_3057) 
    39924108 
    39934109 
     
    40074123 
    40084124    # $ANTLR start "statement" 
    4009     # src/ll/UL4.g:580:1: statement returns [node] : (nn= nestedlvalue '=' e= expr_if EOF |n= expr_subscript '+=' e= expr_if EOF |n= expr_subscript '-=' e= expr_if EOF |n= expr_subscript '*=' e= expr_if EOF |n= expr_subscript '/=' e= expr_if EOF |n= expr_subscript '//=' e= expr_if EOF |n= expr_subscript '%=' e= expr_if EOF |e= expression EOF ); 
     4125    # src/ll/UL4.g:594:1: statement returns [node] : (nn= nestedlvalue '=' e= expr_if EOF |n= expr_subscript '+=' e= expr_if EOF |n= expr_subscript '-=' e= expr_if EOF |n= expr_subscript '*=' e= expr_if EOF |n= expr_subscript '/=' e= expr_if EOF |n= expr_subscript '//=' e= expr_if EOF |n= expr_subscript '%=' e= expr_if EOF |n= expr_subscript '<<=' e= expr_if EOF |n= expr_subscript '>>=' e= expr_if EOF |e= expression EOF ); 
    40104126    def statement(self, ): 
    40114127        node = None 
     
    40184134        try: 
    40194135            try: 
    4020                 # src/ll/UL4.g:581:2: (nn= nestedlvalue '=' e= expr_if EOF |n= expr_subscript '+=' e= expr_if EOF |n= expr_subscript '-=' e= expr_if EOF |n= expr_subscript '*=' e= expr_if EOF |n= expr_subscript '/=' e= expr_if EOF |n= expr_subscript '//=' e= expr_if EOF |n= expr_subscript '%=' e= expr_if EOF |e= expression EOF ) 
    4021                 alt49 = 8 
    4022                 LA49 = self.input.LA(1) 
    4023                 if LA49 == NONE: 
    4024                     LA49_1 = self.input.LA(2) 
    4025  
    4026                     if (self.synpred73_UL4()) : 
    4027                         alt49 = 1 
    4028                     elif (self.synpred74_UL4()) : 
    4029                         alt49 = 2 
    4030                     elif (self.synpred75_UL4()) : 
    4031                         alt49 = 3 
     4136                # src/ll/UL4.g:595:2: (nn= nestedlvalue '=' e= expr_if EOF |n= expr_subscript '+=' e= expr_if EOF |n= expr_subscript '-=' e= expr_if EOF |n= expr_subscript '*=' e= expr_if EOF |n= expr_subscript '/=' e= expr_if EOF |n= expr_subscript '//=' e= expr_if EOF |n= expr_subscript '%=' e= expr_if EOF |n= expr_subscript '<<=' e= expr_if EOF |n= expr_subscript '>>=' e= expr_if EOF |e= expression EOF ) 
     4137                alt51 = 10 
     4138                LA51 = self.input.LA(1) 
     4139                if LA51 == NONE: 
     4140                    LA51_1 = self.input.LA(2) 
     4141 
     4142                    if (self.synpred75_UL4()) : 
     4143                        alt51 = 1 
    40324144                    elif (self.synpred76_UL4()) : 
    4033                         alt49 = 4 
     4145                        alt51 = 2 
    40344146                    elif (self.synpred77_UL4()) : 
    4035                         alt49 = 5 
     4147                        alt51 = 3 
    40364148                    elif (self.synpred78_UL4()) : 
    4037                         alt49 = 6 
     4149                        alt51 = 4 
    40384150                    elif (self.synpred79_UL4()) : 
    4039                         alt49 = 7 
     4151                        alt51 = 5 
     4152                    elif (self.synpred80_UL4()) : 
     4153                        alt51 = 6 
     4154                    elif (self.synpred81_UL4()) : 
     4155                        alt51 = 7 
     4156                    elif (self.synpred82_UL4()) : 
     4157                        alt51 = 8 
     4158                    elif (self.synpred83_UL4()) : 
     4159                        alt51 = 9 
    40404160                    elif (True) : 
    4041                         alt49 = 8 
     4161                        alt51 = 10 
    40424162                    else: 
    40434163                        if self._state.backtracking > 0: 
     
    40454165 
    40464166 
    4047                         nvae = NoViableAltException("", 49, 1, self.input) 
     4167                        nvae = NoViableAltException("", 51, 1, self.input) 
    40484168 
    40494169                        raise nvae 
    40504170 
    40514171 
    4052                 elif LA49 == FALSE: 
    4053                     LA49_2 = self.input.LA(2) 
    4054  
    4055                     if (self.synpred73_UL4()) : 
    4056                         alt49 = 1 
    4057                     elif (self.synpred74_UL4()) : 
    4058                         alt49 = 2 
    4059                     elif (self.synpred75_UL4()) : 
    4060                         alt49 = 3 
     4172                elif LA51 == FALSE: 
     4173                    LA51_2 = self.input.LA(2) 
     4174 
     4175                    if (self.synpred75_UL4()) : 
     4176                        alt51 = 1 
    40614177                    elif (self.synpred76_UL4()) : 
    4062                         alt49 = 4 
     4178                        alt51 = 2 
    40634179                    elif (self.synpred77_UL4()) : 
    4064                         alt49 = 5 
     4180                        alt51 = 3 
    40654181                    elif (self.synpred78_UL4()) : 
    4066                         alt49 = 6 
     4182                        alt51 = 4 
    40674183                    elif (self.synpred79_UL4()) : 
    4068                         alt49 = 7 
     4184                        alt51 = 5 
     4185                    elif (self.synpred80_UL4()) : 
     4186                        alt51 = 6 
     4187                    elif (self.synpred81_UL4()) : 
     4188                        alt51 = 7 
     4189                    elif (self.synpred82_UL4()) : 
     4190                        alt51 = 8 
     4191                    elif (self.synpred83_UL4()) : 
     4192                        alt51 = 9 
    40694193                    elif (True) : 
    4070                         alt49 = 8 
     4194                        alt51 = 10 
    40714195                    else: 
    40724196                        if self._state.backtracking > 0: 
     
    40744198 
    40754199 
    4076                         nvae = NoViableAltException("", 49, 2, self.input) 
     4200                        nvae = NoViableAltException("", 51, 2, self.input) 
    40774201 
    40784202                        raise nvae 
    40794203 
    40804204 
    4081                 elif LA49 == TRUE: 
    4082                     LA49_3 = self.input.LA(2) 
    4083  
    4084                     if (self.synpred73_UL4()) : 
    4085                         alt49 = 1 
    4086                     elif (self.synpred74_UL4()) : 
    4087                         alt49 = 2 
    4088                     elif (self.synpred75_UL4()) : 
    4089                         alt49 = 3 
     4205                elif LA51 == TRUE: 
     4206                    LA51_3 = self.input.LA(2) 
     4207 
     4208                    if (self.synpred75_UL4()) : 
     4209                        alt51 = 1 
    40904210                    elif (self.synpred76_UL4()) : 
    4091                         alt49 = 4 
     4211                        alt51 = 2 
    40924212                    elif (self.synpred77_UL4()) : 
    4093                         alt49 = 5 
     4213                        alt51 = 3 
    40944214                    elif (self.synpred78_UL4()) : 
    4095                         alt49 = 6 
     4215                        alt51 = 4 
    40964216                    elif (self.synpred79_UL4()) : 
    4097                         alt49 = 7 
     4217                        alt51 = 5 
     4218                    elif (self.synpred80_UL4()) : 
     4219                        alt51 = 6 
     4220                    elif (self.synpred81_UL4()) : 
     4221                        alt51 = 7 
     4222                    elif (self.synpred82_UL4()) : 
     4223                        alt51 = 8 
     4224                    elif (self.synpred83_UL4()) : 
     4225                        alt51 = 9 
    40984226                    elif (True) : 
    4099                         alt49 = 8 
     4227                        alt51 = 10 
    41004228                    else: 
    41014229                        if self._state.backtracking > 0: 
     
    41034231 
    41044232 
    4105                         nvae = NoViableAltException("", 49, 3, self.input) 
     4233                        nvae = NoViableAltException("", 51, 3, self.input) 
    41064234 
    41074235                        raise nvae 
    41084236 
    41094237 
    4110                 elif LA49 == INT: 
    4111                     LA49_4 = self.input.LA(2) 
    4112  
    4113                     if (self.synpred73_UL4()) : 
    4114                         alt49 = 1 
    4115                     elif (self.synpred74_UL4()) : 
    4116                         alt49 = 2 
    4117                     elif (self.synpred75_UL4()) : 
    4118                         alt49 = 3 
     4238                elif LA51 == INT: 
     4239                    LA51_4 = self.input.LA(2) 
     4240 
     4241                    if (self.synpred75_UL4()) : 
     4242                        alt51 = 1 
    41194243                    elif (self.synpred76_UL4()) : 
    4120                         alt49 = 4 
     4244                        alt51 = 2 
    41214245                    elif (self.synpred77_UL4()) : 
    4122                         alt49 = 5 
     4246                        alt51 = 3 
    41234247                    elif (self.synpred78_UL4()) : 
    4124                         alt49 = 6 
     4248                        alt51 = 4 
    41254249                    elif (self.synpred79_UL4()) : 
    4126                         alt49 = 7 
     4250                        alt51 = 5 
     4251                    elif (self.synpred80_UL4()) : 
     4252                        alt51 = 6 
     4253                    elif (self.synpred81_UL4()) : 
     4254                        alt51 = 7 
     4255                    elif (self.synpred82_UL4()) : 
     4256                        alt51 = 8 
     4257                    elif (self.synpred83_UL4()) : 
     4258                        alt51 = 9 
    41274259                    elif (True) : 
    4128                         alt49 = 8 
     4260                        alt51 = 10 
    41294261                    else: 
    41304262                        if self._state.backtracking > 0: 
     
    41324264 
    41334265 
    4134                         nvae = NoViableAltException("", 49, 4, self.input) 
     4266                        nvae = NoViableAltException("", 51, 4, self.input) 
    41354267 
    41364268                        raise nvae 
    41374269 
    41384270 
    4139                 elif LA49 == FLOAT: 
    4140                     LA49_5 = self.input.LA(2) 
    4141  
    4142                     if (self.synpred73_UL4()) : 
    4143                         alt49 = 1 
    4144                     elif (self.synpred74_UL4()) : 
    4145                         alt49 = 2 
    4146                     elif (self.synpred75_UL4()) : 
    4147                         alt49 = 3 
     4271                elif LA51 == FLOAT: 
     4272                    LA51_5 = self.input.LA(2) 
     4273 
     4274                    if (self.synpred75_UL4()) : 
     4275                        alt51 = 1 
    41484276                    elif (self.synpred76_UL4()) : 
    4149                         alt49 = 4 
     4277                        alt51 = 2 
    41504278                    elif (self.synpred77_UL4()) : 
    4151                         alt49 = 5 
     4279                        alt51 = 3 
    41524280                    elif (self.synpred78_UL4()) : 
    4153                         alt49 = 6 
     4281                        alt51 = 4 
    41544282                    elif (self.synpred79_UL4()) : 
    4155                         alt49 = 7 
     4283                        alt51 = 5 
     4284                    elif (self.synpred80_UL4()) : 
     4285                        alt51 = 6 
     4286                    elif (self.synpred81_UL4()) : 
     4287                        alt51 = 7 
     4288                    elif (self.synpred82_UL4()) : 
     4289                        alt51 = 8 
     4290                    elif (self.synpred83_UL4()) : 
     4291                        alt51 = 9 
    41564292                    elif (True) : 
    4157                         alt49 = 8 
     4293                        alt51 = 10 
    41584294                    else: 
    41594295                        if self._state.backtracking > 0: 
     
    41614297 
    41624298 
    4163                         nvae = NoViableAltException("", 49, 5, self.input) 
     4299                        nvae = NoViableAltException("", 51, 5, self.input) 
    41644300 
    41654301                        raise nvae 
    41664302 
    41674303 
    4168                 elif LA49 == STRING: 
    4169                     LA49_6 = self.input.LA(2) 
    4170  
    4171                     if (self.synpred73_UL4()) : 
    4172                         alt49 = 1 
    4173                     elif (self.synpred74_UL4()) : 
    4174                         alt49 = 2 
    4175                     elif (self.synpred75_UL4()) : 
    4176                         alt49 = 3 
     4304                elif LA51 == STRING: 
     4305                    LA51_6 = self.input.LA(2) 
     4306 
     4307                    if (self.synpred75_UL4()) : 
     4308                        alt51 = 1 
    41774309                    elif (self.synpred76_UL4()) : 
    4178                         alt49 = 4 
     4310                        alt51 = 2 
    41794311                    elif (self.synpred77_UL4()) : 
    4180                         alt49 = 5 
     4312                        alt51 = 3 
    41814313                    elif (self.synpred78_UL4()) : 
    4182                         alt49 = 6 
     4314                        alt51 = 4 
    41834315                    elif (self.synpred79_UL4()) : 
    4184                         alt49 = 7 
     4316                        alt51 = 5 
     4317                    elif (self.synpred80_UL4()) : 
     4318                        alt51 = 6 
     4319                    elif (self.synpred81_UL4()) : 
     4320                        alt51 = 7 
     4321                    elif (self.synpred82_UL4()) : 
     4322                        alt51 = 8 
     4323                    elif (self.synpred83_UL4()) : 
     4324                        alt51 = 9 
    41854325                    elif (True) : 
    4186                         alt49 = 8 
     4326                        alt51 = 10 
    41874327                    else: 
    41884328                        if self._state.backtracking > 0: 
     
    41904330 
    41914331 
    4192                         nvae = NoViableAltException("", 49, 6, self.input) 
     4332                        nvae = NoViableAltException("", 51, 6, self.input) 
    41934333 
    41944334                        raise nvae 
    41954335 
    41964336 
    4197                 elif LA49 == STRING3: 
    4198                     LA49_7 = self.input.LA(2) 
    4199  
    4200                     if (self.synpred73_UL4()) : 
    4201                         alt49 = 1 
    4202                     elif (self.synpred74_UL4()) : 
    4203                         alt49 = 2 
    4204                     elif (self.synpred75_UL4()) : 
    4205                         alt49 = 3 
     4337                elif LA51 == STRING3: 
     4338                    LA51_7 = self.input.LA(2) 
     4339 
     4340                    if (self.synpred75_UL4()) : 
     4341                        alt51 = 1 
    42064342                    elif (self.synpred76_UL4()) : 
    4207                         alt49 = 4 
     4343                        alt51 = 2 
    42084344                    elif (self.synpred77_UL4()) : 
    4209                         alt49 = 5 
     4345                        alt51 = 3 
    42104346                    elif (self.synpred78_UL4()) : 
    4211                         alt49 = 6 
     4347                        alt51 = 4 
    42124348                    elif (self.synpred79_UL4()) : 
    4213                         alt49 = 7 
     4349                        alt51 = 5 
     4350                    elif (self.synpred80_UL4()) : 
     4351                        alt51 = 6 
     4352                    elif (self.synpred81_UL4()) : 
     4353                        alt51 = 7 
     4354                    elif (self.synpred82_UL4()) : 
     4355                        alt51 = 8 
     4356                    elif (self.synpred83_UL4()) : 
     4357                        alt51 = 9 
    42144358                    elif (True) : 
    4215                         alt49 = 8 
     4359                        alt51 = 10 
    42164360                    else: 
    42174361                        if self._state.backtracking > 0: 
     
    42194363 
    42204364 
    4221                         nvae = NoViableAltException("", 49, 7, self.input) 
     4365                        nvae = NoViableAltException("", 51, 7, self.input) 
    42224366 
    42234367                        raise nvae 
    42244368 
    42254369 
    4226                 elif LA49 == DATE: 
    4227                     LA49_8 = self.input.LA(2) 
    4228  
    4229                     if (self.synpred73_UL4()) : 
    4230                         alt49 = 1 
    4231                     elif (self.synpred74_UL4()) : 
    4232                         alt49 = 2 
    4233                     elif (self.synpred75_UL4()) : 
    4234                         alt49 = 3 
     4370                elif LA51 == DATE: 
     4371                    LA51_8 = self.input.LA(2) 
     4372 
     4373                    if (self.synpred75_UL4()) : 
     4374                        alt51 = 1 
    42354375                    elif (self.synpred76_UL4()) : 
    4236                         alt49 = 4 
     4376                        alt51 = 2 
    42374377                    elif (self.synpred77_UL4()) : 
    4238                         alt49 = 5 
     4378                        alt51 = 3 
    42394379                    elif (self.synpred78_UL4()) : 
    4240                         alt49 = 6 
     4380                        alt51 = 4 
    42414381                    elif (self.synpred79_UL4()) : 
    4242                         alt49 = 7 
     4382                        alt51 = 5 
     4383                    elif (self.synpred80_UL4()) : 
     4384                        alt51 = 6 
     4385                    elif (self.synpred81_UL4()) : 
     4386                        alt51 = 7 
     4387                    elif (self.synpred82_UL4()) : 
     4388                        alt51 = 8 
     4389                    elif (self.synpred83_UL4()) : 
     4390                        alt51 = 9 
    42434391                    elif (True) : 
    4244                         alt49 = 8 
     4392                        alt51 = 10 
    42454393                    else: 
    42464394                        if self._state.backtracking > 0: 
     
    42484396 
    42494397 
    4250                         nvae = NoViableAltException("", 49, 8, self.input) 
     4398                        nvae = NoViableAltException("", 51, 8, self.input) 
    42514399 
    42524400                        raise nvae 
    42534401 
    42544402 
    4255                 elif LA49 == COLOR: 
    4256                     LA49_9 = self.input.LA(2) 
    4257  
    4258                     if (self.synpred73_UL4()) : 
    4259                         alt49 = 1 
    4260                     elif (self.synpred74_UL4()) : 
    4261                         alt49 = 2 
    4262                     elif (self.synpred75_UL4()) : 
    4263                         alt49 = 3 
     4403                elif LA51 == COLOR: 
     4404                    LA51_9 = self.input.LA(2) 
     4405 
     4406                    if (self.synpred75_UL4()) : 
     4407                        alt51 = 1 
    42644408                    elif (self.synpred76_UL4()) : 
    4265                         alt49 = 4 
     4409                        alt51 = 2 
    42664410                    elif (self.synpred77_UL4()) : 
    4267                         alt49 = 5 
     4411                        alt51 = 3 
    42684412                    elif (self.synpred78_UL4()) : 
    4269                         alt49 = 6 
     4413                        alt51 = 4 
    42704414                    elif (self.synpred79_UL4()) : 
    4271                         alt49 = 7 
     4415                        alt51 = 5 
     4416                    elif (self.synpred80_UL4()) : 
     4417                        alt51 = 6 
     4418                    elif (self.synpred81_UL4()) : 
     4419                        alt51 = 7 
     4420                    elif (self.synpred82_UL4()) : 
     4421                        alt51 = 8 
     4422                    elif (self.synpred83_UL4()) : 
     4423                        alt51 = 9 
    42724424                    elif (True) : 
    4273                         alt49 = 8 
     4425                        alt51 = 10 
    42744426                    else: 
    42754427                        if self._state.backtracking > 0: 
     
    42774429 
    42784430 
    4279                         nvae = NoViableAltException("", 49, 9, self.input) 
     4431                        nvae = NoViableAltException("", 51, 9, self.input) 
    42804432 
    42814433                        raise nvae 
    42824434 
    42834435 
    4284                 elif LA49 == NAME: 
    4285                     LA49_10 = self.input.LA(2) 
    4286  
    4287                     if (self.synpred73_UL4()) : 
    4288                         alt49 = 1 
    4289                     elif (self.synpred74_UL4()) : 
    4290                         alt49 = 2 
    4291                     elif (self.synpred75_UL4()) : 
    4292                         alt49 = 3 
     4436                elif LA51 == NAME: 
     4437                    LA51_10 = self.input.LA(2) 
     4438 
     4439                    if (self.synpred75_UL4()) : 
     4440                        alt51 = 1 
    42934441                    elif (self.synpred76_UL4()) : 
    4294                         alt49 = 4 
     4442                        alt51 = 2 
    42954443                    elif (self.synpred77_UL4()) : 
    4296                         alt49 = 5 
     4444                        alt51 = 3 
    42974445                    elif (self.synpred78_UL4()) : 
    4298                         alt49 = 6 
     4446                        alt51 = 4 
    42994447                    elif (self.synpred79_UL4()) : 
    4300                         alt49 = 7 
     4448                        alt51 = 5 
     4449                    elif (self.synpred80_UL4()) : 
     4450                        alt51 = 6 
     4451                    elif (self.synpred81_UL4()) : 
     4452                        alt51 = 7 
     4453                    elif (self.synpred82_UL4()) : 
     4454                        alt51 = 8 
     4455                    elif (self.synpred83_UL4()) : 
     4456                        alt51 = 9 
    43014457                    elif (True) : 
    4302                         alt49 = 8 
     4458                        alt51 = 10 
    43034459                    else: 
    43044460                        if self._state.backtracking > 0: 
     
    43064462 
    43074463 
    4308                         nvae = NoViableAltException("", 49, 10, self.input) 
     4464                        nvae = NoViableAltException("", 51, 10, self.input) 
    43094465 
    43104466                        raise nvae 
    43114467 
    43124468 
    4313                 elif LA49 == 52: 
    4314                     LA49_11 = self.input.LA(2) 
    4315  
    4316                     if (self.synpred73_UL4()) : 
    4317                         alt49 = 1 
    4318                     elif (self.synpred74_UL4()) : 
    4319                         alt49 = 2 
    4320                     elif (self.synpred75_UL4()) : 
    4321                         alt49 = 3 
     4469                elif LA51 == 56: 
     4470                    LA51_11 = self.input.LA(2) 
     4471 
     4472                    if (self.synpred75_UL4()) : 
     4473                        alt51 = 1 
    43224474                    elif (self.synpred76_UL4()) : 
    4323                         alt49 = 4 
     4475                        alt51 = 2 
    43244476                    elif (self.synpred77_UL4()) : 
    4325                         alt49 = 5 
     4477                        alt51 = 3 
    43264478                    elif (self.synpred78_UL4()) : 
    4327                         alt49 = 6 
     4479                        alt51 = 4 
    43284480                    elif (self.synpred79_UL4()) : 
    4329                         alt49 = 7 
     4481                        alt51 = 5 
     4482                    elif (self.synpred80_UL4()) : 
     4483                        alt51 = 6 
     4484                    elif (self.synpred81_UL4()) : 
     4485                        alt51 = 7 
     4486                    elif (self.synpred82_UL4()) : 
     4487                        alt51 = 8 
     4488                    elif (self.synpred83_UL4()) : 
     4489                        alt51 = 9 
    43304490                    elif (True) : 
    4331                         alt49 = 8 
     4491                        alt51 = 10 
    43324492                    else: 
    43334493                        if self._state.backtracking > 0: 
     
    43354495 
    43364496 
    4337                         nvae = NoViableAltException("", 49, 11, self.input) 
     4497                        nvae = NoViableAltException("", 51, 11, self.input) 
    43384498 
    43394499                        raise nvae 
    43404500 
    43414501 
    4342                 elif LA49 == 61: 
    4343                     LA49_12 = self.input.LA(2) 
    4344  
    4345                     if (self.synpred73_UL4()) : 
    4346                         alt49 = 1 
    4347                     elif (self.synpred74_UL4()) : 
    4348                         alt49 = 2 
    4349                     elif (self.synpred75_UL4()) : 
    4350                         alt49 = 3 
     4502                elif LA51 == 65: 
     4503                    LA51_12 = self.input.LA(2) 
     4504 
     4505                    if (self.synpred75_UL4()) : 
     4506                        alt51 = 1 
    43514507                    elif (self.synpred76_UL4()) : 
    4352                         alt49 = 4 
     4508                        alt51 = 2 
    43534509                    elif (self.synpred77_UL4()) : 
    4354                         alt49 = 5 
     4510                        alt51 = 3 
    43554511                    elif (self.synpred78_UL4()) : 
    4356                         alt49 = 6 
     4512                        alt51 = 4 
    43574513                    elif (self.synpred79_UL4()) : 
    4358                         alt49 = 7 
     4514                        alt51 = 5 
     4515                    elif (self.synpred80_UL4()) : 
     4516                        alt51 = 6 
     4517                    elif (self.synpred81_UL4()) : 
     4518                        alt51 = 7 
     4519                    elif (self.synpred82_UL4()) : 
     4520                        alt51 = 8 
     4521                    elif (self.synpred83_UL4()) : 
     4522                        alt51 = 9 
    43594523                    elif (True) : 
    4360                         alt49 = 8 
     4524                        alt51 = 10 
    43614525                    else: 
    43624526                        if self._state.backtracking > 0: 
     
    43644528 
    43654529 
    4366                         nvae = NoViableAltException("", 49, 12, self.input) 
     4530                        nvae = NoViableAltException("", 51, 12, self.input) 
    43674531 
    43684532                        raise nvae 
    43694533 
    43704534 
    4371                 elif LA49 == 30: 
    4372                     LA49_13 = self.input.LA(2) 
    4373  
    4374                     if (self.synpred73_UL4()) : 
    4375                         alt49 = 1 
    4376                     elif (self.synpred74_UL4()) : 
    4377                         alt49 = 2 
    4378                     elif (self.synpred75_UL4()) : 
    4379                         alt49 = 3 
     4535                elif LA51 == 30: 
     4536                    LA51_13 = self.input.LA(2) 
     4537 
     4538                    if (self.synpred75_UL4()) : 
     4539                        alt51 = 1 
    43804540                    elif (self.synpred76_UL4()) : 
    4381                         alt49 = 4 
     4541                        alt51 = 2 
    43824542                    elif (self.synpred77_UL4()) : 
    4383                         alt49 = 5 
     4543                        alt51 = 3 
    43844544                    elif (self.synpred78_UL4()) : 
    4385                         alt49 = 6 
     4545                        alt51 = 4 
    43864546                    elif (self.synpred79_UL4()) : 
    4387                         alt49 = 7 
     4547                        alt51 = 5 
     4548                    elif (self.synpred80_UL4()) : 
     4549                        alt51 = 6 
     4550                    elif (self.synpred81_UL4()) : 
     4551                        alt51 = 7 
     4552                    elif (self.synpred82_UL4()) : 
     4553                        alt51 = 8 
     4554                    elif (self.synpred83_UL4()) : 
     4555                        alt51 = 9 
    43884556                    elif (True) : 
    4389                         alt49 = 8 
     4557                        alt51 = 10 
    43904558                    else: 
    43914559                        if self._state.backtracking > 0: 
     
    43934561 
    43944562 
    4395                         nvae = NoViableAltException("", 49, 13, self.input) 
     4563                        nvae = NoViableAltException("", 51, 13, self.input) 
    43964564 
    43974565                        raise nvae 
    43984566 
    43994567 
    4400                 elif LA49 == 38 or LA49 == 59: 
    4401                     alt49 = 8 
     4568                elif LA51 == 38 or LA51 == 63: 
     4569                    alt51 = 10 
    44024570                else: 
    44034571                    if self._state.backtracking > 0: 
     
    44054573 
    44064574 
    4407                     nvae = NoViableAltException("", 49, 0, self.input) 
     4575                    nvae = NoViableAltException("", 51, 0, self.input) 
    44084576 
    44094577                    raise nvae 
    44104578 
    44114579 
    4412                 if alt49 == 1: 
    4413                     # src/ll/UL4.g:581:4: nn= nestedlvalue '=' e= expr_if EOF 
     4580                if alt51 == 1: 
     4581                    # src/ll/UL4.g:595:4: nn= nestedlvalue '=' e= expr_if EOF 
    44144582                    pass  
    4415                     self._state.following.append(self.FOLLOW_nestedlvalue_in_statement3006) 
     4583                    self._state.following.append(self.FOLLOW_nestedlvalue_in_statement3078) 
    44164584                    nn = self.nestedlvalue() 
    44174585 
    44184586                    self._state.following.pop() 
    44194587 
    4420                     self.match(self.input, 48, self.FOLLOW_48_in_statement3008) 
    4421  
    4422                     self._state.following.append(self.FOLLOW_expr_if_in_statement3012) 
     4588                    self.match(self.input, 50, self.FOLLOW_50_in_statement3080) 
     4589 
     4590                    self._state.following.append(self.FOLLOW_expr_if_in_statement3084) 
    44234591                    e = self.expr_if() 
    44244592 
    44254593                    self._state.following.pop() 
    44264594 
    4427                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3014) 
     4595                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3086) 
    44284596 
    44294597                    if self._state.backtracking == 0: 
     
    44344602 
    44354603 
    4436                 elif alt49 == 2: 
    4437                     # src/ll/UL4.g:582:4: n= expr_subscript '+=' e= expr_if EOF 
     4604                elif alt51 == 2: 
     4605                    # src/ll/UL4.g:596:4: n= expr_subscript '+=' e= expr_if EOF 
    44384606                    pass  
    4439                     self._state.following.append(self.FOLLOW_expr_subscript_in_statement3023) 
     4607                    self._state.following.append(self.FOLLOW_expr_subscript_in_statement3095) 
    44404608                    n = self.expr_subscript() 
    44414609 
    44424610                    self._state.following.pop() 
    44434611 
    4444                     self.match(self.input, 36, self.FOLLOW_36_in_statement3025) 
    4445  
    4446                     self._state.following.append(self.FOLLOW_expr_if_in_statement3029) 
     4612                    self.match(self.input, 36, self.FOLLOW_36_in_statement3097) 
     4613 
     4614                    self._state.following.append(self.FOLLOW_expr_if_in_statement3101) 
    44474615                    e = self.expr_if() 
    44484616 
    44494617                    self._state.following.pop() 
    44504618 
    4451                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3031) 
     4619                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3103) 
    44524620 
    44534621                    if self._state.backtracking == 0: 
     
    44584626 
    44594627 
    4460                 elif alt49 == 3: 
    4461                     # src/ll/UL4.g:583:4: n= expr_subscript '-=' e= expr_if EOF 
     4628                elif alt51 == 3: 
     4629                    # src/ll/UL4.g:597:4: n= expr_subscript '-=' e= expr_if EOF 
    44624630                    pass  
    4463                     self._state.following.append(self.FOLLOW_expr_subscript_in_statement3040) 
     4631                    self._state.following.append(self.FOLLOW_expr_subscript_in_statement3112) 
    44644632                    n = self.expr_subscript() 
    44654633 
    44664634                    self._state.following.pop() 
    44674635 
    4468                     self.match(self.input, 39, self.FOLLOW_39_in_statement3042) 
    4469  
    4470                     self._state.following.append(self.FOLLOW_expr_if_in_statement3046) 
     4636                    self.match(self.input, 39, self.FOLLOW_39_in_statement3114) 
     4637 
     4638                    self._state.following.append(self.FOLLOW_expr_if_in_statement3118) 
    44714639                    e = self.expr_if() 
    44724640 
    44734641                    self._state.following.pop() 
    44744642 
    4475                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3048) 
     4643                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3120) 
    44764644 
    44774645                    if self._state.backtracking == 0: 
     
    44824650 
    44834651 
    4484                 elif alt49 == 4: 
    4485                     # src/ll/UL4.g:584:4: n= expr_subscript '*=' e= expr_if EOF 
     4652                elif alt51 == 4: 
     4653                    # src/ll/UL4.g:598:4: n= expr_subscript '*=' e= expr_if EOF 
    44864654                    pass  
    4487                     self._state.following.append(self.FOLLOW_expr_subscript_in_statement3057) 
     4655                    self._state.following.append(self.FOLLOW_expr_subscript_in_statement3129) 
    44884656                    n = self.expr_subscript() 
    44894657 
    44904658                    self._state.following.pop() 
    44914659 
    4492                     self.match(self.input, 34, self.FOLLOW_34_in_statement3059) 
    4493  
    4494                     self._state.following.append(self.FOLLOW_expr_if_in_statement3063) 
     4660                    self.match(self.input, 34, self.FOLLOW_34_in_statement3131) 
     4661 
     4662                    self._state.following.append(self.FOLLOW_expr_if_in_statement3135) 
    44954663                    e = self.expr_if() 
    44964664 
    44974665                    self._state.following.pop() 
    44984666 
    4499                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3065) 
     4667                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3137) 
    45004668 
    45014669                    if self._state.backtracking == 0: 
     
    45064674 
    45074675 
    4508                 elif alt49 == 5: 
    4509                     # src/ll/UL4.g:585:4: n= expr_subscript '/=' e= expr_if EOF 
     4676                elif alt51 == 5: 
     4677                    # src/ll/UL4.g:599:4: n= expr_subscript '/=' e= expr_if EOF 
    45104678                    pass  
    4511                     self._state.following.append(self.FOLLOW_expr_subscript_in_statement3074) 
     4679                    self._state.following.append(self.FOLLOW_expr_subscript_in_statement3146) 
    45124680                    n = self.expr_subscript() 
    45134681 
    45144682                    self._state.following.pop() 
    45154683 
    4516                     self.match(self.input, 44, self.FOLLOW_44_in_statement3076) 
    4517  
    4518                     self._state.following.append(self.FOLLOW_expr_if_in_statement3080) 
     4684                    self.match(self.input, 44, self.FOLLOW_44_in_statement3148) 
     4685 
     4686                    self._state.following.append(self.FOLLOW_expr_if_in_statement3152) 
    45194687                    e = self.expr_if() 
    45204688 
    45214689                    self._state.following.pop() 
    45224690 
    4523                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3082) 
     4691                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3154) 
    45244692 
    45254693                    if self._state.backtracking == 0: 
     
    45304698 
    45314699 
    4532                 elif alt49 == 6: 
    4533                     # src/ll/UL4.g:586:4: n= expr_subscript '//=' e= expr_if EOF 
     4700                elif alt51 == 6: 
     4701                    # src/ll/UL4.g:600:4: n= expr_subscript '//=' e= expr_if EOF 
    45344702                    pass  
    4535                     self._state.following.append(self.FOLLOW_expr_subscript_in_statement3091) 
     4703                    self._state.following.append(self.FOLLOW_expr_subscript_in_statement3163) 
    45364704                    n = self.expr_subscript() 
    45374705 
    45384706                    self._state.following.pop() 
    45394707 
    4540                     self.match(self.input, 43, self.FOLLOW_43_in_statement3093) 
    4541  
    4542                     self._state.following.append(self.FOLLOW_expr_if_in_statement3097) 
     4708                    self.match(self.input, 43, self.FOLLOW_43_in_statement3165) 
     4709 
     4710                    self._state.following.append(self.FOLLOW_expr_if_in_statement3169) 
    45434711                    e = self.expr_if() 
    45444712 
    45454713                    self._state.following.pop() 
    45464714 
    4547                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3099) 
     4715                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3171) 
    45484716 
    45494717                    if self._state.backtracking == 0: 
     
    45544722 
    45554723 
    4556                 elif alt49 == 7: 
    4557                     # src/ll/UL4.g:587:4: n= expr_subscript '%=' e= expr_if EOF 
     4724                elif alt51 == 7: 
     4725                    # src/ll/UL4.g:601:4: n= expr_subscript '%=' e= expr_if EOF 
    45584726                    pass  
    4559                     self._state.following.append(self.FOLLOW_expr_subscript_in_statement3108) 
     4727                    self._state.following.append(self.FOLLOW_expr_subscript_in_statement3180) 
    45604728                    n = self.expr_subscript() 
    45614729 
    45624730                    self._state.following.pop() 
    45634731 
    4564                     self.match(self.input, 29, self.FOLLOW_29_in_statement3110) 
    4565  
    4566                     self._state.following.append(self.FOLLOW_expr_if_in_statement3114) 
     4732                    self.match(self.input, 29, self.FOLLOW_29_in_statement3182) 
     4733 
     4734                    self._state.following.append(self.FOLLOW_expr_if_in_statement3186) 
    45674735                    e = self.expr_if() 
    45684736 
    45694737                    self._state.following.pop() 
    45704738 
    4571                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3116) 
     4739                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3188) 
    45724740 
    45734741                    if self._state.backtracking == 0: 
     
    45784746 
    45794747 
    4580                 elif alt49 == 8: 
    4581                     # src/ll/UL4.g:588:4: e= expression EOF 
     4748                elif alt51 == 8: 
     4749                    # src/ll/UL4.g:602:4: n= expr_subscript '<<=' e= expr_if EOF 
    45824750                    pass  
    4583                     self._state.following.append(self.FOLLOW_expression_in_statement3125) 
     4751                    self._state.following.append(self.FOLLOW_expr_subscript_in_statement3197) 
     4752                    n = self.expr_subscript() 
     4753 
     4754                    self._state.following.pop() 
     4755 
     4756                    self.match(self.input, 48, self.FOLLOW_48_in_statement3199) 
     4757 
     4758                    self._state.following.append(self.FOLLOW_expr_if_in_statement3203) 
     4759                    e = self.expr_if() 
     4760 
     4761                    self._state.following.pop() 
     4762 
     4763                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3205) 
     4764 
     4765                    if self._state.backtracking == 0: 
     4766                        pass 
     4767                        node = ul4c.ShiftLeftVar(self.location, self.start(n.start), e.end, ((n is not None) and [n.node] or [None])[0], e)  
     4768 
     4769 
     4770 
     4771 
     4772                elif alt51 == 9: 
     4773                    # src/ll/UL4.g:603:4: n= expr_subscript '>>=' e= expr_if EOF 
     4774                    pass  
     4775                    self._state.following.append(self.FOLLOW_expr_subscript_in_statement3214) 
     4776                    n = self.expr_subscript() 
     4777 
     4778                    self._state.following.pop() 
     4779 
     4780                    self.match(self.input, 55, self.FOLLOW_55_in_statement3216) 
     4781 
     4782                    self._state.following.append(self.FOLLOW_expr_if_in_statement3220) 
     4783                    e = self.expr_if() 
     4784 
     4785                    self._state.following.pop() 
     4786 
     4787                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3222) 
     4788 
     4789                    if self._state.backtracking == 0: 
     4790                        pass 
     4791                        node = ul4c.ShiftRightVar(self.location, self.start(n.start), e.end, ((n is not None) and [n.node] or [None])[0], e)  
     4792 
     4793 
     4794 
     4795 
     4796                elif alt51 == 10: 
     4797                    # src/ll/UL4.g:604:4: e= expression EOF 
     4798                    pass  
     4799                    self._state.following.append(self.FOLLOW_expression_in_statement3231) 
    45844800                    e = self.expression() 
    45854801 
    45864802                    self._state.following.pop() 
    45874803 
    4588                     self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3127) 
     4804                    self.match(self.input, EOF, self.FOLLOW_EOF_in_statement3233) 
    45894805 
    45904806                    if self._state.backtracking == 0: 
     
    47444960 
    47454961 
    4746     # $ANTLR start "synpred70_UL4" 
    4747     def synpred70_UL4_fragment(self, ): 
     4962    # $ANTLR start "synpred72_UL4" 
     4963    def synpred72_UL4_fragment(self, ): 
    47484964        e2 = None 
    47494965        e3 = None 
    47504966 
    4751         # src/ll/UL4.g:549:4: ( 'if' e2= expr_or 'else' e3= expr_or ) 
    4752         # src/ll/UL4.g:549:4: 'if' e2= expr_or 'else' e3= expr_or 
     4967        # src/ll/UL4.g:563:4: ( 'if' e2= expr_or 'else' e3= expr_or ) 
     4968        # src/ll/UL4.g:563:4: 'if' e2= expr_or 'else' e3= expr_or 
    47534969        pass  
    4754         self.match(self.input, 57, self.FOLLOW_57_in_synpred70_UL42860) 
    4755  
    4756         self._state.following.append(self.FOLLOW_expr_or_in_synpred70_UL42867) 
     4970        self.match(self.input, 61, self.FOLLOW_61_in_synpred72_UL42932) 
     4971 
     4972        self._state.following.append(self.FOLLOW_expr_or_in_synpred72_UL42939) 
    47574973        e2 = self.expr_or() 
    47584974 
    47594975        self._state.following.pop() 
    47604976 
    4761         self.match(self.input, 55, self.FOLLOW_55_in_synpred70_UL42872) 
    4762  
    4763         self._state.following.append(self.FOLLOW_expr_or_in_synpred70_UL42879) 
     4977        self.match(self.input, 59, self.FOLLOW_59_in_synpred72_UL42944) 
     4978 
     4979        self._state.following.append(self.FOLLOW_expr_or_in_synpred72_UL42951) 
    47644980        e3 = self.expr_or() 
    47654981 
    47664982        self._state.following.pop() 
    4767  
    4768  
    4769  
    4770     # $ANTLR end "synpred70_UL4" 
    4771  
    4772  
    4773  
    4774     # $ANTLR start "synpred71_UL4" 
    4775     def synpred71_UL4_fragment(self, ): 
    4776         ege = None 
    4777  
    4778         # src/ll/UL4.g:557:4: (ege= generatorexpression ) 
    4779         # src/ll/UL4.g:557:4: ege= generatorexpression 
    4780         pass  
    4781         self._state.following.append(self.FOLLOW_generatorexpression_in_synpred71_UL42903) 
    4782         ege = self.generatorexpression() 
    4783  
    4784         self._state.following.pop() 
    4785  
    4786  
    4787  
    4788     # $ANTLR end "synpred71_UL4" 
    4789  
    4790  
    4791  
    4792     # $ANTLR start "synpred72_UL4" 
    4793     def synpred72_UL4_fragment(self, ): 
    4794         ege = None 
    4795  
    4796         # src/ll/UL4.g:562:4: (ege= generatorexpression EOF ) 
    4797         # src/ll/UL4.g:562:4: ege= generatorexpression EOF 
    4798         pass  
    4799         self._state.following.append(self.FOLLOW_generatorexpression_in_synpred72_UL42931) 
    4800         ege = self.generatorexpression() 
    4801  
    4802         self._state.following.pop() 
    4803  
    4804         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred72_UL42933) 
    48054983 
    48064984 
     
    48124990    # $ANTLR start "synpred73_UL4" 
    48134991    def synpred73_UL4_fragment(self, ): 
     4992        ege = None 
     4993 
     4994        # src/ll/UL4.g:571:4: (ege= generatorexpression ) 
     4995        # src/ll/UL4.g:571:4: ege= generatorexpression 
     4996        pass  
     4997        self._state.following.append(self.FOLLOW_generatorexpression_in_synpred73_UL42975) 
     4998        ege = self.generatorexpression() 
     4999 
     5000        self._state.following.pop() 
     5001 
     5002 
     5003 
     5004    # $ANTLR end "synpred73_UL4" 
     5005 
     5006 
     5007 
     5008    # $ANTLR start "synpred74_UL4" 
     5009    def synpred74_UL4_fragment(self, ): 
     5010        ege = None 
     5011 
     5012        # src/ll/UL4.g:576:4: (ege= generatorexpression EOF ) 
     5013        # src/ll/UL4.g:576:4: ege= generatorexpression EOF 
     5014        pass  
     5015        self._state.following.append(self.FOLLOW_generatorexpression_in_synpred74_UL43003) 
     5016        ege = self.generatorexpression() 
     5017 
     5018        self._state.following.pop() 
     5019 
     5020        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred74_UL43005) 
     5021 
     5022 
     5023 
     5024    # $ANTLR end "synpred74_UL4" 
     5025 
     5026 
     5027 
     5028    # $ANTLR start "synpred75_UL4" 
     5029    def synpred75_UL4_fragment(self, ): 
    48145030        nn = None 
    48155031        e = None 
    48165032 
    4817         # src/ll/UL4.g:581:4: (nn= nestedlvalue '=' e= expr_if EOF ) 
    4818         # src/ll/UL4.g:581:4: nn= nestedlvalue '=' e= expr_if EOF 
     5033        # src/ll/UL4.g:595:4: (nn= nestedlvalue '=' e= expr_if EOF ) 
     5034        # src/ll/UL4.g:595:4: nn= nestedlvalue '=' e= expr_if EOF 
    48195035        pass  
    4820         self._state.following.append(self.FOLLOW_nestedlvalue_in_synpred73_UL43006) 
     5036        self._state.following.append(self.FOLLOW_nestedlvalue_in_synpred75_UL43078) 
    48215037        nn = self.nestedlvalue() 
    48225038 
    48235039        self._state.following.pop() 
    48245040 
    4825         self.match(self.input, 48, self.FOLLOW_48_in_synpred73_UL43008) 
    4826  
    4827         self._state.following.append(self.FOLLOW_expr_if_in_synpred73_UL43012) 
     5041        self.match(self.input, 50, self.FOLLOW_50_in_synpred75_UL43080) 
     5042 
     5043        self._state.following.append(self.FOLLOW_expr_if_in_synpred75_UL43084) 
    48285044        e = self.expr_if() 
    48295045 
    48305046        self._state.following.pop() 
    48315047 
    4832         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred73_UL43014) 
    4833  
    4834  
    4835  
    4836     # $ANTLR end "synpred73_UL4" 
    4837  
    4838  
    4839  
    4840     # $ANTLR start "synpred74_UL4" 
    4841     def synpred74_UL4_fragment(self, ): 
    4842         n = None 
    4843         e = None 
    4844  
    4845         # src/ll/UL4.g:582:4: (n= expr_subscript '+=' e= expr_if EOF ) 
    4846         # src/ll/UL4.g:582:4: n= expr_subscript '+=' e= expr_if EOF 
    4847         pass  
    4848         self._state.following.append(self.FOLLOW_expr_subscript_in_synpred74_UL43023) 
    4849         n = self.expr_subscript() 
    4850  
    4851         self._state.following.pop() 
    4852  
    4853         self.match(self.input, 36, self.FOLLOW_36_in_synpred74_UL43025) 
    4854  
    4855         self._state.following.append(self.FOLLOW_expr_if_in_synpred74_UL43029) 
    4856         e = self.expr_if() 
    4857  
    4858         self._state.following.pop() 
    4859  
    4860         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred74_UL43031) 
    4861  
    4862  
    4863  
    4864     # $ANTLR end "synpred74_UL4" 
    4865  
    4866  
    4867  
    4868     # $ANTLR start "synpred75_UL4" 
    4869     def synpred75_UL4_fragment(self, ): 
    4870         n = None 
    4871         e = None 
    4872  
    4873         # src/ll/UL4.g:583:4: (n= expr_subscript '-=' e= expr_if EOF ) 
    4874         # src/ll/UL4.g:583:4: n= expr_subscript '-=' e= expr_if EOF 
    4875         pass  
    4876         self._state.following.append(self.FOLLOW_expr_subscript_in_synpred75_UL43040) 
    4877         n = self.expr_subscript() 
    4878  
    4879         self._state.following.pop() 
    4880  
    4881         self.match(self.input, 39, self.FOLLOW_39_in_synpred75_UL43042) 
    4882  
    4883         self._state.following.append(self.FOLLOW_expr_if_in_synpred75_UL43046) 
    4884         e = self.expr_if() 
    4885  
    4886         self._state.following.pop() 
    4887  
    4888         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred75_UL43048) 
     5048        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred75_UL43086) 
    48895049 
    48905050 
     
    48995059        e = None 
    49005060 
    4901         # src/ll/UL4.g:584:4: (n= expr_subscript '*=' e= expr_if EOF ) 
    4902         # src/ll/UL4.g:584:4: n= expr_subscript '*=' e= expr_if EOF 
     5061        # src/ll/UL4.g:596:4: (n= expr_subscript '+=' e= expr_if EOF ) 
     5062        # src/ll/UL4.g:596:4: n= expr_subscript '+=' e= expr_if EOF 
    49035063        pass  
    4904         self._state.following.append(self.FOLLOW_expr_subscript_in_synpred76_UL43057) 
     5064        self._state.following.append(self.FOLLOW_expr_subscript_in_synpred76_UL43095) 
    49055065        n = self.expr_subscript() 
    49065066 
    49075067        self._state.following.pop() 
    49085068 
    4909         self.match(self.input, 34, self.FOLLOW_34_in_synpred76_UL43059) 
    4910  
    4911         self._state.following.append(self.FOLLOW_expr_if_in_synpred76_UL43063) 
     5069        self.match(self.input, 36, self.FOLLOW_36_in_synpred76_UL43097) 
     5070 
     5071        self._state.following.append(self.FOLLOW_expr_if_in_synpred76_UL43101) 
    49125072        e = self.expr_if() 
    49135073 
    49145074        self._state.following.pop() 
    49155075 
    4916         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred76_UL43065) 
     5076        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred76_UL43103) 
    49175077 
    49185078 
     
    49275087        e = None 
    49285088 
    4929         # src/ll/UL4.g:585:4: (n= expr_subscript '/=' e= expr_if EOF ) 
    4930         # src/ll/UL4.g:585:4: n= expr_subscript '/=' e= expr_if EOF 
     5089        # src/ll/UL4.g:597:4: (n= expr_subscript '-=' e= expr_if EOF ) 
     5090        # src/ll/UL4.g:597:4: n= expr_subscript '-=' e= expr_if EOF 
    49315091        pass  
    4932         self._state.following.append(self.FOLLOW_expr_subscript_in_synpred77_UL43074) 
     5092        self._state.following.append(self.FOLLOW_expr_subscript_in_synpred77_UL43112) 
    49335093        n = self.expr_subscript() 
    49345094 
    49355095        self._state.following.pop() 
    49365096 
    4937         self.match(self.input, 44, self.FOLLOW_44_in_synpred77_UL43076) 
    4938  
    4939         self._state.following.append(self.FOLLOW_expr_if_in_synpred77_UL43080) 
     5097        self.match(self.input, 39, self.FOLLOW_39_in_synpred77_UL43114) 
     5098 
     5099        self._state.following.append(self.FOLLOW_expr_if_in_synpred77_UL43118) 
    49405100        e = self.expr_if() 
    49415101 
    49425102        self._state.following.pop() 
    49435103 
    4944         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred77_UL43082) 
     5104        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred77_UL43120) 
    49455105 
    49465106 
     
    49555115        e = None 
    49565116 
    4957         # src/ll/UL4.g:586:4: (n= expr_subscript '//=' e= expr_if EOF ) 
    4958         # src/ll/UL4.g:586:4: n= expr_subscript '//=' e= expr_if EOF 
     5117        # src/ll/UL4.g:598:4: (n= expr_subscript '*=' e= expr_if EOF ) 
     5118        # src/ll/UL4.g:598:4: n= expr_subscript '*=' e= expr_if EOF 
    49595119        pass  
    4960         self._state.following.append(self.FOLLOW_expr_subscript_in_synpred78_UL43091) 
     5120        self._state.following.append(self.FOLLOW_expr_subscript_in_synpred78_UL43129) 
    49615121        n = self.expr_subscript() 
    49625122 
    49635123        self._state.following.pop() 
    49645124 
    4965         self.match(self.input, 43, self.FOLLOW_43_in_synpred78_UL43093) 
    4966  
    4967         self._state.following.append(self.FOLLOW_expr_if_in_synpred78_UL43097) 
     5125        self.match(self.input, 34, self.FOLLOW_34_in_synpred78_UL43131) 
     5126 
     5127        self._state.following.append(self.FOLLOW_expr_if_in_synpred78_UL43135) 
    49685128        e = self.expr_if() 
    49695129 
    49705130        self._state.following.pop() 
    49715131 
    4972         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred78_UL43099) 
     5132        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred78_UL43137) 
    49735133 
    49745134 
     
    49835143        e = None 
    49845144 
    4985         # src/ll/UL4.g:587:4: (n= expr_subscript '%=' e= expr_if EOF ) 
    4986         # src/ll/UL4.g:587:4: n= expr_subscript '%=' e= expr_if EOF 
     5145        # src/ll/UL4.g:599:4: (n= expr_subscript '/=' e= expr_if EOF ) 
     5146        # src/ll/UL4.g:599:4: n= expr_subscript '/=' e= expr_if EOF 
    49875147        pass  
    4988         self._state.following.append(self.FOLLOW_expr_subscript_in_synpred79_UL43108) 
     5148        self._state.following.append(self.FOLLOW_expr_subscript_in_synpred79_UL43146) 
    49895149        n = self.expr_subscript() 
    49905150 
    49915151        self._state.following.pop() 
    49925152 
    4993         self.match(self.input, 29, self.FOLLOW_29_in_synpred79_UL43110) 
    4994  
    4995         self._state.following.append(self.FOLLOW_expr_if_in_synpred79_UL43114) 
     5153        self.match(self.input, 44, self.FOLLOW_44_in_synpred79_UL43148) 
     5154 
     5155        self._state.following.append(self.FOLLOW_expr_if_in_synpred79_UL43152) 
    49965156        e = self.expr_if() 
    49975157 
    49985158        self._state.following.pop() 
    49995159 
    5000         self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred79_UL43116) 
     5160        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred79_UL43154) 
    50015161 
    50025162 
    50035163 
    50045164    # $ANTLR end "synpred79_UL4" 
     5165 
     5166 
     5167 
     5168    # $ANTLR start "synpred80_UL4" 
     5169    def synpred80_UL4_fragment(self, ): 
     5170        n = None 
     5171        e = None 
     5172 
     5173        # src/ll/UL4.g:600:4: (n= expr_subscript '//=' e= expr_if EOF ) 
     5174        # src/ll/UL4.g:600:4: n= expr_subscript '//=' e= expr_if EOF 
     5175        pass  
     5176        self._state.following.append(self.FOLLOW_expr_subscript_in_synpred80_UL43163) 
     5177        n = self.expr_subscript() 
     5178 
     5179        self._state.following.pop() 
     5180 
     5181        self.match(self.input, 43, self.FOLLOW_43_in_synpred80_UL43165) 
     5182 
     5183        self._state.following.append(self.FOLLOW_expr_if_in_synpred80_UL43169) 
     5184        e = self.expr_if() 
     5185 
     5186        self._state.following.pop() 
     5187 
     5188        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred80_UL43171) 
     5189 
     5190 
     5191 
     5192    # $ANTLR end "synpred80_UL4" 
     5193 
     5194 
     5195 
     5196    # $ANTLR start "synpred81_UL4" 
     5197    def synpred81_UL4_fragment(self, ): 
     5198        n = None 
     5199        e = None 
     5200 
     5201        # src/ll/UL4.g:601:4: (n= expr_subscript '%=' e= expr_if EOF ) 
     5202        # src/ll/UL4.g:601:4: n= expr_subscript '%=' e= expr_if EOF 
     5203        pass  
     5204        self._state.following.append(self.FOLLOW_expr_subscript_in_synpred81_UL43180) 
     5205        n = self.expr_subscript() 
     5206 
     5207        self._state.following.pop() 
     5208 
     5209        self.match(self.input, 29, self.FOLLOW_29_in_synpred81_UL43182) 
     5210 
     5211        self._state.following.append(self.FOLLOW_expr_if_in_synpred81_UL43186) 
     5212        e = self.expr_if() 
     5213 
     5214        self._state.following.pop() 
     5215 
     5216        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred81_UL43188) 
     5217 
     5218 
     5219 
     5220    # $ANTLR end "synpred81_UL4" 
     5221 
     5222 
     5223 
     5224    # $ANTLR start "synpred82_UL4" 
     5225    def synpred82_UL4_fragment(self, ): 
     5226        n = None 
     5227        e = None 
     5228 
     5229        # src/ll/UL4.g:602:4: (n= expr_subscript '<<=' e= expr_if EOF ) 
     5230        # src/ll/UL4.g:602:4: n= expr_subscript '<<=' e= expr_if EOF 
     5231        pass  
     5232        self._state.following.append(self.FOLLOW_expr_subscript_in_synpred82_UL43197) 
     5233        n = self.expr_subscript() 
     5234 
     5235        self._state.following.pop() 
     5236 
     5237        self.match(self.input, 48, self.FOLLOW_48_in_synpred82_UL43199) 
     5238 
     5239        self._state.following.append(self.FOLLOW_expr_if_in_synpred82_UL43203) 
     5240        e = self.expr_if() 
     5241 
     5242        self._state.following.pop() 
     5243 
     5244        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred82_UL43205) 
     5245 
     5246 
     5247 
     5248    # $ANTLR end "synpred82_UL4" 
     5249 
     5250 
     5251 
     5252    # $ANTLR start "synpred83_UL4" 
     5253    def synpred83_UL4_fragment(self, ): 
     5254        n = None 
     5255        e = None 
     5256 
     5257        # src/ll/UL4.g:603:4: (n= expr_subscript '>>=' e= expr_if EOF ) 
     5258        # src/ll/UL4.g:603:4: n= expr_subscript '>>=' e= expr_if EOF 
     5259        pass  
     5260        self._state.following.append(self.FOLLOW_expr_subscript_in_synpred83_UL43214) 
     5261        n = self.expr_subscript() 
     5262 
     5263        self._state.following.pop() 
     5264 
     5265        self.match(self.input, 55, self.FOLLOW_55_in_synpred83_UL43216) 
     5266 
     5267        self._state.following.append(self.FOLLOW_expr_if_in_synpred83_UL43220) 
     5268        e = self.expr_if() 
     5269 
     5270        self._state.following.pop() 
     5271 
     5272        self.match(self.input, EOF, self.FOLLOW_EOF_in_synpred83_UL43222) 
     5273 
     5274 
     5275 
     5276    # $ANTLR end "synpred83_UL4" 
    50055277 
    50065278 
     
    50725344        return success 
    50735345 
    5074     def synpred70_UL4(self): 
    5075         self._state.backtracking += 1 
    5076         start = self.input.mark() 
    5077         try: 
    5078             self.synpred70_UL4_fragment() 
    5079         except BacktrackingFailed: 
    5080             success = False 
    5081         else: 
    5082             success = True 
    5083         self.input.rewind(start) 
    5084         self._state.backtracking -= 1 
    5085         return success 
    5086  
    50875346    def synpred24_UL4(self): 
    50885347        self._state.backtracking += 1 
     
    51375396        return success 
    51385397 
     5398    def synpred81_UL4(self): 
     5399        self._state.backtracking += 1 
     5400        start = self.input.mark() 
     5401        try: 
     5402            self.synpred81_UL4_fragment() 
     5403        except BacktrackingFailed: 
     5404            success = False 
     5405        else: 
     5406            success = True 
     5407        self.input.rewind(start) 
     5408        self._state.backtracking -= 1 
     5409        return success 
     5410 
     5411    def synpred80_UL4(self): 
     5412        self._state.backtracking += 1 
     5413        start = self.input.mark() 
     5414        try: 
     5415            self.synpred80_UL4_fragment() 
     5416        except BacktrackingFailed: 
     5417            success = False 
     5418        else: 
     5419            success = True 
     5420        self.input.rewind(start) 
     5421        self._state.backtracking -= 1 
     5422        return success 
     5423 
    51395424    def synpred26_UL4(self): 
    51405425        self._state.backtracking += 1 
     
    51635448        return success 
    51645449 
    5165     def synpred71_UL4(self): 
     5450    def synpred83_UL4(self): 
    51665451        self._state.backtracking += 1 
    51675452        start = self.input.mark() 
    51685453        try: 
    5169             self.synpred71_UL4_fragment() 
     5454            self.synpred83_UL4_fragment() 
    51705455        except BacktrackingFailed: 
    51715456            success = False 
     
    51945479        try: 
    51955480            self.synpred73_UL4_fragment() 
     5481        except BacktrackingFailed: 
     5482            success = False 
     5483        else: 
     5484            success = True 
     5485        self.input.rewind(start) 
     5486        self._state.backtracking -= 1 
     5487        return success 
     5488 
     5489    def synpred82_UL4(self): 
     5490        self._state.backtracking += 1 
     5491        start = self.input.mark() 
     5492        try: 
     5493            self.synpred82_UL4_fragment() 
    51965494        except BacktrackingFailed: 
    51975495            success = False 
     
    52515549    FOLLOW_color_in_literal1024 = frozenset([1]) 
    52525550    FOLLOW_name_in_literal1033 = frozenset([1]) 
    5253     FOLLOW_52_in_list1056 = frozenset([53]) 
    5254     FOLLOW_53_in_list1062 = frozenset([1]) 
    5255     FOLLOW_52_in_list1073 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5256     FOLLOW_expr_if_in_list1081 = frozenset([37, 53]) 
    5257     FOLLOW_37_in_list1092 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5258     FOLLOW_expr_if_in_list1099 = frozenset([37, 53]) 
    5259     FOLLOW_37_in_list1110 = frozenset([53]) 
    5260     FOLLOW_53_in_list1117 = frozenset([1]) 
    5261     FOLLOW_52_in_listcomprehension1145 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5262     FOLLOW_expr_if_in_listcomprehension1151 = frozenset([56]) 
    5263     FOLLOW_56_in_listcomprehension1155 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 52, 61]) 
    5264     FOLLOW_nestedlvalue_in_listcomprehension1161 = frozenset([58]) 
    5265     FOLLOW_58_in_listcomprehension1165 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5266     FOLLOW_expr_if_in_listcomprehension1171 = frozenset([53, 57]) 
    5267     FOLLOW_57_in_listcomprehension1180 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5268     FOLLOW_expr_if_in_listcomprehension1187 = frozenset([53]) 
    5269     FOLLOW_53_in_listcomprehension1200 = frozenset([1]) 
     5551    FOLLOW_56_in_list1056 = frozenset([57]) 
     5552    FOLLOW_57_in_list1062 = frozenset([1]) 
     5553    FOLLOW_56_in_list1073 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5554    FOLLOW_expr_if_in_list1081 = frozenset([37, 57]) 
     5555    FOLLOW_37_in_list1092 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5556    FOLLOW_expr_if_in_list1099 = frozenset([37, 57]) 
     5557    FOLLOW_37_in_list1110 = frozenset([57]) 
     5558    FOLLOW_57_in_list1117 = frozenset([1]) 
     5559    FOLLOW_56_in_listcomprehension1145 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5560    FOLLOW_expr_if_in_listcomprehension1151 = frozenset([60]) 
     5561    FOLLOW_60_in_listcomprehension1155 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 56, 65]) 
     5562    FOLLOW_nestedlvalue_in_listcomprehension1161 = frozenset([62]) 
     5563    FOLLOW_62_in_listcomprehension1165 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5564    FOLLOW_expr_if_in_listcomprehension1171 = frozenset([57, 61]) 
     5565    FOLLOW_61_in_listcomprehension1180 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5566    FOLLOW_expr_if_in_listcomprehension1187 = frozenset([57]) 
     5567    FOLLOW_57_in_listcomprehension1200 = frozenset([1]) 
    52705568    FOLLOW_expr_if_in_dictitem1225 = frozenset([45]) 
    5271     FOLLOW_45_in_dictitem1229 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5569    FOLLOW_45_in_dictitem1229 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    52725570    FOLLOW_expr_if_in_dictitem1235 = frozenset([1]) 
    5273     FOLLOW_61_in_dict1256 = frozenset([62]) 
    5274     FOLLOW_62_in_dict1262 = frozenset([1]) 
    5275     FOLLOW_61_in_dict1273 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5276     FOLLOW_dictitem_in_dict1281 = frozenset([37, 62]) 
    5277     FOLLOW_37_in_dict1292 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5278     FOLLOW_dictitem_in_dict1299 = frozenset([37, 62]) 
    5279     FOLLOW_37_in_dict1310 = frozenset([62]) 
    5280     FOLLOW_62_in_dict1317 = frozenset([1]) 
    5281     FOLLOW_61_in_dictcomprehension1345 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5571    FOLLOW_65_in_dict1256 = frozenset([66]) 
     5572    FOLLOW_66_in_dict1262 = frozenset([1]) 
     5573    FOLLOW_65_in_dict1273 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5574    FOLLOW_dictitem_in_dict1281 = frozenset([37, 66]) 
     5575    FOLLOW_37_in_dict1292 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5576    FOLLOW_dictitem_in_dict1299 = frozenset([37, 66]) 
     5577    FOLLOW_37_in_dict1310 = frozenset([66]) 
     5578    FOLLOW_66_in_dict1317 = frozenset([1]) 
     5579    FOLLOW_65_in_dictcomprehension1345 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    52825580    FOLLOW_expr_if_in_dictcomprehension1351 = frozenset([45]) 
    5283     FOLLOW_45_in_dictcomprehension1355 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5284     FOLLOW_expr_if_in_dictcomprehension1361 = frozenset([56]) 
    5285     FOLLOW_56_in_dictcomprehension1365 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 52, 61]) 
    5286     FOLLOW_nestedlvalue_in_dictcomprehension1371 = frozenset([58]) 
    5287     FOLLOW_58_in_dictcomprehension1375 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5288     FOLLOW_expr_if_in_dictcomprehension1381 = frozenset([57, 62]) 
    5289     FOLLOW_57_in_dictcomprehension1390 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5290     FOLLOW_expr_if_in_dictcomprehension1397 = frozenset([62]) 
    5291     FOLLOW_62_in_dictcomprehension1410 = frozenset([1]) 
    5292     FOLLOW_expr_if_in_generatorexpression1438 = frozenset([56]) 
    5293     FOLLOW_56_in_generatorexpression1444 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 52, 61]) 
    5294     FOLLOW_nestedlvalue_in_generatorexpression1450 = frozenset([58]) 
    5295     FOLLOW_58_in_generatorexpression1454 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5296     FOLLOW_expr_if_in_generatorexpression1460 = frozenset([1, 57]) 
    5297     FOLLOW_57_in_generatorexpression1471 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5581    FOLLOW_45_in_dictcomprehension1355 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5582    FOLLOW_expr_if_in_dictcomprehension1361 = frozenset([60]) 
     5583    FOLLOW_60_in_dictcomprehension1365 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 56, 65]) 
     5584    FOLLOW_nestedlvalue_in_dictcomprehension1371 = frozenset([62]) 
     5585    FOLLOW_62_in_dictcomprehension1375 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5586    FOLLOW_expr_if_in_dictcomprehension1381 = frozenset([61, 66]) 
     5587    FOLLOW_61_in_dictcomprehension1390 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5588    FOLLOW_expr_if_in_dictcomprehension1397 = frozenset([66]) 
     5589    FOLLOW_66_in_dictcomprehension1410 = frozenset([1]) 
     5590    FOLLOW_expr_if_in_generatorexpression1438 = frozenset([60]) 
     5591    FOLLOW_60_in_generatorexpression1444 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 56, 65]) 
     5592    FOLLOW_nestedlvalue_in_generatorexpression1450 = frozenset([62]) 
     5593    FOLLOW_62_in_generatorexpression1454 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5594    FOLLOW_expr_if_in_generatorexpression1460 = frozenset([1, 61]) 
     5595    FOLLOW_61_in_generatorexpression1471 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    52985596    FOLLOW_expr_if_in_generatorexpression1478 = frozenset([1]) 
    52995597    FOLLOW_literal_in_atom1504 = frozenset([1]) 
     
    53025600    FOLLOW_dict_in_atom1531 = frozenset([1]) 
    53035601    FOLLOW_dictcomprehension_in_atom1540 = frozenset([1]) 
    5304     FOLLOW_30_in_atom1549 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5602    FOLLOW_30_in_atom1549 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53055603    FOLLOW_generatorexpression_in_atom1553 = frozenset([31]) 
    53065604    FOLLOW_31_in_atom1557 = frozenset([1]) 
    5307     FOLLOW_30_in_atom1566 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5605    FOLLOW_30_in_atom1566 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53085606    FOLLOW_expr_if_in_atom1570 = frozenset([31]) 
    53095607    FOLLOW_31_in_atom1574 = frozenset([1]) 
    53105608    FOLLOW_expr_subscript_in_nestedlvalue1597 = frozenset([1]) 
    5311     FOLLOW_30_in_nestedlvalue1606 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 52, 61]) 
     5609    FOLLOW_30_in_nestedlvalue1606 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 56, 65]) 
    53125610    FOLLOW_nestedlvalue_in_nestedlvalue1610 = frozenset([37]) 
    53135611    FOLLOW_37_in_nestedlvalue1612 = frozenset([31]) 
    53145612    FOLLOW_31_in_nestedlvalue1614 = frozenset([1]) 
    5315     FOLLOW_30_in_nestedlvalue1623 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 52, 61]) 
     5613    FOLLOW_30_in_nestedlvalue1623 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 56, 65]) 
    53165614    FOLLOW_nestedlvalue_in_nestedlvalue1629 = frozenset([37]) 
    5317     FOLLOW_37_in_nestedlvalue1633 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 52, 61]) 
     5615    FOLLOW_37_in_nestedlvalue1633 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 56, 65]) 
    53185616    FOLLOW_nestedlvalue_in_nestedlvalue1639 = frozenset([31, 37]) 
    5319     FOLLOW_37_in_nestedlvalue1650 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 52, 61]) 
     5617    FOLLOW_37_in_nestedlvalue1650 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 56, 65]) 
    53205618    FOLLOW_nestedlvalue_in_nestedlvalue1657 = frozenset([31, 37]) 
    53215619    FOLLOW_37_in_nestedlvalue1668 = frozenset([31]) 
    53225620    FOLLOW_31_in_nestedlvalue1673 = frozenset([1]) 
    5323     FOLLOW_atom_in_expr_subscript1701 = frozenset([1, 30, 40, 52]) 
     5621    FOLLOW_atom_in_expr_subscript1701 = frozenset([1, 30, 40, 56]) 
    53245622    FOLLOW_40_in_expr_subscript1717 = frozenset([14]) 
    5325     FOLLOW_name_in_expr_subscript1724 = frozenset([1, 30, 40, 52]) 
    5326     FOLLOW_30_in_expr_subscript1740 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 31, 32, 33, 38, 52, 59, 61]) 
    5327     FOLLOW_33_in_expr_subscript1770 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5623    FOLLOW_name_in_expr_subscript1724 = frozenset([1, 30, 40, 56]) 
     5624    FOLLOW_30_in_expr_subscript1740 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 31, 32, 33, 38, 56, 63, 65]) 
     5625    FOLLOW_33_in_expr_subscript1770 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53285626    FOLLOW_exprarg_in_expr_subscript1774 = frozenset([31, 37]) 
    53295627    FOLLOW_37_in_expr_subscript1782 = frozenset([31]) 
    5330     FOLLOW_32_in_expr_subscript1800 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5628    FOLLOW_32_in_expr_subscript1800 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53315629    FOLLOW_exprarg_in_expr_subscript1804 = frozenset([31, 37]) 
    53325630    FOLLOW_37_in_expr_subscript1819 = frozenset([33]) 
    5333     FOLLOW_33_in_expr_subscript1826 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5631    FOLLOW_33_in_expr_subscript1826 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53345632    FOLLOW_exprarg_in_expr_subscript1830 = frozenset([31, 37]) 
    53355633    FOLLOW_37_in_expr_subscript1845 = frozenset([31]) 
    53365634    FOLLOW_exprarg_in_expr_subscript1865 = frozenset([31, 37]) 
    5337     FOLLOW_37_in_expr_subscript1880 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5635    FOLLOW_37_in_expr_subscript1880 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53385636    FOLLOW_exprarg_in_expr_subscript1889 = frozenset([31, 37]) 
    53395637    FOLLOW_37_in_expr_subscript1911 = frozenset([14]) 
    5340     FOLLOW_name_in_expr_subscript1920 = frozenset([48]) 
    5341     FOLLOW_48_in_expr_subscript1922 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5638    FOLLOW_name_in_expr_subscript1920 = frozenset([50]) 
     5639    FOLLOW_50_in_expr_subscript1922 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53425640    FOLLOW_exprarg_in_expr_subscript1926 = frozenset([31, 37]) 
    53435641    FOLLOW_37_in_expr_subscript1948 = frozenset([32]) 
    5344     FOLLOW_32_in_expr_subscript1955 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5642    FOLLOW_32_in_expr_subscript1955 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53455643    FOLLOW_exprarg_in_expr_subscript1959 = frozenset([31, 37]) 
    53465644    FOLLOW_37_in_expr_subscript1981 = frozenset([33]) 
    5347     FOLLOW_33_in_expr_subscript1988 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5645    FOLLOW_33_in_expr_subscript1988 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53485646    FOLLOW_exprarg_in_expr_subscript1992 = frozenset([31, 37]) 
    53495647    FOLLOW_37_in_expr_subscript2007 = frozenset([31]) 
    5350     FOLLOW_name_in_expr_subscript2027 = frozenset([48]) 
    5351     FOLLOW_48_in_expr_subscript2029 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5648    FOLLOW_name_in_expr_subscript2027 = frozenset([50]) 
     5649    FOLLOW_50_in_expr_subscript2029 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53525650    FOLLOW_exprarg_in_expr_subscript2033 = frozenset([31, 37]) 
    53535651    FOLLOW_37_in_expr_subscript2048 = frozenset([14]) 
    5354     FOLLOW_name_in_expr_subscript2057 = frozenset([48]) 
    5355     FOLLOW_48_in_expr_subscript2059 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5652    FOLLOW_name_in_expr_subscript2057 = frozenset([50]) 
     5653    FOLLOW_50_in_expr_subscript2059 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53565654    FOLLOW_exprarg_in_expr_subscript2063 = frozenset([31, 37]) 
    53575655    FOLLOW_37_in_expr_subscript2085 = frozenset([32]) 
    5358     FOLLOW_32_in_expr_subscript2092 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5656    FOLLOW_32_in_expr_subscript2092 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53595657    FOLLOW_exprarg_in_expr_subscript2096 = frozenset([31, 37]) 
    53605658    FOLLOW_37_in_expr_subscript2118 = frozenset([33]) 
    5361     FOLLOW_33_in_expr_subscript2125 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5659    FOLLOW_33_in_expr_subscript2125 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    53625660    FOLLOW_exprarg_in_expr_subscript2129 = frozenset([31, 37]) 
    53635661    FOLLOW_37_in_expr_subscript2144 = frozenset([31]) 
    5364     FOLLOW_31_in_expr_subscript2157 = frozenset([1, 30, 40, 52]) 
    5365     FOLLOW_52_in_expr_subscript2173 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 45, 52, 59, 61]) 
    5366     FOLLOW_45_in_expr_subscript2184 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 53, 59, 61]) 
    5367     FOLLOW_expr_if_in_expr_subscript2199 = frozenset([53]) 
    5368     FOLLOW_expr_if_in_expr_subscript2223 = frozenset([45, 53]) 
    5369     FOLLOW_45_in_expr_subscript2238 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 53, 59, 61]) 
    5370     FOLLOW_expr_if_in_expr_subscript2257 = frozenset([53]) 
    5371     FOLLOW_53_in_expr_subscript2288 = frozenset([1, 30, 40, 52]) 
     5662    FOLLOW_31_in_expr_subscript2157 = frozenset([1, 30, 40, 56]) 
     5663    FOLLOW_56_in_expr_subscript2173 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 45, 56, 63, 65]) 
     5664    FOLLOW_45_in_expr_subscript2184 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 57, 63, 65]) 
     5665    FOLLOW_expr_if_in_expr_subscript2199 = frozenset([57]) 
     5666    FOLLOW_expr_if_in_expr_subscript2223 = frozenset([45, 57]) 
     5667    FOLLOW_45_in_expr_subscript2238 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 57, 63, 65]) 
     5668    FOLLOW_expr_if_in_expr_subscript2257 = frozenset([57]) 
     5669    FOLLOW_57_in_expr_subscript2288 = frozenset([1, 30, 40, 56]) 
    53725670    FOLLOW_expr_subscript_in_expr_neg2316 = frozenset([1]) 
    5373     FOLLOW_38_in_expr_neg2327 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
     5671    FOLLOW_38_in_expr_neg2327 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
    53745672    FOLLOW_expr_neg_in_expr_neg2331 = frozenset([1]) 
    53755673    FOLLOW_expr_neg_in_expr_mul2354 = frozenset([1, 28, 32, 41, 42]) 
    5376     FOLLOW_32_in_expr_mul2371 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5377     FOLLOW_41_in_expr_mul2384 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5378     FOLLOW_42_in_expr_mul2397 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5379     FOLLOW_28_in_expr_mul2410 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
     5674    FOLLOW_32_in_expr_mul2371 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5675    FOLLOW_41_in_expr_mul2384 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5676    FOLLOW_42_in_expr_mul2397 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5677    FOLLOW_28_in_expr_mul2410 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
    53805678    FOLLOW_expr_neg_in_expr_mul2424 = frozenset([1, 28, 32, 41, 42]) 
    53815679    FOLLOW_expr_mul_in_expr_add2452 = frozenset([1, 35, 38]) 
    5382     FOLLOW_35_in_expr_add2469 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5383     FOLLOW_38_in_expr_add2482 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
     5680    FOLLOW_35_in_expr_add2469 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5681    FOLLOW_38_in_expr_add2482 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
    53845682    FOLLOW_expr_mul_in_expr_add2496 = frozenset([1, 35, 38]) 
    5385     FOLLOW_expr_add_in_expr_cmp2524 = frozenset([1, 27, 46, 47, 49, 50, 51]) 
    5386     FOLLOW_49_in_expr_cmp2541 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5387     FOLLOW_27_in_expr_cmp2554 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5388     FOLLOW_46_in_expr_cmp2567 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5389     FOLLOW_47_in_expr_cmp2580 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5390     FOLLOW_50_in_expr_cmp2593 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5391     FOLLOW_51_in_expr_cmp2606 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5392     FOLLOW_expr_add_in_expr_cmp2620 = frozenset([1, 27, 46, 47, 49, 50, 51]) 
    5393     FOLLOW_expr_cmp_in_expr_contain2648 = frozenset([1, 58, 59]) 
    5394     FOLLOW_59_in_expr_contain2670 = frozenset([58]) 
    5395     FOLLOW_58_in_expr_contain2683 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 61]) 
    5396     FOLLOW_expr_cmp_in_expr_contain2690 = frozenset([1]) 
    5397     FOLLOW_expr_contain_in_expr_not2718 = frozenset([1]) 
    5398     FOLLOW_59_in_expr_not2729 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5399     FOLLOW_expr_not_in_expr_not2733 = frozenset([1]) 
    5400     FOLLOW_expr_not_in_expr_and2757 = frozenset([1, 54]) 
    5401     FOLLOW_54_in_expr_and2768 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5402     FOLLOW_expr_not_in_expr_and2775 = frozenset([1, 54]) 
    5403     FOLLOW_expr_and_in_expr_or2803 = frozenset([1, 60]) 
    5404     FOLLOW_60_in_expr_or2814 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5405     FOLLOW_expr_and_in_expr_or2821 = frozenset([1, 60]) 
    5406     FOLLOW_expr_or_in_expr_if2849 = frozenset([1, 57]) 
    5407     FOLLOW_57_in_expr_if2860 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5408     FOLLOW_expr_or_in_expr_if2867 = frozenset([55]) 
    5409     FOLLOW_55_in_expr_if2872 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5410     FOLLOW_expr_or_in_expr_if2879 = frozenset([1]) 
    5411     FOLLOW_generatorexpression_in_exprarg2903 = frozenset([1]) 
    5412     FOLLOW_expr_if_in_exprarg2912 = frozenset([1]) 
    5413     FOLLOW_generatorexpression_in_expression2931 = frozenset([]) 
    5414     FOLLOW_EOF_in_expression2933 = frozenset([1]) 
    5415     FOLLOW_expr_if_in_expression2942 = frozenset([]) 
    5416     FOLLOW_EOF_in_expression2944 = frozenset([1]) 
    5417     FOLLOW_nestedlvalue_in_for_2969 = frozenset([58]) 
    5418     FOLLOW_58_in_for_2973 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5419     FOLLOW_expr_if_in_for_2979 = frozenset([]) 
    5420     FOLLOW_EOF_in_for_2985 = frozenset([1]) 
    5421     FOLLOW_nestedlvalue_in_statement3006 = frozenset([48]) 
    5422     FOLLOW_48_in_statement3008 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5423     FOLLOW_expr_if_in_statement3012 = frozenset([]) 
    5424     FOLLOW_EOF_in_statement3014 = frozenset([1]) 
    5425     FOLLOW_expr_subscript_in_statement3023 = frozenset([36]) 
    5426     FOLLOW_36_in_statement3025 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5427     FOLLOW_expr_if_in_statement3029 = frozenset([]) 
    5428     FOLLOW_EOF_in_statement3031 = frozenset([1]) 
    5429     FOLLOW_expr_subscript_in_statement3040 = frozenset([39]) 
    5430     FOLLOW_39_in_statement3042 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5431     FOLLOW_expr_if_in_statement3046 = frozenset([]) 
    5432     FOLLOW_EOF_in_statement3048 = frozenset([1]) 
    5433     FOLLOW_expr_subscript_in_statement3057 = frozenset([34]) 
    5434     FOLLOW_34_in_statement3059 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5435     FOLLOW_expr_if_in_statement3063 = frozenset([]) 
    5436     FOLLOW_EOF_in_statement3065 = frozenset([1]) 
    5437     FOLLOW_expr_subscript_in_statement3074 = frozenset([44]) 
    5438     FOLLOW_44_in_statement3076 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5439     FOLLOW_expr_if_in_statement3080 = frozenset([]) 
    5440     FOLLOW_EOF_in_statement3082 = frozenset([1]) 
    5441     FOLLOW_expr_subscript_in_statement3091 = frozenset([43]) 
    5442     FOLLOW_43_in_statement3093 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5443     FOLLOW_expr_if_in_statement3097 = frozenset([]) 
    5444     FOLLOW_EOF_in_statement3099 = frozenset([1]) 
    5445     FOLLOW_expr_subscript_in_statement3108 = frozenset([29]) 
    5446     FOLLOW_29_in_statement3110 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5447     FOLLOW_expr_if_in_statement3114 = frozenset([]) 
    5448     FOLLOW_EOF_in_statement3116 = frozenset([1]) 
    5449     FOLLOW_expression_in_statement3125 = frozenset([]) 
    5450     FOLLOW_EOF_in_statement3127 = frozenset([1]) 
     5683    FOLLOW_expr_add_in_expr_bitshift2524 = frozenset([1, 47, 54]) 
     5684    FOLLOW_47_in_expr_bitshift2541 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5685    FOLLOW_54_in_expr_bitshift2554 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5686    FOLLOW_expr_add_in_expr_bitshift2568 = frozenset([1, 47, 54]) 
     5687    FOLLOW_expr_bitshift_in_expr_cmp2596 = frozenset([1, 27, 46, 49, 51, 52, 53]) 
     5688    FOLLOW_51_in_expr_cmp2613 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5689    FOLLOW_27_in_expr_cmp2626 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5690    FOLLOW_46_in_expr_cmp2639 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5691    FOLLOW_49_in_expr_cmp2652 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5692    FOLLOW_52_in_expr_cmp2665 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5693    FOLLOW_53_in_expr_cmp2678 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5694    FOLLOW_expr_bitshift_in_expr_cmp2692 = frozenset([1, 27, 46, 49, 51, 52, 53]) 
     5695    FOLLOW_expr_cmp_in_expr_contain2720 = frozenset([1, 62, 63]) 
     5696    FOLLOW_63_in_expr_contain2742 = frozenset([62]) 
     5697    FOLLOW_62_in_expr_contain2755 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 65]) 
     5698    FOLLOW_expr_cmp_in_expr_contain2762 = frozenset([1]) 
     5699    FOLLOW_expr_contain_in_expr_not2790 = frozenset([1]) 
     5700    FOLLOW_63_in_expr_not2801 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5701    FOLLOW_expr_not_in_expr_not2805 = frozenset([1]) 
     5702    FOLLOW_expr_not_in_expr_and2829 = frozenset([1, 58]) 
     5703    FOLLOW_58_in_expr_and2840 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5704    FOLLOW_expr_not_in_expr_and2847 = frozenset([1, 58]) 
     5705    FOLLOW_expr_and_in_expr_or2875 = frozenset([1, 64]) 
     5706    FOLLOW_64_in_expr_or2886 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5707    FOLLOW_expr_and_in_expr_or2893 = frozenset([1, 64]) 
     5708    FOLLOW_expr_or_in_expr_if2921 = frozenset([1, 61]) 
     5709    FOLLOW_61_in_expr_if2932 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5710    FOLLOW_expr_or_in_expr_if2939 = frozenset([59]) 
     5711    FOLLOW_59_in_expr_if2944 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5712    FOLLOW_expr_or_in_expr_if2951 = frozenset([1]) 
     5713    FOLLOW_generatorexpression_in_exprarg2975 = frozenset([1]) 
     5714    FOLLOW_expr_if_in_exprarg2984 = frozenset([1]) 
     5715    FOLLOW_generatorexpression_in_expression3003 = frozenset([]) 
     5716    FOLLOW_EOF_in_expression3005 = frozenset([1]) 
     5717    FOLLOW_expr_if_in_expression3014 = frozenset([]) 
     5718    FOLLOW_EOF_in_expression3016 = frozenset([1]) 
     5719    FOLLOW_nestedlvalue_in_for_3041 = frozenset([62]) 
     5720    FOLLOW_62_in_for_3045 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5721    FOLLOW_expr_if_in_for_3051 = frozenset([]) 
     5722    FOLLOW_EOF_in_for_3057 = frozenset([1]) 
     5723    FOLLOW_nestedlvalue_in_statement3078 = frozenset([50]) 
     5724    FOLLOW_50_in_statement3080 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5725    FOLLOW_expr_if_in_statement3084 = frozenset([]) 
     5726    FOLLOW_EOF_in_statement3086 = frozenset([1]) 
     5727    FOLLOW_expr_subscript_in_statement3095 = frozenset([36]) 
     5728    FOLLOW_36_in_statement3097 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5729    FOLLOW_expr_if_in_statement3101 = frozenset([]) 
     5730    FOLLOW_EOF_in_statement3103 = frozenset([1]) 
     5731    FOLLOW_expr_subscript_in_statement3112 = frozenset([39]) 
     5732    FOLLOW_39_in_statement3114 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5733    FOLLOW_expr_if_in_statement3118 = frozenset([]) 
     5734    FOLLOW_EOF_in_statement3120 = frozenset([1]) 
     5735    FOLLOW_expr_subscript_in_statement3129 = frozenset([34]) 
     5736    FOLLOW_34_in_statement3131 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5737    FOLLOW_expr_if_in_statement3135 = frozenset([]) 
     5738    FOLLOW_EOF_in_statement3137 = frozenset([1]) 
     5739    FOLLOW_expr_subscript_in_statement3146 = frozenset([44]) 
     5740    FOLLOW_44_in_statement3148 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5741    FOLLOW_expr_if_in_statement3152 = frozenset([]) 
     5742    FOLLOW_EOF_in_statement3154 = frozenset([1]) 
     5743    FOLLOW_expr_subscript_in_statement3163 = frozenset([43]) 
     5744    FOLLOW_43_in_statement3165 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5745    FOLLOW_expr_if_in_statement3169 = frozenset([]) 
     5746    FOLLOW_EOF_in_statement3171 = frozenset([1]) 
     5747    FOLLOW_expr_subscript_in_statement3180 = frozenset([29]) 
     5748    FOLLOW_29_in_statement3182 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5749    FOLLOW_expr_if_in_statement3186 = frozenset([]) 
     5750    FOLLOW_EOF_in_statement3188 = frozenset([1]) 
     5751    FOLLOW_expr_subscript_in_statement3197 = frozenset([48]) 
     5752    FOLLOW_48_in_statement3199 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5753    FOLLOW_expr_if_in_statement3203 = frozenset([]) 
     5754    FOLLOW_EOF_in_statement3205 = frozenset([1]) 
     5755    FOLLOW_expr_subscript_in_statement3214 = frozenset([55]) 
     5756    FOLLOW_55_in_statement3216 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5757    FOLLOW_expr_if_in_statement3220 = frozenset([]) 
     5758    FOLLOW_EOF_in_statement3222 = frozenset([1]) 
     5759    FOLLOW_expression_in_statement3231 = frozenset([]) 
     5760    FOLLOW_EOF_in_statement3233 = frozenset([1]) 
    54515761    FOLLOW_list_in_synpred20_UL41513 = frozenset([1]) 
    54525762    FOLLOW_listcomprehension_in_synpred21_UL41522 = frozenset([1]) 
    54535763    FOLLOW_dict_in_synpred22_UL41531 = frozenset([1]) 
    54545764    FOLLOW_dictcomprehension_in_synpred23_UL41540 = frozenset([1]) 
    5455     FOLLOW_30_in_synpred24_UL41549 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
     5765    FOLLOW_30_in_synpred24_UL41549 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
    54565766    FOLLOW_generatorexpression_in_synpred24_UL41553 = frozenset([31]) 
    54575767    FOLLOW_31_in_synpred24_UL41557 = frozenset([1]) 
    54585768    FOLLOW_expr_subscript_in_synpred25_UL41597 = frozenset([1]) 
    5459     FOLLOW_30_in_synpred26_UL41606 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 52, 61]) 
     5769    FOLLOW_30_in_synpred26_UL41606 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 56, 65]) 
    54605770    FOLLOW_nestedlvalue_in_synpred26_UL41610 = frozenset([37]) 
    54615771    FOLLOW_37_in_synpred26_UL41612 = frozenset([31]) 
    54625772    FOLLOW_31_in_synpred26_UL41614 = frozenset([1]) 
    5463     FOLLOW_57_in_synpred70_UL42860 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5464     FOLLOW_expr_or_in_synpred70_UL42867 = frozenset([55]) 
    5465     FOLLOW_55_in_synpred70_UL42872 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5466     FOLLOW_expr_or_in_synpred70_UL42879 = frozenset([1]) 
    5467     FOLLOW_generatorexpression_in_synpred71_UL42903 = frozenset([1]) 
    5468     FOLLOW_generatorexpression_in_synpred72_UL42931 = frozenset([]) 
    5469     FOLLOW_EOF_in_synpred72_UL42933 = frozenset([1]) 
    5470     FOLLOW_nestedlvalue_in_synpred73_UL43006 = frozenset([48]) 
    5471     FOLLOW_48_in_synpred73_UL43008 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5472     FOLLOW_expr_if_in_synpred73_UL43012 = frozenset([]) 
    5473     FOLLOW_EOF_in_synpred73_UL43014 = frozenset([1]) 
    5474     FOLLOW_expr_subscript_in_synpred74_UL43023 = frozenset([36]) 
    5475     FOLLOW_36_in_synpred74_UL43025 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5476     FOLLOW_expr_if_in_synpred74_UL43029 = frozenset([]) 
    5477     FOLLOW_EOF_in_synpred74_UL43031 = frozenset([1]) 
    5478     FOLLOW_expr_subscript_in_synpred75_UL43040 = frozenset([39]) 
    5479     FOLLOW_39_in_synpred75_UL43042 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5480     FOLLOW_expr_if_in_synpred75_UL43046 = frozenset([]) 
    5481     FOLLOW_EOF_in_synpred75_UL43048 = frozenset([1]) 
    5482     FOLLOW_expr_subscript_in_synpred76_UL43057 = frozenset([34]) 
    5483     FOLLOW_34_in_synpred76_UL43059 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5484     FOLLOW_expr_if_in_synpred76_UL43063 = frozenset([]) 
    5485     FOLLOW_EOF_in_synpred76_UL43065 = frozenset([1]) 
    5486     FOLLOW_expr_subscript_in_synpred77_UL43074 = frozenset([44]) 
    5487     FOLLOW_44_in_synpred77_UL43076 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5488     FOLLOW_expr_if_in_synpred77_UL43080 = frozenset([]) 
    5489     FOLLOW_EOF_in_synpred77_UL43082 = frozenset([1]) 
    5490     FOLLOW_expr_subscript_in_synpred78_UL43091 = frozenset([43]) 
    5491     FOLLOW_43_in_synpred78_UL43093 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5492     FOLLOW_expr_if_in_synpred78_UL43097 = frozenset([]) 
    5493     FOLLOW_EOF_in_synpred78_UL43099 = frozenset([1]) 
    5494     FOLLOW_expr_subscript_in_synpred79_UL43108 = frozenset([29]) 
    5495     FOLLOW_29_in_synpred79_UL43110 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 52, 59, 61]) 
    5496     FOLLOW_expr_if_in_synpred79_UL43114 = frozenset([]) 
    5497     FOLLOW_EOF_in_synpred79_UL43116 = frozenset([1]) 
     5773    FOLLOW_61_in_synpred72_UL42932 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5774    FOLLOW_expr_or_in_synpred72_UL42939 = frozenset([59]) 
     5775    FOLLOW_59_in_synpred72_UL42944 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5776    FOLLOW_expr_or_in_synpred72_UL42951 = frozenset([1]) 
     5777    FOLLOW_generatorexpression_in_synpred73_UL42975 = frozenset([1]) 
     5778    FOLLOW_generatorexpression_in_synpred74_UL43003 = frozenset([]) 
     5779    FOLLOW_EOF_in_synpred74_UL43005 = frozenset([1]) 
     5780    FOLLOW_nestedlvalue_in_synpred75_UL43078 = frozenset([50]) 
     5781    FOLLOW_50_in_synpred75_UL43080 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5782    FOLLOW_expr_if_in_synpred75_UL43084 = frozenset([]) 
     5783    FOLLOW_EOF_in_synpred75_UL43086 = frozenset([1]) 
     5784    FOLLOW_expr_subscript_in_synpred76_UL43095 = frozenset([36]) 
     5785    FOLLOW_36_in_synpred76_UL43097 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5786    FOLLOW_expr_if_in_synpred76_UL43101 = frozenset([]) 
     5787    FOLLOW_EOF_in_synpred76_UL43103 = frozenset([1]) 
     5788    FOLLOW_expr_subscript_in_synpred77_UL43112 = frozenset([39]) 
     5789    FOLLOW_39_in_synpred77_UL43114 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5790    FOLLOW_expr_if_in_synpred77_UL43118 = frozenset([]) 
     5791    FOLLOW_EOF_in_synpred77_UL43120 = frozenset([1]) 
     5792    FOLLOW_expr_subscript_in_synpred78_UL43129 = frozenset([34]) 
     5793    FOLLOW_34_in_synpred78_UL43131 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5794    FOLLOW_expr_if_in_synpred78_UL43135 = frozenset([]) 
     5795    FOLLOW_EOF_in_synpred78_UL43137 = frozenset([1]) 
     5796    FOLLOW_expr_subscript_in_synpred79_UL43146 = frozenset([44]) 
     5797    FOLLOW_44_in_synpred79_UL43148 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5798    FOLLOW_expr_if_in_synpred79_UL43152 = frozenset([]) 
     5799    FOLLOW_EOF_in_synpred79_UL43154 = frozenset([1]) 
     5800    FOLLOW_expr_subscript_in_synpred80_UL43163 = frozenset([43]) 
     5801    FOLLOW_43_in_synpred80_UL43165 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5802    FOLLOW_expr_if_in_synpred80_UL43169 = frozenset([]) 
     5803    FOLLOW_EOF_in_synpred80_UL43171 = frozenset([1]) 
     5804    FOLLOW_expr_subscript_in_synpred81_UL43180 = frozenset([29]) 
     5805    FOLLOW_29_in_synpred81_UL43182 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5806    FOLLOW_expr_if_in_synpred81_UL43186 = frozenset([]) 
     5807    FOLLOW_EOF_in_synpred81_UL43188 = frozenset([1]) 
     5808    FOLLOW_expr_subscript_in_synpred82_UL43197 = frozenset([48]) 
     5809    FOLLOW_48_in_synpred82_UL43199 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5810    FOLLOW_expr_if_in_synpred82_UL43203 = frozenset([]) 
     5811    FOLLOW_EOF_in_synpred82_UL43205 = frozenset([1]) 
     5812    FOLLOW_expr_subscript_in_synpred83_UL43214 = frozenset([55]) 
     5813    FOLLOW_55_in_synpred83_UL43216 = frozenset([5, 6, 10, 11, 13, 14, 15, 17, 18, 22, 30, 38, 56, 63, 65]) 
     5814    FOLLOW_expr_if_in_synpred83_UL43220 = frozenset([]) 
     5815    FOLLOW_EOF_in_synpred83_UL43222 = frozenset([1]) 
    54985816 
    54995817 
  • src/ll/UL4Parser.py

    r5714 r5715  
    1 # $ANTLR 3.5 src/ll/UL4.g 2013-12-28 13:05:43 
     1# $ANTLR 3.5 src/ll/UL4.g 2013-12-29 11:35:06 
    22 
    33import sys 
     
    34033403                    if self._state.backtracking == 0: 
    34043404                        pass 
    3405                         node =  ul4c.IfExpr.make(self.location, e1.start, e3.end, node, e2, e3)  
     3405                        node =  ul4c.If.make(self.location, e1.start, e3.end, node, e2, e3)  
    34063406 
    34073407 
     
    41014101                if self._state.backtracking == 0: 
    41024102                    pass 
    4103                     node = ul4c.For(self.location, self.start(n.start), e.end, ((n is not None) and [n.lvalue] or [None])[0], e)  
     4103                    node = ul4c.ForBlock(self.location, self.start(n.start), e.end, ((n is not None) and [n.lvalue] or [None])[0], e)  
    41044104 
    41054105 
  • src/ll/ul4c.py

    r5713 r5715  
    868868        yield from () 
    869869        vars[self.name] %= value 
     870 
     871    @handleeval 
     872    def evalshiftleftvar(self, vars, value): 
     873        yield from () 
     874        if value >= 0: 
     875            vars[self.name] <<= value 
     876        else: 
     877            vars[self.name] >>= -value 
     878 
     879    @handleeval 
     880    def evalshiftrightvar(self, vars, value): 
     881        yield from () 
     882        if value >= 0: 
     883            vars[self.name] >>= value 
     884        else: 
     885            vars[self.name] <<= -value 
    870886 
    871887    def ul4ondump(self, encoder): 
     
    15651581            obj[self.attrname] %= value 
    15661582 
     1583    @handleeval 
     1584    def evalshiftleftvar(self, vars, value): 
     1585        obj = (yield from self.obj.eval(vars)) 
     1586        if hasattr(obj, "ul4attrs"): 
     1587            if "+" + self.attrname in obj.ul4attrs: 
     1588                attr = getattr(obj, self.attrname) 
     1589                if value >= 0: 
     1590                    attr <<= value 
     1591                else: 
     1592                    attr >>= -value 
     1593                setattr(obj, self.attrname, attr) 
     1594            else: 
     1595                raise AttributeError("attribute {!r} is readonly".format(self.attrname)) 
     1596        else: 
     1597            if value >= 0: 
     1598                obj[self.attrname] <<= value 
     1599            else: 
     1600                obj[self.attrname] >>= -value 
     1601 
     1602    @handleeval 
     1603    def evalshiftrightvar(self, vars, value): 
     1604        obj = (yield from self.obj.eval(vars)) 
     1605        if hasattr(obj, "ul4attrs"): 
     1606            if "+" + self.attrname in obj.ul4attrs: 
     1607                attr = getattr(obj, self.attrname) 
     1608                if value >= 0: 
     1609                    attr >>= value 
     1610                else: 
     1611                    attr <<= -value 
     1612                setattr(obj, self.attrname, attr) 
     1613            else: 
     1614                raise AttributeError("attribute {!r} is readonly".format(self.attrname)) 
     1615        else: 
     1616            if value >= 0: 
     1617                obj[self.attrname] >>= value 
     1618            else: 
     1619                obj[self.attrname] <<= -value 
     1620 
    15671621    def ul4ondump(self, encoder): 
    15681622        super().ul4ondump(encoder) 
     
    16611715    def evalmodvar(self, vars, value): 
    16621716        raise TypeError("can't use %= with slice") 
     1717 
     1718    @handleeval 
     1719    def evalshiftleftvar(self, vars, value): 
     1720        raise TypeError("can't use <<= with slice") 
     1721 
     1722    @handleeval 
     1723    def evalshiftrightvar(self, vars, value): 
     1724        raise TypeError("can't use >>= with slice") 
    16631725 
    16641726    def ul4ondump(self, encoder): 
     
    19592021            obj1[obj2] %= value 
    19602022 
     2023    @handleeval 
     2024    def evalshiftleftvar(self, vars, value): 
     2025        obj1 = (yield from self.obj1.eval(vars)) 
     2026        obj2 = (yield from self.obj2.eval(vars)) 
     2027        if isinstance(obj2, str) and hasattr(obj1, "ul4attrs"): 
     2028            if "+" + obj2 in obj1.ul4attrs: 
     2029                attr = getattr(obj1, obj2) 
     2030                if value >= 0: 
     2031                    attr <<= value 
     2032                else: 
     2033                    attr >>= -value 
     2034                setattr(obj1, obj2, attr) 
     2035            else: 
     2036                raise AttributeError("attribute {!r} is readonly".format(obj2)) 
     2037        else: 
     2038            if value >= 0: 
     2039                obj1[obj2] <<= value 
     2040            else: 
     2041                obj1[obj2] >>= -value 
     2042 
     2043    @handleeval 
     2044    def evalshiftrightvar(self, vars, value): 
     2045        obj1 = (yield from self.obj1.eval(vars)) 
     2046        obj2 = (yield from self.obj2.eval(vars)) 
     2047        if isinstance(obj2, str) and hasattr(obj1, "ul4attrs"): 
     2048            if "+" + obj2 in obj1.ul4attrs: 
     2049                attr = getattr(obj1, obj2) 
     2050                if value >= 0: 
     2051                    attr >>= value 
     2052                else: 
     2053                    attr <<= -value 
     2054                setattr(obj1, obj2, attr) 
     2055            else: 
     2056                raise AttributeError("attribute {!r} is readonly".format(obj2)) 
     2057        else: 
     2058            if value >= 0: 
     2059                obj1[obj2] >>= value 
     2060            else: 
     2061                obj1[obj2] <<= -value 
     2062 
    19612063 
    19622064@register("eq") 
     
    21152217    def evalfold(cls, obj1, obj2): 
    21162218        return obj1 / obj2 
     2219 
     2220 
     2221@register("mod") 
     2222class Mod(Binary): 
     2223    """ 
     2224    AST node for the binary modulo operator. 
     2225    """ 
     2226 
     2227    @classmethod 
     2228    def evalfold(cls, obj1, obj2): 
     2229        return obj1 % obj2 
     2230 
     2231 
     2232@register("shiftleft") 
     2233class ShiftLeft(Binary): 
     2234    """ 
     2235    AST node for the bitwise left shift operator. 
     2236    """ 
     2237 
     2238    @classmethod 
     2239    def evalfold(cls, obj1, obj2): 
     2240        return obj1 << obj2 if obj2 >= 0 else obj1 >> -obj2 
     2241 
     2242 
     2243@register("shiftright") 
     2244class ShiftRight(Binary): 
     2245    """ 
     2246    AST node for the bitwise right shift operator. 
     2247    """ 
     2248 
     2249    @classmethod 
     2250    def evalfold(cls, obj1, obj2): 
     2251        return obj1 >> obj2 if obj2 >= 0 else obj1 << -obj2 
    21172252 
    21182253 
     
    22112346 
    22122347 
    2213 @register("mod") 
    2214 class Mod(Binary): 
    2215     """ 
    2216     AST node for the binary modulo operator. 
    2217     """ 
    2218  
    2219     @classmethod 
    2220     def evalfold(cls, obj1, obj2): 
    2221         return obj1 % obj2 
    2222  
    2223  
    22242348class ChangeVar(AST): 
    22252349    """ 
     
    23562480        for (lvalue, value) in _unpackvar(self.lvalue, value): 
    23572481            yield from lvalue.evalmodvar(vars, value) 
     2482 
     2483 
     2484@register("shiftleftvar") 
     2485class ShiftLeftVar(ChangeVar): 
     2486    """ 
     2487    AST node for the ``<<=`` operator. 
     2488    """ 
     2489 
     2490    @handleeval 
     2491    def eval(self, vars): 
     2492        value = (yield from self.value.eval(vars)) 
     2493        for (lvalue, value) in _unpackvar(self.lvalue, value): 
     2494            yield from lvalue.evalshiftleftvar(vars, value) 
     2495 
     2496 
     2497@register("shiftrightvar") 
     2498class ShiftRightVar(ChangeVar): 
     2499    """ 
     2500    AST node for the ``>>=`` operator. 
     2501    """ 
     2502 
     2503    @handleeval 
     2504    def eval(self, vars): 
     2505        value = (yield from self.value.eval(vars)) 
     2506        for (lvalue, value) in _unpackvar(self.lvalue, value): 
     2507            yield from lvalue.evalshiftrightvar(vars, value) 
    23582508 
    23592509 
     
    24662616    def evalmodvar(self, vars, value): 
    24672617        raise TypeError("can't use %= on call result") 
     2618 
     2619    @handleeval 
     2620    def evalshiftleftvar(self, vars, value): 
     2621        raise TypeError("can't use <<= on call result") 
     2622 
     2623    @handleeval 
     2624    def evalshiftrightvar(self, vars, value): 
     2625        raise TypeError("can't use >>= on call result") 
    24682626 
    24692627    def ul4ondump(self, encoder): 
  • src/ll/ul4c.py

    r5714 r5715  
    938938 
    939939 
    940 @register("ieie") 
    941 class IfElIfElse(Block): 
     940@register("condblock") 
     941class CondBlock(Block): 
    942942    """ 
    943943    AST node for an conditional block. 
    944944 
    945     The content of the :class:`IfElIfElse` block is one :class:`If` block 
    946     followed by zero or more :class:`ElIf` blocks followed by zero or one 
    947     :class:`Else` block. 
     945    The content of the :class:`CondBlock` block is one :class:`IfBlock` block 
     946    followed by zero or more :class:`ElIfBlock` blocks followed by zero or one 
     947    :class:`ElseBlock` block. 
    948948    """ 
    949949    def __init__(self, location=None, start=None, end=None, condition=None): 
    950950        super().__init__(location, start, end) 
    951951        if condition is not None: 
    952             self.newblock(If(location, start, end, condition)) 
     952            self.newblock(IfBlock(location, start, end, condition)) 
    953953 
    954954    def __repr__(self): 
     
    981981    def eval(self, vars): 
    982982        for node in self.content: 
    983             if isinstance(node, Else) or (yield from node.condition.eval(vars)): 
     983            if isinstance(node, ElseBlock) or (yield from node.condition.eval(vars)): 
    984984                yield from node.eval(vars) 
    985985                break 
    986986 
    987987 
    988 @register("if") 
    989 class If(Block): 
     988@register("ifblock") 
     989class IfBlock(Block): 
    990990    """ 
    991991    AST node for an ``<?if?>`` block. 
     
    10331033 
    10341034 
    1035 @register("elif") 
    1036 class ElIf(Block): 
     1035@register("elifblock") 
     1036class ElIfBlock(Block): 
    10371037    """ 
    10381038    AST node for an ``<?elif?>`` block. 
     
    10801080 
    10811081 
    1082 @register("else") 
    1083 class Else(Block): 
     1082@register("elseblock") 
     1083class ElseBlock(Block): 
    10841084    """ 
    10851085    AST node for an ``<?else?>`` block. 
     
    11081108 
    11091109 
    1110 @register("for") 
    1111 class For(Block): 
     1110@register("forblock") 
     1111class ForBlock(Block): 
    11121112    """ 
    11131113    AST node for a ``<?for?>`` loop variable. 
     
    22902290 
    22912291 
    2292 @register("ifexpr") 
    2293 class IfExpr(AST): 
     2292@register("if") 
     2293class If(AST): 
    22942294    """ 
    22952295    AST node for the ternary inline ``if/else`` operator. 
     
    29102910                    stack[-1].append(parsestmt(location)) 
    29112911                elif location.type == "if": 
    2912                     block = IfElIfElse(location, location.startcode, location.endcode, parseexpr(location)) 
     2912                    block = CondBlock(location, location.startcode, location.endcode, parseexpr(location)) 
    29132913                    stack[-1].append(block) 
    29142914                    stack.append(block) 
    29152915                elif location.type == "elif": 
    2916                     if not isinstance(stack[-1], IfElIfElse): 
     2916                    if not isinstance(stack[-1], CondBlock): 
    29172917                        raise BlockError("elif doesn't match and if") 
    2918                     elif isinstance(stack[-1].content[-1], Else): 
     2918                    elif isinstance(stack[-1].content[-1], ElseBlock): 
    29192919                        raise BlockError("else already seen in if") 
    2920                     stack[-1].newblock(ElIf(location, location.startcode, location.endcode, parseexpr(location))) 
     2920                    stack[-1].newblock(ElIfBlock(location, location.startcode, location.endcode, parseexpr(location))) 
    29212921                elif location.type == "else": 
    2922                     if not isinstance(stack[-1], IfElIfElse): 
     2922                    if not isinstance(stack[-1], CondBlock): 
    29232923                        raise BlockError("else doesn't match any if") 
    2924                     elif isinstance(stack[-1].content[-1], Else): 
     2924                    elif isinstance(stack[-1].content[-1], ElseBlock): 
    29252925                        raise BlockError("else already seen in if") 
    2926                     stack[-1].newblock(Else(location, location.startcode, location.endcode)) 
     2926                    stack[-1].newblock(ElseBlock(location, location.startcode, location.endcode)) 
    29272927                elif location.type == "end": 
    29282928                    if len(stack) <= 1: 
     
    29312931                    if code: 
    29322932                        if code == "if": 
    2933                             if not isinstance(stack[-1], IfElIfElse): 
     2933                            if not isinstance(stack[-1], CondBlock): 
    29342934                                raise BlockError("endif doesn't match any if") 
    29352935                        elif code == "for": 
    2936                             if not isinstance(stack[-1], For): 
     2936                            if not isinstance(stack[-1], ForBlock): 
    29372937                                raise BlockError("endfor doesn't match any for") 
    29382938                        elif code == "def": 
     
    29442944                    # Set ``endlocation`` of block 
    29452945                    last.endlocation = location 
    2946                     if isinstance(last, IfElIfElse): 
     2946                    if isinstance(last, CondBlock): 
    29472947                        last.content[-1].endlocation = location 
    29482948                elif location.type == "for": 
     
    29522952                elif location.type == "break": 
    29532953                    for block in reversed(stack): 
    2954                         if isinstance(block, For): 
     2954                        if isinstance(block, ForBlock): 
    29552955                            break 
    29562956                        elif isinstance(block, Template): 
     
    29592959                elif location.type == "continue": 
    29602960                    for block in reversed(stack):