Changeset 2698


Ignore:
Timestamp:
Apr 17, 2007, 9:52:04 PM (14 years ago)
Author:
orlov
Message:
  • Advances in Refal AS generation (not usable yet).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel-tools/trunk/eclipse/org.refal.plus.rfpdt/src/org/refal/plus/rfpdt/core/builder/RefalASGenerator.java

    r2688 r2698  
    6262        private static final Word FUNC_Q  = new Word("FUNC?");
    6363        private static final Word BRANCH  = new Word("BRANCH");
     64        private static final Word FORMAT  = new Word("FORMAT");
     65        private static final Word LEFT    = new Word("LEFT");
     66        private static final Word RIGHT   = new Word("RIGHT");
     67        private static final Word RESULT  = new Word("RESULT");
    6468
    6569        private static Expr makeName(String name) {
     
    184188
    185189        public void visit(AstLet astLet) {
    186                 // TODO Auto-generated method stub
    187                
     190                astLet.target.accept(this);
     191                Expr format = Expr.concat(new Expr(FORMAT), (Expr) buf);
     192                astLet.source.accept(this);
     193                buf = Expr.fromArrayUnsafe(new Object[] { buf, format });
    188194        }
    189195
     
    219225
    220226        public void visit(AstPattern astPattern) {
    221                 // TODO Auto-generated method stub
    222                
     227                Expr tag = new Expr(astPattern.r ? RIGHT : LEFT);
     228                astPattern.exp.accept(this);
     229                buf = Expr.concat(tag, (Expr) buf);
    223230        }
    224231
     
    239246
    240247        public void visit(AstResultExp astResultExp) {
    241                 // TODO Auto-generated method stub
    242                
     248                astResultExp.exp.accept(this);
     249                buf = Expr.concat(new Expr(RESULT), (Expr) buf);
    243250        }
    244251
    245252        public void visit(AstSentence astSentence) {
    246                 // TODO Auto-generated method stub
    247                
     253                LinkedList<Object> items = new LinkedList<Object>();
     254                if (astSentence.pattern != null) {
     255                        astSentence.pattern.accept(this);
     256                        items.add(buf);
     257                }
     258                astSentence.rest.accept(this);
     259                items.add(buf);
     260                buf = Expr.fromArrayUnsafe(items.toArray());
    248261        }
    249262
Note: See TracChangeset for help on using the changeset viewer.