Changeset 1805


Ignore:
Timestamp:
Dec 8, 2005, 5:50:20 PM (15 years ago)
Author:
orlov
Message:
  • Non-polymorphic Access library using Int.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/java/org/refal/plus/library/Access.java

    r1803 r1805  
    99public class Access
    1010{
    11     private Num num;
    12 
    13     public Access (Num n)
    14     {
    15         num = n;
    16     }
    17 
    18     private java.lang.String lib_name ()
    19     {
    20         return "Access(" + num.getClass().getName() + ")";
    21     }
    22 
    23     public boolean L (Expr s_left, Expr e_exp, Expr t_subexp)
     11    static public boolean L (Expr s_left, Expr e_exp, Expr t_subexp)
    2412        throws RefalException
    2513    {
    2614        // FIXME: insert here assertion s_left.getLen() == 1
    2715        try {
    28             int left = num.intValue(s_left.at(0), 0, Integer.MAX_VALUE);
     16            int left = Int.intValue(s_left.at(0), 0, Integer.MAX_VALUE);
    2917            if (e_exp.getLen() == 0 || left > e_exp.getLen() - 1)
    3018                return false;
     
    3321        }
    3422        catch (ClassCastException e) {
    35             throw new RefalException(lib_name(), "L", "Invalid argument");
     23            throw new RefalException("Access", "L", "Invalid argument");
    3624        }
    3725        catch (ValueOutOfBoundsException e) {
     
    4028    }
    4129
    42     public boolean R (Expr s_right, Expr e_exp, Expr t_subexp)
     30    static public boolean R (Expr s_right, Expr e_exp, Expr t_subexp)
    4331        throws RefalException
    4432    {
    4533        // FIXME: insert here assertion s_right.getLen() == 1
    4634        try {
    47             int right = num.intValue(s_right.at(0), 0, Integer.MAX_VALUE);
     35            int right = Int.intValue(s_right.at(0), 0, Integer.MAX_VALUE);
    4836            if (e_exp.getLen() == 0 || right > e_exp.getLen() - 1)
    4937                return false;
     
    5240        }
    5341        catch (ClassCastException e) {
    54             throw new RefalException(lib_name(), "R", "Invalid argument");
     42            throw new RefalException("Access", "R", "Invalid argument");
    5543        }
    5644        catch (ValueOutOfBoundsException e) {
     
    5947    }
    6048
    61     public boolean Left (Expr s_left, Expr s_len, Expr e_exp, Expr e_subexp)
     49    static public boolean Left (Expr s_left, Expr s_len, Expr e_exp, Expr e_subexp)
    6250        throws RefalException
    6351    {
     
    6553        // FIXME: insert here assertion s_len.getLen() == 1
    6654        try {
    67             int len  = num.intValue(s_len .at(0), 0, Integer.MAX_VALUE);
    68             int left = num.intValue(s_left.at(0), 0, Integer.MAX_VALUE);
     55            int len  = Int.intValue(s_len .at(0), 0, Integer.MAX_VALUE);
     56            int left = Int.intValue(s_left.at(0), 0, Integer.MAX_VALUE);
    6957            if (e_exp.getLen() < len || left > e_exp.getLen() - len)
    7058                return false;
     
    7361        }
    7462        catch (ClassCastException e) {
    75             throw new RefalException(lib_name(), "Left", "Invalid argument");
     63            throw new RefalException("Access", "Left", "Invalid argument");
    7664        }
    7765        catch (ValueOutOfBoundsException e) {
     
    8068    }
    8169
    82     public boolean Right (Expr s_right, Expr s_len, Expr e_exp, Expr e_subexp)
     70    static public boolean Right (Expr s_right, Expr s_len, Expr e_exp, Expr e_subexp)
    8371        throws RefalException
    8472    {
     
    8674        // FIXME: insert here assertion s_len.getLen() == 1
    8775        try {
    88             int len   = num.intValue(s_len  .at(0), 0, Integer.MAX_VALUE);
    89             int right = num.intValue(s_right.at(0), 0, Integer.MAX_VALUE);
     76            int len   = Int.intValue(s_len  .at(0), 0, Integer.MAX_VALUE);
     77            int right = Int.intValue(s_right.at(0), 0, Integer.MAX_VALUE);
    9078            if (e_exp.getLen() < len || right > e_exp.getLen() - len)
    9179                return false;
     
    9482        }
    9583        catch (ClassCastException e) {
    96             throw new RefalException(lib_name(), "Right", "Invalid argument");
     84            throw new RefalException("Access", "Right", "Invalid argument");
    9785        }
    9886        catch (ValueOutOfBoundsException e) {
     
    10189    }
    10290
    103     public boolean Middle (Expr s_left, Expr s_right, Expr e_exp, Expr e_subexp)
     91    static public boolean Middle (Expr s_left, Expr s_right, Expr e_exp, Expr e_subexp)
    10492        throws RefalException
    10593    {
     
    10795        // FIXME: insert here assertion s_right.getLen() == 1
    10896        try {
    109             int left  = num.intValue(s_left .at(0), 0, Integer.MAX_VALUE);
    110             int right = num.intValue(s_right.at(0), 0, Integer.MAX_VALUE);
     97            int left  = Int.intValue(s_left .at(0), 0, Integer.MAX_VALUE);
     98            int right = Int.intValue(s_right.at(0), 0, Integer.MAX_VALUE);
    11199            if (e_exp.getLen() < right || left > e_exp.getLen() - right)
    112100                return false;
     
    115103        }
    116104        catch (ClassCastException e) {
    117             throw new RefalException(lib_name(), "Middle", "Invalid argument");
     105            throw new RefalException("Access", "Middle", "Invalid argument");
    118106        }
    119107        catch (ValueOutOfBoundsException e) {
     
    122110    }
    123111
    124     public void Length (Expr e_exp, Expr s_len)
     112    static public void Length (Expr e_exp, Expr s_len)
    125113    {
    126         s_len.assign(new Expr(num.create(e_exp.getLen())));       
     114        s_len.assign(new Expr(new Integer(e_exp.getLen())));
    127115    }
    128116}
Note: See TracChangeset for help on using the changeset viewer.