Changeset 184:0cd2857001e1 in livinglogic.java.ul4

Show
Ignore:
Timestamp:
12/28/08 22:17:58 (10 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Add support for calling witha() as an UL4 method.

Location:
library/src/com/livinglogic/ul4
Files:
4 modified

Legend:

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

    r182 r184  
    1111        Color c = new Color(0x00, 0x63, 0xa8, 0x33); 
    1212        Color b = new Color(0x00, 0x00, 0x00, 0xff); 
    13         Template tmpl = Compiler.compile("<?print #fc9.withlum(0.2)?>"); 
     13        Template tmpl = Compiler.compile("<?print repr(#fc9.witha(0x32))?>"); 
    1414        System.out.println(tmpl); 
    1515        long start = System.currentTimeMillis(); 
  • library/src/com/livinglogic/ul4/Opcode.java

    r182 r184  
    141141    public static final int CM1_GET = 10; 
    142142    public static final int CM1_WITHLUM = 11; 
     143    public static final int CM1_WITHA = 12; 
    143144 
    144145    public static final int CM2_SPLIT = 0; 
     
    467468        else if (name.equals("withlum")) 
    468469            return CM1_WITHLUM; 
     470        else if (name.equals("witha")) 
     471            return CM1_WITHA; 
    469472        else 
    470473            throw new UnknownMethodException(name); 
  • library/src/com/livinglogic/ul4/Template.java

    r182 r184  
    13151315                                    reg[code.r1] = Utils.withlum(reg[code.r2], reg[code.r3]); 
    13161316                                    break; 
     1317                                case Opcode.CM1_WITHA: 
     1318                                    reg[code.r1] = Utils.witha(reg[code.r2], reg[code.r3]); 
     1319                                    break; 
    13171320                            } 
    13181321                            break; 
     
    20972100                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".withlum(reg" + opcode.r3 + ")"); 
    20982101                            break; 
     2102                        case Opcode.CM1_WITHA: 
     2103                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".witha(reg" + opcode.r3 + ")"); 
     2104                            break; 
    20992105                    } 
    21002106                    break; 
  • library/src/com/livinglogic/ul4/Utils.java

    r182 r184  
    13371337    } 
    13381338 
     1339    private static int _getint(Object arg) 
     1340    { 
     1341        if (arg instanceof Integer) 
     1342            return ((Integer)arg).intValue(); 
     1343        else if (arg instanceof Double) 
     1344            return ((Double)arg).intValue(); 
     1345        else 
     1346            throw new UnsupportedOperationException("can't convert " + arg.getClass() + " to int!"); 
     1347    } 
     1348 
    13391349    public static Color rgb(Object arg1, Object arg2, Object arg3) 
    13401350    { 
     
    13701380    { 
    13711381        return ((Color)arg1).withlum(_getdouble(arg2)); 
     1382    } 
     1383 
     1384    public static Color witha(Object arg1, Object arg2) 
     1385    { 
     1386        return ((Color)arg1).witha(_getint(arg2)); 
    13721387    } 
    13731388