Changeset 821


Ignore:
Timestamp:
Aug 2, 2012 8:01:02 PM (12 years ago)
Author:
Anya Helene Bagge
Message:

Integrate changes from 0.2.27

Location:
trunk/magnolia-eclipse
Files:
2 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/magnolia-eclipse

  • trunk/magnolia-eclipse/META-INF/MANIFEST.MF

    r812 r821  
    33Bundle-Name: magnolia-eclipse
    44Bundle-SymbolicName: magnolia_eclipse;singleton:=true
    5 Bundle-Version: 0.2.26
     5Bundle-Version: 0.2.27
    66Bundle-Activator: org.magnolialang.eclipse.MagnoliaPlugin
    77Bundle-ActivationPolicy: lazy
  • trunk/magnolia-eclipse/src/org/magnolialang/eclipse/builders/MagnoliaBuilder.java

    r691 r821  
    252252                                IConstructor info = ((IConstructor) compiler.getFact(rm, MagnoliaFacts.Type_DefInfo, name));
    253253                                String kind = ((IString) info.get("kind")).getValue();
    254                                 if(kind.equals("implementation") || kind.equals("library")) {
     254                                if(/* kind.equals("implementation") || */kind.equals("library")) {
    255255                                        toClean = buildOutput(manager, compiler, rm, name, toClean);
    256256                                }
     
    288288                if(result instanceof IString) {
    289289                        String code = ((IString) result).getValue();
    290                         if(prelude == null)
    291                                 loadPrelude();
    292                         code = prelude + "\n" + code;
    293                         String outname = Magnolia.yieldName(name).replaceAll("\\.", "/") + ".cxx";
    294                         IPath path = manager.getOutFolder().append(outname);
    295                         toClean = createFile(code, path, toClean);
     290                        if(!code.startsWith("//-")) {
     291                                if(prelude == null)
     292                                        loadPrelude();
     293                                code = prelude + "\n" + code;
     294                                String outname = Magnolia.yieldName(name).replaceAll("\\.", "/") + ".cxx";
     295                                IPath path = manager.getOutFolder().append(outname);
     296                                toClean = createFile(code, path, toClean);
     297                        }
    296298                }
    297299                return toClean;
  • trunk/magnolia-eclipse/src/org/magnolialang/magnolia/backend/CxxBackend.rsc

    r796 r821  
    4242                        errors = getErrors(arg);
    4343                        str body = "";
     44                        bool hasCode = false;
    4445                        // library
    4546                        if(DeclBody(_) := tree) {
     
    5657                                                if(info.kind == "library")
    5758                                                        body = generateCommandInterface(tr, ds, info.qName, body);
     59                                                hasCode = true;
    5860                                                println("CxxCode cmdInterface: at <getMilliTime()-time> ms (for <nameToStr(astValue(key[1]))>)");
    5961                                        }
     
    7173                        println("CxxCode indentStr: <getMilliTime()-t2> ms (for <nameToStr(astValue(key[1]))>)");
    7274                        if(errors == {})
    73                                 setFact(tr, #CxxCode, key, CxxCode("// <info.kind>: <dispNameOf(info.qName)>\n<body>\n", errors));
     75                                setFact(tr, #CxxCode, key, CxxCode("//<hasCode ? " " : "-"> <info.kind>: <dispNameOf(info.qName)>\n<body>\n", errors));
    7476                        else
    75                                 setFact(tr, #CxxCode, key, CxxCode("// <info.kind>: <dispNameOf(info.qName)>\n// CODE DISABLED DUE TO COMPILATION ERRORS\n// <replaceAll(body, "\n", "\n// ")>\n", errors));
     77                                setFact(tr, #CxxCode, key, CxxCode("//- <info.kind>: <dispNameOf(info.qName)>\n// CODE DISABLED DUE TO COMPILATION ERRORS\n// <replaceAll(body, "\n", "\n// ")>\n", errors));
    7678                }
    7779                else {
  • trunk/magnolia-eclipse/src/org/magnolialang/magnolia/frontend/MagnoliaSugar.rsc

    r779 r821  
    6363                        case x:Assert(expr,seq(clauses)) =>
    6464                                preserveAnnos(Assert(expr,seq([*clauses, Src(leaf(unparse(expr)))])), x)
    65                         case x:TopParen(expr) => expr
     65                        /* This doesn't work, because expr won't be reprocessed
     66                          case x:TopParen(expr) => expr
     67                        */
    6668                };
    6769                setFact(tr, #DesugaredTree, modName, DesugaredTree(tree));
  • trunk/magnolia-eclipse/src/org/magnolialang/magnolia/lib/Inliner.rsc

    r766 r821  
    3131                        insert trackOrigin((renaming[n])[@\loc=locOf(n)], renaming[n]);
    3232                }
    33         }
     33        case ExternalType(_,_,_):
     34                ;
     35        case ExternalFun(_,_,_,_,_):
     36                ;
     37        case ExternalType(_,_,_,_):
     38                ;
     39        }
     40       
    3441        for(n <- unused) {
    3542                env = errorMark(env, "Unused renaming \'<nameToStr(n)>\' =\> \'<nameToStr(renaming[n])>\'", Warning(), locOf(n));
  • trunk/magnolia-eclipse/src/org/magnolialang/magnolia/lib/Pretty.rsc

    r809 r821  
    680680}
    681681
    682 Tseq pp(TopParen(arg0), Tseq stream) {
     682/*Tseq pp(TopParen(arg0), Tseq stream) {
    683683  return ast2stream(stream, pp, LParen, arg0, RParen);
    684684}
    685 
     685*/
    686686Tseq pp(TopPreOp(arg0, arg1), Tseq stream) {
    687687  return ast2stream(stream, pp, arg0, arg1);
  • trunk/magnolia-eclipse/src/org/magnolialang/syntax/Magnolia.rsc

    r782 r821  
    4242        | AlgDecl
    4343        | RenameList:           "[" {Renaming ","}* "]"
    44         | bracket TopParen:             "(" TopExpr ")"
     44        | bracket               "(" TopExpr ")"
    4545        > Renamed:              TopExpr "[" {Renaming ","}* "]"
    4646        > TopPreOp:             TOPPREOP TopExpr
  • trunk/magnolia-eclipse/src/org/magnolialang/syntax/MagnoliaAST.rsc

    r779 r821  
    151151data AST = TopBinOp(AST arg0, AST arg1, AST arg2); // sort("TopExpr")
    152152data AST = TopExprTree(AST arg0); // sort("Program")
    153 data AST = TopParen(AST arg0); // sort("TopExpr")
    154153data AST = TopPreOp(AST arg0, AST arg1); // sort("TopExpr")
    155154data AST = Tuple(AST arg0); // sort("Expr")
  • trunk/magnolia-eclipse/src/org/magnolialang/syntax/MagnoliaPP.rsc

    r793 r821  
    22module org::magnolialang::syntax::MagnoliaPP
    33import org::magnolialang::pgf::Token;
     4import org::magnolialang::pgf::Stream;
    45import org::magnolialang::pgf::AstToStream;
    56import org::magnolialang::syntax::MagnoliaAST;
    6 
    7 public default Tseq pp(AST ast, Tseq stream) {
     7public default Stream[Token] pp(AST ast, Stream[Token] stream) {
    88  return stream;
    99}
    10 
    1110public Tseq pp(Abstract(), Tseq stream) {
    1211  return ast2stream(stream, pp, Text("abstract"));
     
    577576}
    578577
    579 public Tseq pp(TopParen(arg0), Tseq stream) {
    580   return ast2stream(stream, pp, Text("("), Space(" "), arg0, Space(" "), Text(")"));
    581 }
    582 
    583578public Tseq pp(TopPreOp(arg0, arg1), Tseq stream) {
    584579  return ast2stream(stream, pp, arg0, Space(" "), arg1);
  • trunk/magnolia-eclipse/src/org/magnolialang/terms/TermImploder.java

    r636 r821  
    113113                                        return check(implode((IConstructor) TreeAdapter.getArgs(tree).get(0)));
    114114                        }
     115                        else if(ProductionAdapter.hasAttribute(prod, Factory.Attribute_Bracket) && syms != null && syms.length() == 5) {
     116                                IConstructor t = (IConstructor) TreeAdapter.getArgs(tree).get(2);
     117                                return check(implode(t));
     118                        }
    115119                        else if(SymbolAdapter.isStartSort(ProductionAdapter.getDefined(prod))) {
    116120                                // IConstructor prod = TreeAdapter.getProduction(pt);
     
    145149                        }
    146150                        else {
    147                                 if(ProductionAdapter.isRegular(tree))
     151/*                              if(ProductionAdapter.isRegular(tree))
    148152                                        System.out.println("Regular");
    149                                 final Pair<IValue[], IList> t = visitChildren(TreeAdapter.getArgs(tree));
     153*/                              final Pair<IValue[], IList> t = visitChildren(TreeAdapter.getArgs(tree));
    150154                                concrete = t.second;
    151155                                result = cons(cons == null ? sort : cons, t.first);
Note: See TracChangeset for help on using the changeset viewer.