Changeset 1820


Ignore:
Timestamp:
Dec 27, 2005, 6:24:16 PM (15 years ago)
Author:
orlov
Message:
  • Different runtime improvements.
Location:
to-imperative/trunk/java/org/refal/plus
Files:
1 added
1 deleted
2 edited

Legend:

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

    r1801 r1820  
    1717    implements Comparable, Cloneable
    1818{
     19    public static Expr empty = new Expr();
    1920
    2021    private Object[] expr;
     
    2324
    2425    private int length;
    25 
    26     /**
    27      * Copy constructor
    28      *
    29      * @param e --
    30      *            the expression
    31      */
    32     public Expr(Expr e) {
    33         expr = e.expr;
    34         index = e.index;
    35         length = e.length;
    36     }
    3726
    3827    /**
     
    121110        if (length - e.length != 0)
    122111            return false;
    123         if (expr.hashCode() == e.expr.hashCode())
     112        if (expr.hashCode() == e.expr.hashCode() && index == e.index)
    124113            return true;
    125114        for (int i = index, j = e.index; i < length + index; i++, j++) {
     
    149138     */
    150139    public boolean eq(Expr e, int i) {
    151         if (expr.hashCode() == e.expr.hashCode())
     140        if (expr.hashCode() == e.expr.hashCode() && index == e.index + i)
    152141            return true;
    153142        for (int k = index, j = e.index + i; k < length + index; k++, j++) {
     
    218207        if (length != 0)
    219208        {
    220             if (e1.expr.hashCode() == e2.expr.hashCode())
     209            if (e1.expr == e2.expr && e1.index + e1.length == e2.index)
    221210            {
    222211                expr = e1.expr;
     
    259248
    260249    /**
    261      * @return Returns the contents of the expr.
     250     * Returns the contents of the expr.
    262251     */
    263252    public Object[] toArray() {
     
    267256    }
    268257
    269     public Expr parenth() {
    270         Expr e = new Expr(1);
    271         e.expr[0] = this;
     258    /**
     259     * Creates expression from a sequence of chars.
     260     */
     261    public static Expr fromSequence(CharSequence seq) {
     262        Expr e = new Expr(seq.length());
     263        for (int i = 0, j = e.index; i < e.length; i++, j++)
     264            e.expr[j] = new Character(seq.charAt(i));
    272265        return e;
    273266    }
     
    280273     * @return boolean
    281274     */
    282     public boolean symbol_at(int i) {
     275    public boolean symbolAt(int i) {
    283276        return !(expr[index + i] instanceof Expr);
    284277    }
  • to-imperative/trunk/java/org/refal/plus/RefalException.java

    r1795 r1820  
    1 /**
     1/*
    22 * $Id$
    33 */
     
    2424    }
    2525
     26    public Expr getExpr ()
     27    {
     28        return expr;
     29    }
     30
    2631    public String toString ()
    2732    {
Note: See TracChangeset for help on using the changeset viewer.