Changeset 3682


Ignore:
Timestamp:
Apr 9, 2008, 5:44:18 PM (13 years ago)
Author:
yura
Message:
  • Expr.toString() returns formatted representation, all references Reference class) (including Refal String) represents as &[name or classname@hash].
  • Expr.toChars() - returns string like Convert.toChars (Refal String converts to its value).
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • devel-tools/trunk/eclipse/org.refal.rfpdt.ui/src/org/refal/rfpdt/ui/RfpPerspectiveFactory.java

    r3679 r3682  
    99
    1010public class RfpPerspectiveFactory implements IPerspectiveFactory {
    11 
    1211    public void createInitialLayout (IPageLayout layout) {
    1312        createFolders(layout);
  • devel-tools/trunk/eclipse/org.refal.rfpdt.ui/src/org/refal/rfpdt/ui/RfpUI.java

    r3679 r3682  
    66import org.eclipse.core.runtime.IStatus;
    77import org.eclipse.core.runtime.Status;
    8 import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
    9 import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
    108import org.eclipse.jface.preference.IPreferenceStore;
    119import org.eclipse.swt.widgets.Shell;
     
    1816import org.refal.rfpdt.editor.preferences.ProjectPropertiesStore;
    1917
    20 @SuppressWarnings("restriction")
    2118public class RfpUI extends AbstractUIPlugin {
    22 
    2319    // The plug-in ID
    2420    public static final String PLUGIN_ID = "org.refal.rfpdt.ui";
     
    2925    public static final String RFP_ELEMENT_CREATION_ACTION_SET = "org.refal.rfpdt.ui.rfpElementCreationActionSet";
    3026
    31     private static final String formatters = "org.refal.plus.Expr,return formattedRepresentation();,1"
    32             + ",org.refal.plus.Result,return expr == null ? null : expr.formattedRepresentation();,1";
    3327    // The shared instance
    3428    private static RfpUI plugin = null;
    3529    private static HashMap<IProject, ProjectPropertiesStore> stores = null;
    3630    private static RfpPartitionScanner partitionScanner = null;
    37 
    38     static {
    39         IPreferenceStore store = JDIDebugUIPlugin.getDefault().getPreferenceStore();
    40         String str = store.getString(IJDIPreferencesConstants.PREF_DETAIL_FORMATTERS_LIST);
    41         if (str == null)
    42             str = "";
    43         if (!str.contains("org.refal.plus.Expr")) {
    44             if (str.length() != 0)
    45                 str += ",";
    46             str += formatters;
    47             store.setValue(IJDIPreferencesConstants.PREF_DETAIL_FORMATTERS_LIST, str);
    48         }
    49     }
    5031
    5132    /**
  • to-imperative/trunk/java/java/org/refal/plus/Expr.java

    r3668 r3682  
    367367
    368368    public String toString () {
    369         return new String(toStringBuffer());
    370     }
    371 
    372     public StringBuffer toStringBuffer () {
    373         StringBuffer str = new StringBuffer(length);
    374         for (Comparable<?> term : this)
    375             if (term instanceof Expr)
    376                 str.append('(').append(((Expr) term).toStringBuffer()).append(')');
    377             else
    378                 str.append(term.toString());
    379         return str;
    380     }
    381 
    382     public String formattedRepresentation () {
    383         if (length == 0)
    384             return "";
    385         StringBuffer str = new StringBuffer(2 * length);
     369        StringBuffer strBuf = new StringBuffer();
     370        toStringBuffer(strBuf);
     371        return strBuf.toString();
     372    }
     373
     374    private void toStringBuffer (StringBuffer strBuf) {
    386375        boolean chars = false;
    387376        for (Comparable<?> term : this) {
     
    389378                if (!chars) {
    390379                    chars = true;
    391                     str.append(' ');
    392                     str.append('\'');
     380                    strBuf.append(' ');
     381                    strBuf.append('\'');
    393382                }
    394383                switch (((Character) term).charValue()) {
    395384                    case '\t':
    396                         str.append("\\t");
     385                        strBuf.append("\\t");
    397386                        continue;
    398387                    case '\r':
    399                         str.append("\\r");
     388                        strBuf.append("\\r");
    400389                        continue;
    401390                    case '\n':
    402                         str.append("\\n");
     391                        strBuf.append("\\n");
    403392                        continue;
    404393                    case '\\':
    405                         str.append("\\\\");
     394                        strBuf.append("\\\\");
    406395                        continue;
    407396                    case '\'':
    408                         str.append("\\\'");
     397                        strBuf.append("\\\'");
    409398                        continue;
    410399                    case '\"':
    411                         str.append("\\\"");
     400                        strBuf.append("\\\"");
    412401                        continue;
    413402                    default:
    414                         str.append(term);
     403                        strBuf.append(term);
    415404                        continue;
    416405                }
     
    418407            if (chars) {
    419408                chars = false;
    420                 str.append('\'');
     409                strBuf.append('\'');
    421410            }
    422             str.append(' ');
    423             if (term instanceof Expr)
    424                 str.append('(').append(((Expr) term).formattedRepresentation()).append(')');
    425             else if (term instanceof String) {
     411            strBuf.append(' ');
     412            if (term instanceof Expr) {
     413                strBuf.append('(');
     414                ((Expr) term).toStringBuffer(strBuf);
     415                strBuf.append(')');
     416            } else if (term instanceof String) {
    426417                String w = (String) term;
    427418                if (isIdentifier(w))
    428                     str.append(w);
     419                    strBuf.append(w);
    429420                else
    430                     str.append('"').append(w).append('"');
     421                    strBuf.append('"').append(w).append('"');
    431422            } else
    432                 str.append(term);
     423                strBuf.append(term.toString());
    433424        }
    434425        if (chars)
    435             str.append('\'');
    436         return str.substring(1);
     426            strBuf.append('\'');
     427    }
     428
     429    public StringBuffer toChars () {
     430        StringBuffer strBuf = new StringBuffer();
     431        toChars(strBuf);
     432        return strBuf;
     433    }
     434
     435    @SuppressWarnings("unchecked")
     436    private void toChars (StringBuffer strBuf) {
     437        for (Comparable<?> term : this)
     438            if (term instanceof Expr) {
     439                strBuf.append('(');
     440                ((Expr) term).toStringBuffer(strBuf);
     441                strBuf.append(')');
     442            } else if (term instanceof Reference)
     443                strBuf.append(((Reference<StringBuffer>) term).object);
     444            else
     445                strBuf.append(term.toString());
    437446    }
    438447
     
    445454        for (int i = 1; i < str.length(); i++) {
    446455            c = str.charAt(i);
    447             if (!Character.isLetterOrDigit(c) && c != '_')
     456            if (!Character.isLetterOrDigit(c) && c != '_' && c != '.')
    448457                return false;
    449458        }
  • to-imperative/trunk/java/java/org/refal/plus/RefalException.java

    r3419 r3682  
    2727
    2828    public String toString () {
    29         return expr.formattedRepresentation();
     29        return expr.toString();
    3030    }
    3131}
  • to-imperative/trunk/java/java/org/refal/plus/Reference.java

    r3459 r3682  
    2323
    2424    public java.lang.String toString () {
    25         return object == null ? "<null>" : object.toString();
     25        return object == null ? "&null@0" : '&' + object.getClass().getName() + '@' + Integer.toHexString(object.hashCode());
    2626    }
    2727
  • to-imperative/trunk/java/java/org/refal/plus/Result.java

    r3624 r3682  
    3636    }
    3737
    38     public String formattedRepresentation () {
    39         return expr != null ? expr.formattedRepresentation() : null;
    40     }
    41 
    4238    public Comparable<?>[] toArray () {
    4339        return expr != null ? expr.toArray() : null;
  • to-imperative/trunk/java/java/refal/plus/StdIO.java

    r3669 r3682  
    8787    @RefalFormat("$func Write e.Expr = ;")
    8888    public static void Write (Expr e) {
    89         System.out.print(e.formattedRepresentation());
     89        System.out.print(e.toString());
    9090    }
    9191
    9292    @RefalFormat("$func WriteLn e.Expr = ;")
    9393    public static void WriteLn (Expr e) {
    94         System.out.println(e.formattedRepresentation());
     94        System.out.println(e.toString());
    9595    }
    9696
     
    9999        assert channel.length() == 1;
    100100        try {
    101             ((Channel) channel.at(0)).print(e.formattedRepresentation());
     101            ((Channel) channel.at(0)).print(e.toString());
    102102        } catch (ClassCastException _) {
    103103            throw new RefalException("StdIO", "WriteCh", "Invalid argument");
     
    114114        assert channel.length() == 1;
    115115        try {
    116             ((Channel) channel.at(0)).println(e.formattedRepresentation());
     116            ((Channel) channel.at(0)).println(e.toString());
    117117        } catch (ClassCastException _) {
    118118            throw new RefalException("StdIO", "WriteLnCh", "Invalid argument");
     
    127127    @RefalFormat("$func Print e.Expr = ;")
    128128    public static void Print (Expr e) {
    129         System.out.print(e);
     129        System.out.print(e.toChars());
    130130    }
    131131
    132132    @RefalFormat("$func PrintLn e.Expr = ;")
    133133    public static void PrintLn (Expr e) {
    134         System.out.println(e);
     134        System.out.println(e.toChars());
    135135    }
    136136
     
    139139        assert channel.length() == 1;
    140140        try {
    141             ((Channel) channel.at(0)).print(e);
     141            ((Channel) channel.at(0)).print(e.toChars());
    142142        } catch (ClassCastException _) {
    143143            throw new RefalException("StdIO", "PrintCh", "Invalid argument");
     
    154154        assert channel.length() == 1;
    155155        try {
    156             ((Channel) channel.at(0)).println(e);
     156            ((Channel) channel.at(0)).println(e.toChars());
    157157        } catch (ClassCastException _) {
    158158            throw new RefalException("StdIO", "PrintLnCh", "Invalid argument");
  • to-imperative/trunk/java/java/refal/plus/internal/Convert.java

    r3615 r3682  
    1818    @RefalFormat("$func ToChars e.Exp = e.Char;")
    1919    public static void ToChars (Expr e, Result res) {
    20         res.assign(Expr.fromSequence(e.toStringBuffer()));
     20        res.assign(Expr.fromSequence(e.toChars()));
    2121    }
    2222
    2323    @RefalFormat("$func ToWord e.Exp = s.Word;")
    2424    public static void ToWord (Expr e, Result res) {
    25         res.assign(e.toString().intern());
     25        res.assign(e.toChars().toString().intern());
    2626    }
    2727
     
    2929    public static boolean ToInt (Expr e, Result res) {
    3030        try {
    31             String s = e.toString().trim();
     31            String s = e.toChars().toString().trim();
    3232            if (s.charAt(0) == '+')
    3333                s = s.substring(1);
     
    8383    }
    8484
    85     static private final BigInteger max_char = BigInteger.valueOf(Character.MAX_VALUE);
    86     static private final BigInteger min_char = BigInteger.valueOf(Character.MIN_VALUE);
     85    private static final BigInteger max_char = BigInteger.valueOf(Character.MAX_VALUE);
     86    private static final BigInteger min_char = BigInteger.valueOf(Character.MIN_VALUE);
    8787
    8888    @RefalFormat("$func BytesToChars e.Int = e.Char;")
Note: See TracChangeset for help on using the changeset viewer.