Changeset 2320 for cobra/trunk/Source/Expr.cobra
- Timestamp:
- 03/15/10 11:05:59 (2 years ago)
- Files:
-
- 1 modified
-
cobra/trunk/Source/Expr.cobra (modified) (34 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cobra/trunk/Source/Expr.cobra
r2319 r2320 43 43 44 44 class Expr inherits Stmt implements IExpr is abstract, partial 45 """46 TODO: Add a .subexpressions iterator which can then be used by .hasError, .willChangeVar and possibly others.47 """48 45 49 46 var _type as IType? … … 89 86 get definition 90 87 return nil 88 89 get hasError as bool is override 90 for expr in .allExprs, if expr._innerHasError, return true 91 return false 92 93 get _innerHasError as bool 94 return .errors and .errors.count > 0 91 95 92 96 get willChangeVar as bool … … 352 356 _stmts.add(stmt) 353 357 354 get hasError as bool355 return base. hasError or _method.hasError358 get _innerHasError as bool 359 return base._innerHasError or _method.hasError 356 360 357 361 def _bindImp is override … … 373 377 _expr = expr 374 378 379 get allExprs as Expr* 380 for expr in base.allExprs, yield expr 381 for expr in .expr.allExprs, yield expr 382 375 383 get expr from var as Expr 376 384 … … 382 390 base.addSubFields 383 391 .addField('expr', .expr) 384 385 get hasError as bool386 return base.hasError or _expr.hasError387 388 get allExprs as Expr*389 for expr in base.allExprs, yield expr390 for expr in .expr.allExprs, yield expr391 392 392 393 def toCobraSource as String is override … … 528 529 .addField('args', _args) 529 530 531 get allExprs as Expr* 532 for expr in base.allExprs, yield expr 533 for arg in .args, for expr in arg.allExprs, yield expr 534 530 535 get genericArgProxies from var 531 536 532 537 get genericArgTypes from var 533 534 get hasError as bool535 if base.hasError, return true536 for arg in _args, if arg.hasError, return true537 return false538 538 539 539 get hasParens from var … … 554 554 555 555 get memberDefinition from _definition 556 557 get allExprs as Expr*558 for expr in base.allExprs, yield expr559 for arg in .args, for expr in arg.allExprs, yield expr560 556 561 557 def _bindImp is override … … 809 805 _members = List<of EnumMember>() 810 806 811 get name from var812 813 get args from var814 has Subnodes815 816 get definition is override817 return _definition818 819 get enumDefinition from _definition820 821 get members from _members822 823 get hasError as bool is override824 if base.hasError, return true825 for arg in _args, if arg.hasError, return true826 return false827 828 807 get allExprs as Expr* 829 808 for expr in base.allExprs, yield expr 830 809 for arg in .args, for expr in arg.allExprs, yield expr 831 810 811 get name from var 812 813 get args from var 814 has Subnodes 815 816 get definition is override 817 return _definition 818 819 get enumDefinition from _definition 820 821 get members from _members 822 832 823 def toCobraSource as String is override 833 824 sb = StringBuilder() … … 898 889 .addField('step', _step) 899 890 900 get nameExpr from _nameExpr901 902 get what from _what903 904 get whereExpr from _whereExpr905 906 get getExpr from _getExpr907 908 get start from _start909 910 get stop from _stop911 912 get step from _step913 914 891 get allExprs as Expr* 915 892 for expr in base.allExprs, yield expr … … 921 898 if .stop, for expr in .stop.allExprs, yield expr 922 899 if .step, for expr in .step.allExprs, yield expr 900 901 get nameExpr from _nameExpr 902 903 get what from _what 904 905 get whereExpr from _whereExpr 906 907 get getExpr from _getExpr 908 909 get start from _start 910 911 get stop from _stop 912 913 get step from _step 923 914 924 915 get willChangeVar as bool is override … … 1115 1106 _cond, _tpart, _fpart = cond, tpart, fpart 1116 1107 1108 get allExprs as Expr* 1109 for expr in base.allExprs, yield expr 1110 for expr in .cond.allExprs, yield expr 1111 for expr in .tpart.allExprs, yield expr 1112 for expr in .fpart.allExprs, yield expr 1113 1117 1114 get cond from var 1118 1115 … … 1126 1123 .addField('tpart', .tpart) 1127 1124 .addField('fpart', .fpart) 1128 1129 get hasError as bool is override1130 if base.hasError, return true1131 if .cond.hasError, return true1132 if .tpart.hasError, return true1133 if .fpart.hasError, return true1134 return false1135 1136 get allExprs as Expr*1137 for expr in base.allExprs, yield expr1138 for expr in .cond.allExprs, yield expr1139 for expr in .tpart.allExprs, yield expr1140 for expr in .fpart.allExprs, yield expr1141 1125 1142 1126 get willChangeVar as bool is override … … 1203 1187 .addField('args', _args) 1204 1188 1205 get definition is override1206 return _definition1207 1208 get memberDefinition from _definition1209 1210 get target from var1211 1212 get args from var1213 has Subnodes1214 1215 get hasError as bool is override1216 if base.hasError, return true1217 if _target.hasError, return true1218 for arg in _args, if arg.hasError, return true1219 return false1220 1221 1189 get allExprs as Expr* 1222 1190 for expr in base.allExprs, yield expr 1223 1191 for expr in .target.allExprs, yield expr 1224 1192 for arg in .args, for expr in arg.allExprs, yield expr 1193 1194 get definition is override 1195 return _definition 1196 1197 get memberDefinition from _definition 1198 1199 get target from var 1200 1201 get args from var 1202 has Subnodes 1225 1203 1226 1204 get willChangeVar as bool is override … … 1322 1300 _expr = expr 1323 1301 1324 get hasError as bool is override1325 if base.hasError, return true1326 if _expr.hasError, return true1327 return false1328 1329 1302 get allExprs as Expr* 1330 1303 for expr in base.allExprs, yield expr … … 1351 1324 _expr = expr 1352 1325 1326 get allExprs as Expr* 1327 for expr in base.allExprs, yield expr 1328 for expr in .expr.allExprs, yield expr 1329 1353 1330 get expr from var 1354 1355 get hasError as bool is override1356 if base.hasError, return true1357 if _expr.hasError, return true1358 return false1359 1331 1360 1332 get willChangeVar as bool is override … … 1529 1501 _expr = expr 1530 1502 1531 get expr from var as Expr1532 1533 get name as String1534 return 'old'1535 1536 get hasError as bool is override1537 if base.hasError, return true1538 if _expr.hasError, return true1539 return false1540 1541 1503 get allExprs as Expr* 1542 1504 for expr in base.allExprs, yield expr 1543 1505 for expr in .expr.allExprs, yield expr 1506 1507 get expr from var as Expr 1508 1509 get name as String 1510 return 'old' 1544 1511 1545 1512 get willChangeVar as bool is override … … 1609 1576 .addField('isForAttribute', .isForAttribute) 1610 1577 1578 get allExprs as Expr* 1579 for expr in base.allExprs, yield expr 1580 for expr in .expr.allExprs, yield expr 1581 for arg in .args, for expr in arg.allExprs, yield expr 1582 1611 1583 get expr from var 1612 1584 … … 1617 1589 1618 1590 pro isForAttribute from var 1619 1620 get hasError as bool is override1621 if base.hasError, return true1622 if _expr.hasError, return true1623 for arg in _args, if arg.hasError, return true1624 return false1625 1591 1626 1592 get name as String … … 1631 1597 if e inherits IndexExpr, return e.toCobraSource 1632 1598 throw FallThroughException(e) 1633 1634 get allExprs as Expr*1635 for expr in base.allExprs, yield expr1636 for expr in .expr.allExprs, yield expr1637 for arg in .args, for expr in arg.allExprs, yield expr1638 1599 1639 1600 get willChangeVar as bool is override … … 1856 1817 .addField('expr', _expr) 1857 1818 1858 get expr from var as Expr1859 1860 get hasError as bool is override1861 if base.hasError, return true1862 if _expr.hasError, return true1863 return false1864 1865 1819 get allExprs as Expr* 1866 1820 for expr in base.allExprs, yield expr 1867 1821 for expr in .expr.allExprs, yield expr 1822 1823 get expr from var as Expr 1868 1824 1869 1825 get willChangeVar as bool is override … … 1931 1887 assert false, r'$sharp expression must be a String Literal (No substitutions) expr=[expr]' 1932 1888 1933 get sharpSource from var1934 1935 get expr from var1936 1937 get hasError as bool is override1938 if base.hasError, return true1939 if _expr and _expr.hasError, return true1940 return false1941 1942 1889 get allExprs as Expr* 1943 1890 for expr in base.allExprs, yield expr 1944 1891 if .expr, for expr in .expr.allExprs, yield expr 1892 1893 get sharpSource from var 1894 1895 get expr from var 1945 1896 1946 1897 def toCobraSource as String is override … … 1984 1935 .addField('step', _step) 1985 1936 1986 get hasError as bool is override 1987 if base.hasError, return true 1988 if _target.hasError, return true 1989 if _start and _start.hasError, return true 1990 if _stop and _stop.hasError, return true 1991 if _step and _step.hasError, return true 1992 return false 1937 get allExprs as Expr* 1938 for expr in base.allExprs, yield expr 1939 for expr in .target.allExprs, yield expr 1940 if .start, for expr in .start.allExprs, yield expr 1941 if .stop, for expr in .stop.allExprs, yield expr 1942 if .step, for expr in .step.allExprs, yield expr 1993 1943 1994 1944 get willChangeVar as bool is override … … 2113 2063 .addField('Treatment', _treatment) 2114 2064 2065 get allExprs as Expr* 2066 for expr in base.allExprs, yield expr 2067 for expr in .expr.allExprs, yield expr 2068 2115 2069 get expr from var 2116 2117 get hasError as bool is override2118 if base.hasError, return true2119 if _expr.hasError, return true2120 return false2121 2070 2122 2071 get willChangeVar as bool is override … … 2128 2077 2129 2078 get notExpr from var 2130 2131 get allExprs as Expr*2132 for expr in base.allExprs, yield expr2133 for expr in .expr.allExprs, yield expr2134 2079 2135 2080 def _bindImp … … 2219 2164 return _containedType 2220 2165 2221 get hasError as bool is override2222 return base. hasError or (.typeNode and .typeNode.hasError)2166 get _innerHasError as bool 2167 return base._innerHasError or (.typeNode and .typeNode.hasError) 2223 2168 2224 2169 get containedType from var … … 2268 2213 _expr = expr 2269 2214 2270 get opName as String is abstract2271 2272 get expr from var2273 2274 get hasError as bool2275 if base.hasError, return true2276 if .expr.hasError, return true2277 return false2278 2279 2215 get allExprs as Expr* 2280 2216 for expr in base.allExprs, yield expr 2281 2217 for expr in .expr.allExprs, yield expr 2218 2219 get opName as String is abstract 2220 2221 get expr from var 2282 2222 2283 2223 get willChangeVar as bool is override … … 2355 2295 .addField('expr', _expr) 2356 2296 2357 get hasError as bool is override 2358 if base.hasError, return true 2359 if _expr.hasError, return true 2360 return false 2297 get allExprs as Expr* 2298 for expr in base.allExprs, yield expr 2299 for expr in .expr.allExprs, yield expr 2361 2300 2362 2301 get willChangeVar as bool is override … … 2367 2306 2368 2307 get expr from var 2369 2370 get allExprs as Expr*2371 for expr in base.allExprs, yield expr2372 for expr in .expr.allExprs, yield expr2373 2308 2374 2309 def _bindImp is override … … 2666 2601 .addField('items', _items) 2667 2602 2668 get items from var2669 has Subnodes2670 2671 get hasError as bool is override2672 if base.hasError2673 return true2674 for item in _items2675 if item.hasError2676 return true2677 return false2678 2679 2603 get allExprs as Expr* 2680 2604 for expr in base.allExprs, yield expr 2681 2605 for item in .items, for expr in item.allExprs, yield expr 2606 2607 get items from var 2608 has Subnodes 2682 2609 2683 2610 def toCobraSource as String is override … … 2716 2643 _format = format 2717 2644 2718 get expr from var2719 2720 get format from var2721 2722 get hasError as bool is override2723 if base.hasError, return true2724 if _expr.hasError, return true2725 return false2726 2727 2645 get allExprs as Expr* 2728 2646 for expr in base.allExprs, yield expr 2729 2647 for expr in .expr.allExprs, yield expr 2648 2649 get expr from var 2650 2651 get format from var 2730 2652 2731 2653 def toCobraSource as String is override … … 2843 2765 .addField('exprs', _exprs) 2844 2766 2845 get exprs from var2846 has Subnodes2847 2848 get hasError as bool is override2849 if base.hasError, return true2850 for expr in _exprs, if expr.hasError, return true2851 return false2852 2853 2767 get allExprs as Expr* 2854 2768 for expr in base.allExprs, yield expr 2855 2769 for expr in .exprs, for expr2 in expr.allExprs, yield expr2 2770 2771 get exprs from var 2772 has Subnodes 2856 2773 2857 2774 get willChangeVar as bool is override … … 2982 2899 base.addSubFields 2983 2900 .addField('entries', _entries) 2984 2985 get hasError as bool is override2986 if base.hasError2987 return true2988 for entry in _entries2989 for expr in entry2990 if expr.hasError2991 return true2992 return false2993 2901 2994 2902 get allExprs as Expr* … … 3073 2981 _expr = expr 3074 2982 3075 get rightTok from var3076 3077 get expr from var3078 3079 def _bindImp3080 base._bindImp3081 _expr.bindImp3082 3083 get hasError as bool is override3084 if base.hasError, return true3085 if _expr.hasError, return true3086 return false3087 3088 2983 get allExprs as Expr* 3089 2984 for expr in base.allExprs, yield expr 3090 2985 for expr in .expr.allExprs, yield expr 2986 2987 get rightTok from var 2988 2989 get expr from var 2990 2991 def _bindImp 2992 base._bindImp 2993 _expr.bindImp 3091 2994 3092 2995 get willChangeVar as bool is override … … 3175 3078 _items, _operations = items, operations 3176 3079 3177 get items from var3178 3179 3080 get allExprs as Expr* 3180 3081 for expr in base.allExprs, yield expr 3181 3082 for item in .items, for expr in item.allExprs, yield expr 3083 3084 get items from var 3182 3085 3183 3086 def _bindImp is override



