Changeset 185:26d13391e61d in livinglogic.java.ul4

Show
Ignore:
Timestamp:
01/09/09 15:43:41 (10 years ago)
Author:
Walter Doerwald <walter@…>
Parents:
175:9e6fe67d2ad0 (diff), 184:0cd2857001e1 (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
Message:

Automated merge with ssh://hg@hg.intern/LivingLogic.Java.ul4

Location:
library/src/com/livinglogic/ul4
Files:
8 removed
1 modified

Legend:

Unmodified
Added
Removed
  • library/src/com/livinglogic/ul4/Template.java

    r173 r185  
    3030    private static Pattern intPattern; 
    3131    private static Pattern datePattern; 
     32    private static Pattern color3Pattern; 
     33    private static Pattern color4Pattern; 
     34    private static Pattern color6Pattern; 
     35    private static Pattern color8Pattern; 
    3236    private static Pattern whitespacePattern; 
    3337    private static Pattern escaped8BitCharPattern; 
     
    4751        intPattern = Pattern.compile("\\d+"); 
    4852        datePattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}T(\\d{2}:\\d{2}(:\\d{2}(.\\d{6})?)?)?"); 
     53        color3Pattern = Pattern.compile("[#][0-9a-zA-Z]{3}"); 
     54        color4Pattern = Pattern.compile("[#][0-9a-zA-Z]{4}"); 
     55        color6Pattern = Pattern.compile("[#][0-9a-zA-Z]{6}"); 
     56        color8Pattern = Pattern.compile("[#][0-9a-zA-Z]{8}"); 
    4957        whitespacePattern = Pattern.compile("\\s+"); 
    5058        escaped8BitCharPattern = Pattern.compile("\\\\x[0-9a-fA-F]{2}"); 
     
    912920                            reg[code.r1] = Utils.isoDateFormatter.parse(code.arg); 
    913921                            break; 
     922                        case Opcode.OC_LOADCOLOR: 
     923                            reg[code.r1] = Color.fromdump(code.arg); 
     924                            break; 
    914925                        case Opcode.OC_BUILDLIST: 
    915926                            reg[code.r1] = new ArrayList(); 
     
    10901101                                    reg[code.r1] = Utils.xmlescape(reg[code.r2]); 
    10911102                                    break; 
    1092                                 case Opcode.CF1_CSVESCAPE: 
    1093                                     reg[code.r1] = Utils.csvescape(reg[code.r2]); 
     1103                                case Opcode.CF1_CSV: 
     1104                                    reg[code.r1] = Utils.csv(reg[code.r2]); 
    10941105                                    break; 
    10951106                                case Opcode.CF1_STR: 
     
    11641175                                case Opcode.CF1_GET: 
    11651176                                    reg[code.r1] = variables.get(reg[code.r2]); 
     1177                                    break; 
     1178                                case Opcode.CF1_JSON: 
     1179                                    reg[code.r1] = Utils.json(reg[code.r2]); 
    11661180                                    break; 
    11671181                            } 
     
    11901204                                    reg[code.r1] = Utils.zip(reg[code.r2], reg[code.r3], reg[code.r4]); 
    11911205                                    break; 
     1206                                case Opcode.CF3_RGB: 
     1207                                    reg[code.r1] = Utils.rgb(reg[code.r2], reg[code.r3], reg[code.r4]); 
     1208                                    break; 
     1209                                case Opcode.CF3_HLS: 
     1210                                    reg[code.r1] = Utils.hls(reg[code.r2], reg[code.r3], reg[code.r4]); 
     1211                                    break; 
     1212                                case Opcode.CF3_HSV: 
     1213                                    reg[code.r1] = Utils.hsv(reg[code.r2], reg[code.r3], reg[code.r4]); 
     1214                                    break; 
     1215                            } 
     1216                            break; 
     1217                        case Opcode.OC_CALLFUNC4: 
     1218                            switch (code.argcode) 
     1219                            { 
     1220                                case Opcode.CF4_RGB: 
     1221                                    reg[code.r1] = Utils.rgb(reg[code.r2], reg[code.r3], reg[code.r4], reg[code.r5]); 
     1222                                    break; 
     1223                                case Opcode.CF4_HLS: 
     1224                                    reg[code.r1] = Utils.hls(reg[code.r2], reg[code.r3], reg[code.r4], reg[code.r5]); 
     1225                                    break; 
     1226                                case Opcode.CF4_HSV: 
     1227                                    reg[code.r1] = Utils.hsv(reg[code.r2], reg[code.r3], reg[code.r4], reg[code.r5]); 
     1228                                    break; 
    11921229                            } 
    11931230                            break; 
     
    12221259                                    reg[code.r1] = Utils.isoformat(reg[code.r2]); 
    12231260                                    break; 
     1261                                case Opcode.CM0_HLS: 
     1262                                    reg[code.r1] = ((Color)reg[code.r2]).hls(); 
     1263                                    break; 
     1264                                case Opcode.CM0_HLSA: 
     1265                                    reg[code.r1] = ((Color)reg[code.r2]).hlsa(); 
     1266                                    break; 
     1267                                case Opcode.CM0_HSV: 
     1268                                    reg[code.r1] = ((Color)reg[code.r2]).hsv(); 
     1269                                    break; 
     1270                                case Opcode.CM0_HSVA: 
     1271                                    reg[code.r1] = ((Color)reg[code.r2]).hsva(); 
     1272                                    break; 
     1273                                case Opcode.CM0_LUM: 
     1274                                    reg[code.r1] = new Double(((Color)reg[code.r2]).lum()); 
     1275                                    break; 
    12241276                            } 
    12251277                            break; 
     
    12591311                                case Opcode.CM1_GET: 
    12601312                                    reg[code.r1] = ((Map)reg[code.r2]).get(reg[code.r3]); 
     1313                                    break; 
     1314                                case Opcode.CM1_WITHLUM: 
     1315                                    reg[code.r1] = Utils.withlum(reg[code.r2], reg[code.r3]); 
     1316                                    break; 
     1317                                case Opcode.CM1_WITHA: 
     1318                                    reg[code.r1] = Utils.witha(reg[code.r2], reg[code.r3]); 
    12611319                                    break; 
    12621320                            } 
     
    13701428                Matcher intMatcher = intPattern.matcher(source); 
    13711429                Matcher dateMatcher = datePattern.matcher(source); 
     1430                Matcher color3Matcher = color3Pattern.matcher(source); 
     1431                Matcher color4Matcher = color4Pattern.matcher(source); 
     1432                Matcher color6Matcher = color6Pattern.matcher(source); 
     1433                Matcher color8Matcher = color8Pattern.matcher(source); 
    13721434                Matcher whitespaceMatcher = whitespacePattern.matcher(source); 
    13731435                Matcher escaped8BitCharMatcher = escaped8BitCharPattern.matcher(source); 
     
    13881450                        tokens.add(new Token(pos, pos+len, name)); 
    13891451                    else if (name.equals("None")) 
    1390                         tokens.add(new None(pos, pos+len)); 
     1452                        tokens.add(new LoadNone(pos, pos+len)); 
    13911453                    else if (name.equals("True")) 
    1392                         tokens.add(new True(pos, pos+len)); 
     1454                        tokens.add(new LoadTrue(pos, pos+len)); 
    13931455                    else if (name.equals("False")) 
    1394                         tokens.add(new False(pos, pos+len)); 
     1456                        tokens.add(new LoadFalse(pos, pos+len)); 
    13951457                    else 
    13961458                        tokens.add(new Name(pos, pos+len, name)); 
     
    13991461                { 
    14001462                    len = dateMatcher.end(); 
    1401                     tokens.add(new com.livinglogic.ul4.Date(pos, pos+len, Utils.isoDateFormatter.parse(dateMatcher.group()))); 
     1463                    tokens.add(new LoadDate(pos, pos+len, Utils.isoDateFormatter.parse(dateMatcher.group()))); 
     1464                } 
     1465                else if (stringMode==0 && color8Matcher.lookingAt()) 
     1466                { 
     1467                    len = color8Matcher.end(); 
     1468                    String value = color8Matcher.group(); 
     1469                    int r = Integer.valueOf(value.substring(1, 3), 16); 
     1470                    int g = Integer.valueOf(value.substring(3, 5), 16); 
     1471                    int b = Integer.valueOf(value.substring(5, 7), 16); 
     1472                    int a = Integer.valueOf(value.substring(7, 9), 16); 
     1473                    tokens.add(new LoadColor(pos, pos+len, new Color(r, g, b, a))); 
     1474                } 
     1475                else if (stringMode==0 && color6Matcher.lookingAt()) 
     1476                { 
     1477                    len = color6Matcher.end(); 
     1478                    String value = color6Matcher.group(); 
     1479                    int r = Integer.valueOf(value.substring(1, 3), 16); 
     1480                    int g = Integer.valueOf(value.substring(3, 5), 16); 
     1481                    int b = Integer.valueOf(value.substring(5, 7), 16); 
     1482                    tokens.add(new LoadColor(pos, pos+len, new Color(r, g, b))); 
     1483                } 
     1484                else if (stringMode==0 && color4Matcher.lookingAt()) 
     1485                { 
     1486                    len = color4Matcher.end(); 
     1487                    String value = color4Matcher.group(); 
     1488                    int r = 17*Integer.valueOf(value.substring(1, 2), 16); 
     1489                    int g = 17*Integer.valueOf(value.substring(2, 3), 16); 
     1490                    int b = 17*Integer.valueOf(value.substring(3, 4), 16); 
     1491                    int a = 17*Integer.valueOf(value.substring(4, 5), 16); 
     1492                    tokens.add(new LoadColor(pos, pos+len, new Color(r, g, b, a))); 
     1493                } 
     1494                else if (stringMode==0 && color3Matcher.lookingAt()) 
     1495                { 
     1496                    len = color3Matcher.end(); 
     1497                    String value = color3Matcher.group(); 
     1498                    int r = 17*Integer.valueOf(value.substring(1, 2), 16); 
     1499                    int g = 17*Integer.valueOf(value.substring(2, 3), 16); 
     1500                    int b = 17*Integer.valueOf(value.substring(3, 4), 16); 
     1501                    tokens.add(new LoadColor(pos, pos+len, new Color(r, g, b))); 
    14021502                } 
    14031503                else if (stringMode==0 && floatMatcher.lookingAt()) 
    14041504                { 
    14051505                    len = floatMatcher.end(); 
    1406                     tokens.add(new Float(pos, pos+len, Double.parseDouble(floatMatcher.group()))); 
     1506                    tokens.add(new LoadFloat(pos, pos+len, Double.parseDouble(floatMatcher.group()))); 
    14071507                } 
    14081508                else if (stringMode==0 && hexintMatcher.lookingAt()) 
    14091509                { 
    14101510                    len = hexintMatcher.end(); 
    1411                     tokens.add(new Int(pos, pos+len, Integer.parseInt(hexintMatcher.group().substring(2), 16))); 
     1511                    tokens.add(new LoadInt(pos, pos+len, Integer.parseInt(hexintMatcher.group().substring(2), 16))); 
    14121512                } 
    14131513                else if (stringMode==0 && octintMatcher.lookingAt()) 
    14141514                { 
    14151515                    len = octintMatcher.end(); 
    1416                     tokens.add(new Int(pos, pos+len, Integer.parseInt(octintMatcher.group().substring(2), 8))); 
     1516                    tokens.add(new LoadInt(pos, pos+len, Integer.parseInt(octintMatcher.group().substring(2), 8))); 
    14171517                } 
    14181518                else if (stringMode==0 && binintMatcher.lookingAt()) 
    14191519                { 
    14201520                    len = binintMatcher.end(); 
    1421                     tokens.add(new Int(pos, pos+len, Integer.parseInt(binintMatcher.group().substring(2), 2))); 
     1521                    tokens.add(new LoadInt(pos, pos+len, Integer.parseInt(binintMatcher.group().substring(2), 2))); 
    14221522                } 
    14231523                else if (stringMode==0 && intMatcher.lookingAt()) 
    14241524                { 
    14251525                    len = intMatcher.end(); 
    1426                     tokens.add(new Int(pos, pos+len, Integer.parseInt(intMatcher.group()))); 
     1526                    tokens.add(new LoadInt(pos, pos+len, Integer.parseInt(intMatcher.group()))); 
    14271527                } 
    14281528                else if (stringMode==0 && source.startsWith("'")) 
     
    14441544                    len = 1; 
    14451545                    stringMode = 0; 
    1446                     tokens.add(new Str(stringStartPos, pos+len, collectString.toString())); 
     1546                    tokens.add(new LoadStr(stringStartPos, pos+len, collectString.toString())); 
    14471547                    collectString = null; 
    14481548                } 
     
    18151915                            code(buffer, indent, "reg" + opcode.r1 + " = xmlescape(unicode(reg" + opcode.r2 + ")) if reg" + opcode.r2 + " is not None else u''"); 
    18161916                            break; 
    1817                         case Opcode.CF1_CSVESCAPE: 
    1818                             code(buffer, indent, "reg" + opcode.r1 + " = ul4c._csvescape(reg" + opcode.r2 + ")"); 
     1917                        case Opcode.CF1_CSV: 
     1918                            code(buffer, indent, "reg" + opcode.r1 + " = ul4c._csv(reg" + opcode.r2 + ")"); 
    18191919                            break; 
    18201920                        case Opcode.CF1_STR: 
     
    18651965                        case Opcode.CF1_GET: 
    18661966                            code(buffer, indent, "reg" + opcode.r1 + " = variables.get(reg" + opcode.r2 + ")"); 
     1967                            break; 
     1968                        case Opcode.CF1_JSON: 
     1969                            code(buffer, indent, "reg" + opcode.r1 + " = json(reg" + opcode.r2 + ")"); 
    18671970                            break; 
    18681971                        case Opcode.CF1_CHR: 
     
    19442047                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".iteritems()"); 
    19452048                            break; 
     2049                        case Opcode.CM0_HLS: 
     2050                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".hls()"); 
     2051                            break; 
     2052                        case Opcode.CM0_HLSA: 
     2053                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".hlsa()"); 
     2054                            break; 
     2055                        case Opcode.CM0_HSV: 
     2056                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".hsv()"); 
     2057                            break; 
     2058                        case Opcode.CM0_HSVA: 
     2059                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".hsva()"); 
     2060                            break; 
     2061                        case Opcode.CM0_LUM: 
     2062                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".lum()"); 
     2063                            break; 
    19462064                    } 
    19472065                    break; 
     
    19782096                        case Opcode.CM1_FORMAT: 
    19792097                            code(buffer, indent, "reg" + opcode.r1 + " = ul4c._format(reg" + opcode.r2 + ", reg" + opcode.r3 + ")"); 
     2098                            break; 
     2099                        case Opcode.CM1_WITHLUM: 
     2100                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".withlum(reg" + opcode.r3 + ")"); 
     2101                            break; 
     2102                        case Opcode.CM1_WITHA: 
     2103                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".witha(reg" + opcode.r3 + ")"); 
    19802104                            break; 
    19812105                    }