Changeset 4287

Show
Ignore:
Timestamp:
10/26/09 07:31:06 (4 weeks ago)
Author:
chf
Message:

birdcount0

Location:
trunk
Files:
65 added
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/Library/FileSupport.fsi

    r3042 r4287  
    116116end 
    117117 
     118object FileGenerator[\S\](reader:ReadStream, upper: ZZ32, 
     119                          readOne:ReadStream -> S) 
     120        extends { Consumable, Generator[\S\] } 
    118121end 
     122 
     123end 
  • trunk/Library/FlatString.fss

    r3531 r4287  
    9393    javaSubstr(lo:ZZ32,hi:ZZ32): String = 
    9494        builtinPrimitive("com.sun.fortress.interpreter.glue.prim.FlatString$Substr") 
     95    javaSubstr(lo:ZZ32): String = javaSubstr(lo, self.size()) 
    9596    javaIndexOf(c:Char): ZZ32 = 
    9697        builtinPrimitive("com.sun.fortress.interpreter.glue.prim.FlatString$IndexOf") 
     
    99100    flatConcat(self, b:Char):String = 
    100101        builtinPrimitive("com.sun.fortress.interpreter.glue.prim.FlatString$Concat") 
     102    javaRegExpMatches(m:FlatString): Boolean = 
     103        builtinPrimitive("com.sun.fortress.interpreter.glue.prim.FlatString$javaRegExpMatches") 
     104    javaRegExpSplit(m:FlatString, i:ZZ32): String = 
     105        builtinPrimitive("com.sun.fortress.interpreter.glue.prim.FlatString$javaRegExpSplit") 
    101106 
    102107    indexOf(c:Char): Maybe⟦ZZ32⟧ = do 
  • trunk/ProjectFortress/src/com/sun/fortress/interpreter/glue/prim/FlatString.java

    r3998 r4287  
    2727 
    2828import java.util.List; 
    29  
     29import java.util.regex.Pattern; 
    3030 
    3131public class FlatString extends NativeConstructor { 
     
    118118    } 
    119119 
     120    private static abstract class ssI2s extends NativeMeth2 { 
     121        protected abstract java.lang.String f(java.lang.String s1, java.lang.String s2, int i); 
     122 
     123        @Override 
     124            public final FString applyMethod(FObject self, FValue s, FValue i) { 
     125            return FString.make(f(((FString) self).getString(), ((FString) s).getString(), ((FInt) i).getInt())); 
     126        } 
     127    } 
     128 
     129 
    120130    public static final class Size extends s2I { 
    121131        @Override 
     
    181191    } 
    182192 
     193    public static final class javaRegExpMatches extends ss2B { 
     194        @Override 
     195        protected boolean f(java.lang.String self, java.lang.String match) { 
     196            return Pattern.matches(match, self); 
     197        } 
     198    } 
     199     
     200    public static final class javaRegExpSplit extends ssI2s { 
     201        protected String f(java.lang.String self, java.lang.String match, int index) { 
     202            Pattern p = Pattern.compile(match); 
     203            java.lang.String[] temp = p.split(self); 
     204            return temp[index]; 
     205        } 
     206    } 
    183207}