Changeset 424


Ignore:
Timestamp:
Jun 12, 2010 11:26:38 PM (14 years ago)
Author:
Anya Helene Bagge
Message:

Update plugin to work with Rascal 0.1.26

Location:
trunk/MagnoliaPlugin
Files:
1 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagnoliaPlugin/META-INF/MANIFEST.MF

    r414 r424  
    33Bundle-Name: magnolia-eclipse
    44Bundle-SymbolicName: magnolia_eclipse;singleton:=true
    5 Bundle-Version: 0.1.3.qualifier
     5Bundle-Version: 0.1.4.qualifier
    66Bundle-RequiredExecutionEnvironment: JavaSE-1.6
    77Bundle-Activator: org.magnolialang.eclipse.MagnoliaPlugin
     
    2121 org.eclipse.ui.ide,
    2222 org.eclipse.ui.workbench.texteditor,
    23  rascal_eclipse;bundle-version="0.1.10",
    24  rascal;bundle-version="0.1.10",
     23 rascal_eclipse;bundle-version="0.1.14",
     24 rascal;bundle-version="0.1.16",
    2525 sglr_invoker;bundle-version="0.1.3",
    2626 org.eclipse.imp.smapifier,
  • trunk/MagnoliaPlugin/plugin.xml

    r405 r424  
    189189      </page>
    190190   </extension>
    191    <!-- extension
    192          point="org.eclipse.imp.runtime.modelTreeBuilder">
    193       <treeBuilder
    194             class="org.magnolialang.eclipse.treeModelBuilder.MagnoliaTreeModelBuilder"
    195             language="Magnolia">
    196       </treeBuilder>
    197    </extension -->
    198    <!-- extension
    199          point="org.eclipse.imp.runtime.labelProvider">
    200       <labelProvider
    201             class="org.magnolialang.eclipse.treeModelBuilder.MagnoliaLabelProvider"
    202             language="Magnolia">
    203       </labelProvider>
    204    </extension -->
    205191
    206192</plugin>
  • trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/MagnoliaPlugin.java

    r421 r424  
    1212import org.osgi.framework.Bundle;
    1313import org.osgi.framework.BundleContext;
    14 import org.rascalmpl.uri.URIResolverRegistry;
    15 
     14import org.rascalmpl.uri.*;
    1615import sglr.LegacySGLRInvoker;
    1716import sglr.SGLRInvoker;
     
    2221        public static final String kLanguageID = "Magnolia";
    2322
     23        public URIResolverRegistry uriResolverRegistry;
    2424        /**
    2525         * The unique instance of this plugin class
     
    7777                System.setProperty("rascal.parsetable.cache.dir", System
    7878                                .getProperty("java.io.tmpdir"));
     79                uriResolverRegistry = new URIResolverRegistry();
     80
    7981                // project scheme
    80                 //ProjectURIResolver resolver = new ProjectURIResolver();
    81                 //URIResolverRegistry registry = URIResolverRegistry.getInstance();
    82                 //registry.registerInput(resolver.scheme(), resolver);
    83                 //registry.registerOutput(resolver.scheme(), resolver);
    84 
     82                ProjectURIResolver resolver = new ProjectURIResolver();
     83                uriResolverRegistry.registerInput(resolver.scheme(), resolver);
     84                uriResolverRegistry.registerOutput(resolver.scheme(), resolver);
     85               
     86                FileURIResolver files = new FileURIResolver();
     87                uriResolverRegistry.registerInput(files.scheme(), files);
     88                uriResolverRegistry.registerOutput(files.scheme(), files);
     89
     90                HttpURIResolver http = new HttpURIResolver();
     91                uriResolverRegistry.registerInput(http.scheme(), http);
     92       
     93                CWDURIResolver cwd = new CWDURIResolver();
     94                uriResolverRegistry.registerInput(cwd.scheme(), cwd);
     95                uriResolverRegistry.registerOutput(cwd.scheme(), cwd);
     96               
     97                ClassResourceInputStreamResolver library = new ClassResourceInputStreamResolver("stdlib", this.getClass());
     98                uriResolverRegistry.registerInput(library.scheme(), library);
    8599        }
    86100
     
    88102                super.start(context);
    89103
     104        }
     105       
     106        public static URIResolverRegistry getResolverRegistry() {
     107                return getInstance().uriResolverRegistry;
    90108        }
    91109
  • trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/NodeLocator.java

    r405 r424  
    6666
    6767        public int getLength(Object node) {
    68                 return getLocation(node).getLength();
     68                return getLocation(node) == null ? 0 : getLocation(node).getLength();
    6969        }
    7070
     
    7474
    7575        public int getStartOffset(Object node) {
    76                 return getLocation(node).getOffset();
     76                return getLocation(node) == null ? 0 : getLocation(node).getOffset();
    7777        }
    7878       
  • trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/ParseController.java

    r419 r424  
    88import org.eclipse.core.runtime.IProgressMonitor;
    99import org.eclipse.imp.language.Language;
     10import org.eclipse.imp.language.LanguageRegistry;
    1011import org.eclipse.imp.model.ISourceProject;
    1112import org.eclipse.imp.parser.IMessageHandler;
     
    3637        private IConstructor parseTree;
    3738        private IPath path;
    38        
     39        public static final String LANGUAGE_NAME = "Magnolia";
     40
     41        public static final Language LANGUAGE = LanguageRegistry
     42                        .findLanguage(LANGUAGE_NAME);
     43
    3944        public ParseController() {
     45                super();
    4046        }
    4147       
     
    5359
    5460        public Language getLanguage() {
    55                 return null;
     61                return LANGUAGE;
    5662        }
    5763
  • trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/rascal/RascalInterpreter.java

    r419 r424  
    22package org.magnolialang.eclipse.rascal;
    33
    4 import java.io.IOException;
    54import java.io.PrintWriter;
     5import java.net.URI;
    66import java.util.HashMap;
    7 import java.util.LinkedList;
    87import java.util.Map;
    98
    109import org.eclipse.core.resources.ResourcesPlugin;
    11 import org.eclipse.imp.pdb.facts.IConstructor;
    1210import org.eclipse.imp.pdb.facts.IValue;
    1311import org.magnolialang.eclipse.editor.ImplementationError;
    14 import org.rascalmpl.ast.ASTFactory;
    15 import org.rascalmpl.ast.Command;
    16 import org.rascalmpl.interpreter.CommandEvaluator;
    17 import org.rascalmpl.interpreter.Configuration;
     12import org.rascalmpl.interpreter.Evaluator;
    1813import org.rascalmpl.interpreter.env.GlobalEnvironment;
    1914import org.rascalmpl.interpreter.env.ModuleEnvironment;
    20 import org.rascalmpl.interpreter.load.FromResourceLoader;
    21 import org.rascalmpl.interpreter.load.ISdfSearchPathContributor;
    2215import org.rascalmpl.interpreter.staticErrors.StaticError;
    2316import org.rascalmpl.interpreter.staticErrors.SyntaxError;
    24 import org.rascalmpl.parser.ASTBuilder;
    2517import org.rascalmpl.values.ValueFactoryFactory;
    2618
     
    2820       
    2921        //private final CommandEvaluator eval;
    30         private final Map<String, CommandEvaluator> evals = new HashMap<String, CommandEvaluator>();
    31         private ASTBuilder astBuilder;
     22        private final Map<String, Evaluator> evals = new HashMap<String, Evaluator>();
    3223
    3324        private static final class InstanceKeeper {
     
    3728        public RascalInterpreter(){
    3829                super();
    39 
    40                                 this.astBuilder = new ASTBuilder(new ASTFactory());
    41                
    42 
    4330        }
    4431
    45         public CommandEvaluator getEvaluator(String prelude) {
     32        public Evaluator getEvaluator(String prelude) {
    4633                if(evals.containsKey(prelude))
    4734                        return evals.get(prelude);
     
    5239                PrintWriter stdout = new PrintWriter(System.out);
    5340
    54                 CommandEvaluator eval = new CommandEvaluator(ValueFactoryFactory.getValueFactory(), stderr, stdout,  root, heap);
     41                Evaluator eval = new Evaluator(ValueFactoryFactory.getValueFactory(), stderr, stdout,  root, heap);
    5542
    56                 // everything rooted at the src directory
     43                eval.addRascalSearchPath(ResourcesPlugin.getWorkspace().getRoot().getProject("MetaXa").getFolder("src").getLocationURI());
     44                // everything rooted at the src directory
     45                /*
    5746                eval.addModuleLoader(new FromResourceLoader(this.getClass()));
    5847                eval.addModuleLoader(new ProjectModuleLoader(ResourcesPlugin.getWorkspace().getRoot().getProject("MetaXa")));
     
    6554                        }
    6655                });
    67                
     56                */
    6857                if(!prelude.equals("")) {
    6958                        String[] cmds = prelude.split(";");
     
    9281        }
    9382       
    94         public IValue call(String fun, CommandEvaluator eval, IValue...args) {
     83        public IValue call(String fun, Evaluator eval, IValue...args) {
    9584                try {
    9685                        return eval.call(fun, args);
     
    10190        }
    10291
    103         public IValue eval(String cmd, CommandEvaluator eval) {
     92        public IValue eval(String cmd, Evaluator eval) {
    10493                try {
    105                         IConstructor parsedCmd = eval.parseCommand(cmd);
    106                         Command cmdAst = astBuilder.buildCommand(parsedCmd);
    107                         return eval.eval(cmdAst).getValue();
    108                 } catch (IOException e) {
    109                         throw new ImplementationError("static checker failed to execute command: '" + cmd + "'", e);
     94                        return eval.eval(cmd, URI.create("stdin:///")).getValue();
    11095                } catch (SyntaxError se) {
    11196                        throw new ImplementationError("syntax error in static checker modules: '" + cmd + "'", se);
  • trunk/MagnoliaPlugin/src/org/magnolialang/load/ModuleLoader.java

    r419 r424  
    99import org.eclipse.imp.model.ISourceProject;
    1010
     11import org.magnolialang.eclipse.MagnoliaPlugin;
    1112import org.magnolialang.eclipse.editor.ImplementationError;
    1213import org.magnolialang.env.MagnoliaEnvironment;
     
    105106                InputStream inputStream = null;
    106107                try{
    107                         inputStream = URIResolverRegistry.getInstance().getInputStream(location);
     108                        inputStream = MagnoliaPlugin.getResolverRegistry().getInputStream(location);
    108109                        data = readModule(inputStream);
    109110                }finally{
  • trunk/MagnoliaPlugin/src/org/magnolialang/parsetree/TreeImplodeVisitor.java

    r419 r424  
    153153                                String chars = TreeAdapter.yield(tree);
    154154                                if(!chars.equals(""))
    155                                         cst.append(layout(chars));
     155                                        cst.append(space(chars));
    156156                        }
    157157                        else if(TreeAdapter.isLiteral(tree)) {
  • trunk/MagnoliaPlugin/src/org/magnolialang/parsetree/XaTreeAdapter.java

    r419 r424  
    212212                                        for(IValue token : concrete) {
    213213                                                Type type = ((IConstructor)token).getConstructorType();
    214                                                 if(type == Type_Token || type == Type_Layout || type == Type_Comment) {
     214                                                if(type == Type_Token || type == Type_Space || type == Type_Comment) {
    215215                                                        result.append(((IConstructor)token).get("chars"));
    216216                                                }
  • trunk/MagnoliaPlugin/src/org/magnolialang/parsetree/XaTreeFactory.java

    r419 r424  
    4949        public static Type Type_Token = tf.constructor(ts, Type_XaToken, "token",
    5050                        tf.stringType(), "chars");
    51         public static Type Type_Layout = tf.constructor(ts, Type_XaToken, "layout",
     51        public static Type Type_Space = tf.constructor(ts, Type_XaToken, "space",
    5252                        tf.stringType(), "chars");
    5353        public static Type Type_Comment = tf.constructor(ts, Type_XaToken, "comment",
     
    9393        }
    9494
    95         public static IConstructor layout(String chars) {
    96                 return vf.constructor(Type_Layout, vf.string(chars));
     95        public static IConstructor space(String chars) {
     96                return vf.constructor(Type_Space, vf.string(chars));
    9797        }
    9898
Note: See TracChangeset for help on using the changeset viewer.