Changeset 453
- Timestamp:
- Jul 5, 2010 4:10:01 AM (14 years ago)
- Location:
- trunk/MagnoliaPlugin
- Files:
-
- 1 deleted
- 22 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagnoliaPlugin/plugin.xml
r452 r453 25 25 point="org.eclipse.imp.runtime.parser"> 26 26 <parser 27 class="org.magnolialang.eclipse.editor. ParseController"27 class="org.magnolialang.eclipse.editor.MagnoliaParseController" 28 28 language="Magnolia"> 29 29 </parser> … … 32 32 point="org.eclipse.imp.runtime.parser"> 33 33 <parser 34 class="org.magnolialang.eclipse.editor. ParseController"34 class="org.magnolialang.eclipse.editor.MagnoliaParseController" 35 35 language="MetaXa"> 36 36 </parser> … … 49 49 language="MetaXa"> 50 50 </tokenColorer> 51 </extension>52 <extension53 point="org.eclipse.imp.runtime.refactoringContributions">54 <refactoringContributor55 class="imp.magnolia.refactoring.RefactoringContributor"56 language="Magnolia">57 </refactoringContributor>58 51 </extension> 59 52 <extension -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/builders/MagnoliaBuilder.java
r452 r453 21 21 22 22 import org.magnolialang.eclipse.MagnoliaPlugin; 23 import org.magnolialang.eclipse.editor.ImplementationError; 24 import org.magnolialang.eclipse.editor.ParseController; 23 import org.magnolialang.eclipse.editor.MagnoliaParseController; 25 24 import org.magnolialang.errors.CompilationError; 26 25 import org.magnolialang.errors.ErrorMarkers; … … 193 192 194 193 try { 195 IParseController parseController = new ParseController();194 IParseController parseController = new MagnoliaParseController(); 196 195 197 196 // TODO: Pick a version of the marker creator (or just go with this one) -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/commands/SelectConstruct.java
r442 r453 8 8 import org.eclipse.core.commands.ExecutionException; 9 9 import org.eclipse.imp.pdb.facts.IConstructor; 10 import org.eclipse.imp.pdb.facts.IMap;11 10 import org.eclipse.imp.pdb.facts.ISourceLocation; 12 11 import org.eclipse.imp.pdb.facts.IValue; … … 16 15 import org.magnolialang.eclipse.editor.MagnoliaEditor; 17 16 import org.magnolialang.eclipse.editor.NodeLocator; 18 import org.magnolialang.eclipse.editor. ParseController;17 import org.magnolialang.eclipse.editor.MagnoliaParseController; 19 18 import org.magnolialang.eclipse.rascal.RascalInterpreter; 20 19 import org.magnolialang.xatree.SortNameMatcher; 21 20 import org.magnolialang.xatree.TreeImploder; 22 import org.magnolialang.xatree.XaTreeAdapter;23 import org.magnolialang.xatree.XaTreeFactory;24 import org.rascalmpl.values.ValueFactoryFactory;25 21 import org.rascalmpl.values.uptr.TreeAdapter; 26 22 … … 31 27 MagnoliaEditor editor = (MagnoliaEditor)editorPart; 32 28 Point p = editor.getSelection(); 33 ParseController parseCtrl = (ParseController) editor.getParseController();29 MagnoliaParseController parseCtrl = (MagnoliaParseController) editor.getParseController(); 34 30 NodeLocator locator = parseCtrl.getSourcePositionLocator(); 35 31 IConstructor tree = locator.findNode(parseCtrl.getCurrentAst(), p.x, new SortNameMatcher("Expr", "Type", "Decl", "Program"), NodeLocator.INNERMOST); … … 46 42 47 43 System.out.printf("Java tree imploder: %fms\n", diffTime/1000000.0); 48 IValue result = XaTreeFactory.cons("Foo", "Expr", XaTreeFactory.leaf("foo", "Literal"));49 IValue result2 = RascalInterpreter.getInstance().eval("cons(\"Foo\", [leaf(\"foo\", \"Literal\")], \"Expr\")", "import XaTree;");50 44 System.out.println("Ready."); 51 45 startTime = System.nanoTime(); … … 61 55 System.out.println("Imploded term equality: " + imploded.toString().equals(imploded2.toString())); 62 56 63 IMap m = XaTreeAdapter.match(imploded, imploded2);64 IValue pattern = XaTreeFactory.cons("Apply", "Expr", ValueFactoryFactory.getValueFactory().list(XaTreeFactory.termvar("f", "Fun"), XaTreeFactory.termvar("as", "Expr")));65 m = XaTreeAdapter.match(pattern, imploded);66 //String up1 = ((IString)RascalInterpreter.getInstance().call("unparse", "import XaTree;", imploded)).getValue();67 //String up2 = ((IString)RascalInterpreter.getInstance().call("unparse", "import XaTree;", imploded2)).getValue();68 57 69 58 try { -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/commands/ViewFlattenedModule.java
r442 r453 13 13 import org.eclipse.ui.IEditorPart; 14 14 import org.eclipse.ui.handlers.HandlerUtil; 15 import org.magnolialang.eclipse.editor.ImplementationError;16 15 import org.magnolialang.eclipse.rascal.RascalInterpreter; 17 16 import org.magnolialang.env.MagnoliaEnvironment; 18 17 import org.magnolialang.errors.CompilationError; 18 import org.magnolialang.errors.ImplementationError; 19 19 import org.magnolialang.load.ProjectURIResolver; 20 20 import org.magnolialang.manager.MagnoliaProjectManager; -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/AmbiguityMarkerModelListener.java
r448 r453 43 43 public void update(IParseController parseController, 44 44 IProgressMonitor monitor) { 45 if(parseController instanceof ParseController) {46 ParseController ctrl = (ParseController)parseController;45 if(parseController instanceof MagnoliaParseController) { 46 MagnoliaParseController ctrl = (MagnoliaParseController)parseController; 47 47 48 48 IConstructor tree = ctrl.getCurrentAst(); -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/MagnoliaEditor.java
r449 r453 19 19 super.createPartControl(parent); 20 20 if(getParseController() != null) 21 (( ParseController)getParseController()).setEditor(this);21 ((MagnoliaParseController)getParseController()).setEditor(this); 22 22 23 23 } … … 32 32 33 33 @Override public void dispose() { 34 (( ParseController)getParseController()).dispose();34 ((MagnoliaParseController)getParseController()).dispose(); 35 35 super.dispose(); 36 36 } -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/MagnoliaParseController.java
r452 r453 20 20 import org.magnolialang.eclipse.MagnoliaPlugin; 21 21 import org.magnolialang.env.MagnoliaEnvironment; 22 import org.magnolialang.errors.ImplementationError; 22 23 import org.magnolialang.errors.SyntaxError; 23 24 import org.magnolialang.load.ModuleLoader; 24 25 import org.magnolialang.load.ProjectURIResolver; 25 26 import org.magnolialang.manager.EditedProjectManager; 26 import org.rascalmpl.values.errors.SummaryAdapter;27 import org.rascalmpl.values.uptr.Factory;28 27 import org.rascalmpl.values.uptr.ParsetreeAdapter; 29 28 30 public class ParseController implements IParseController {29 public class MagnoliaParseController implements IParseController { 31 30 private ModuleLoader loader; 32 31 … … 44 43 private MagnoliaEditor editor; 45 44 46 public ParseController() {45 public MagnoliaParseController() { 47 46 super(); 48 47 } -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/StaticCheckModelListener.java
r452 r453 1 1 package org.magnolialang.eclipse.editor; 2 2 3 import org.eclipse.core.runtime.IProgressMonitor; 4 import org.eclipse.imp.parser.IModelListener; 5 import org.eclipse.imp.parser.IParseController; 6 /* 7 import org.magnolialang.magnolia.StaticChecker; 3 8 import org.eclipse.core.resources.IFile; 4 9 import org.eclipse.core.resources.IMarker; … … 9 14 import org.eclipse.core.runtime.CoreException; 10 15 import org.eclipse.core.runtime.IPath; 11 import org.eclipse.core.runtime.IProgressMonitor;12 import org.eclipse.imp.parser.IModelListener;13 import org.eclipse.imp.parser.IParseController;14 16 import org.eclipse.imp.pdb.facts.IConstructor; 15 17 import org.magnolialang.eclipse.MagnoliaPlugin; 16 18 import org.magnolialang.env.MagnoliaEnvironment; 17 19 import org.magnolialang.errors.CompilationError; 18 import org.magnolialang.magnolia.StaticChecker;19 20 import org.magnolialang.manager.EditedProjectManager; 20 21 import org.magnolialang.manager.MagnoliaProjectManager; 21 22 */ 22 23 public class StaticCheckModelListener implements IModelListener { 23 private final StaticChecker checker = StaticChecker.getInstance();24 // private final StaticChecker checker = StaticChecker.getInstance(); 24 25 25 26 public AnalysisRequired getAnalysisRequired() { -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/TokenIterator.java
r448 r453 5 5 import java.util.List; 6 6 7 import org.eclipse.core.resources.IFile;8 import org.eclipse.core.resources.IMarker;9 import org.eclipse.core.resources.IResource;10 import org.eclipse.core.runtime.CoreException;11 import org.eclipse.core.runtime.IPath;12 import org.eclipse.imp.model.ISourceProject;13 import org.eclipse.imp.parser.IMessageHandler;14 import org.eclipse.imp.parser.IMessageHandlerExtension;15 7 import org.eclipse.imp.pdb.facts.IConstructor; 16 import org.eclipse.imp.pdb.facts.ISet;17 import org.eclipse.imp.pdb.facts.ISourceLocation;18 8 import org.eclipse.imp.pdb.facts.IValue; 19 9 import org.eclipse.imp.pdb.facts.visitors.VisitorException; 20 import org.magnolialang.load.ProjectURIResolver;21 10 import org.rascalmpl.values.uptr.ProductionAdapter; 22 11 import org.rascalmpl.values.uptr.TreeAdapter; -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/hoverHelper/HelperReferenceResolver.java
r448 r453 1 1 package org.magnolialang.eclipse.hoverHelper; 2 2 3 import lpg.runtime.IAst;4 5 3 import org.eclipse.imp.parser.IParseController; 6 import org.eclipse.imp.parser.SimpleLPGParseController;7 import org.eclipse.imp.parser.SymbolTable;8 4 import org.eclipse.imp.services.IReferenceResolver; 9 5 -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/hoverHelper/MagnoliaHoverHelper.java
r448 r453 14 14 import org.eclipse.imp.services.IReferenceResolver; 15 15 import org.eclipse.imp.services.base.HoverHelperBase; 16 import org.eclipse.imp.utils.ExtensionException;17 import org.eclipse.imp.utils.ExtensionFactory;18 16 import org.eclipse.jface.text.BadLocationException; 17 import org.eclipse.jface.text.source.Annotation; 19 18 import org.eclipse.jface.text.source.ISourceViewer; 20 19 … … 34 33 // the given offset, return those 35 34 try { 36 List annotations = AnnotationHoverBase.getSourceAnnotationsForLine(35 List<Annotation> annotations = AnnotationHoverBase.getSourceAnnotationsForLine( 37 36 srcViewer, srcViewer.getDocument().getLineOfOffset(offset)); 38 37 if (annotations != null && annotations.size() > 0) { -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/preferences/MagnoliaInstanceTab.java
r451 r453 3 3 import java.util.List; 4 4 import java.util.ArrayList; 5 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;6 import org.eclipse.core.runtime.preferences.IEclipsePreferences;7 5 import org.eclipse.swt.widgets.Composite; 8 6 import org.eclipse.swt.widgets.Link; 9 7 import org.eclipse.imp.preferences.*; 10 8 import org.eclipse.imp.preferences.fields.*; 11 import org.osgi.service.prefs.Preferences;12 9 13 10 -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/preferences/MagnoliaProjectTab.java
r451 r453 3 3 import java.util.List; 4 4 import java.util.ArrayList; 5 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;6 5 import org.eclipse.core.runtime.preferences.IEclipsePreferences; 7 6 import org.eclipse.swt.widgets.Composite; -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/rascal/RascalInterpreter.java
r424 r453 9 9 import org.eclipse.core.resources.ResourcesPlugin; 10 10 import org.eclipse.imp.pdb.facts.IValue; 11 import org.magnolialang.e clipse.editor.ImplementationError;11 import org.magnolialang.errors.ImplementationError; 12 12 import org.rascalmpl.interpreter.Evaluator; 13 13 import org.rascalmpl.interpreter.env.GlobalEnvironment; -
trunk/MagnoliaPlugin/src/org/magnolialang/errors/ImplementationError.java
r451 r453 1 package org.magnolialang.e clipse.editor;1 package org.magnolialang.errors; 2 2 3 3 import org.eclipse.imp.pdb.facts.ISourceLocation; -
trunk/MagnoliaPlugin/src/org/magnolialang/load/ModuleParser.java
r421 r453 18 18 import org.eclipse.imp.pdb.facts.io.PBFReader; 19 19 import org.magnolialang.eclipse.MagnoliaPlugin; 20 import org.magnolialang.e clipse.editor.ImplementationError;20 import org.magnolialang.errors.ImplementationError; 21 21 import org.rascalmpl.values.ValueFactoryFactory; 22 22 import org.rascalmpl.values.uptr.Factory; -
trunk/MagnoliaPlugin/src/org/magnolialang/manager/EditedModuleInfo.java
r452 r453 5 5 import org.eclipse.imp.pdb.facts.IConstructor; 6 6 import org.eclipse.imp.utils.Pair; 7 import org.magnolialang.eclipse.editor. ParseController;7 import org.magnolialang.eclipse.editor.MagnoliaParseController; 8 8 import org.magnolialang.load.ProjectURIResolver; 9 9 10 10 class EditedModuleInfo extends MagnoliaModuleInfo { 11 private final ParseController ctrl;11 private final MagnoliaParseController ctrl; 12 12 13 public EditedModuleInfo(EditedProjectManager manager, ParseController ctrl) {13 public EditedModuleInfo(EditedProjectManager manager, MagnoliaParseController ctrl) { 14 14 super(manager); 15 15 this.uri = ProjectURIResolver.constructProjectURI(ctrl.getProject(), ctrl.getPath()); -
trunk/MagnoliaPlugin/src/org/magnolialang/manager/EditedProjectManager.java
r452 r453 8 8 import org.eclipse.core.resources.ResourcesPlugin; 9 9 import org.eclipse.imp.model.ISourceProject; 10 import org.magnolialang.eclipse.editor. ImplementationError;11 import org.magnolialang.e clipse.editor.ParseController;10 import org.magnolialang.eclipse.editor.MagnoliaParseController; 11 import org.magnolialang.errors.ImplementationError; 12 12 13 13 public class EditedProjectManager extends MagnoliaProjectManager { 14 14 private static HashMap<String, EditedProjectManager> managerMap; 15 15 protected final MagnoliaProjectManager backManager; 16 protected final Map< ParseController, EditedModuleInfo> ctrlMap;16 protected final Map<MagnoliaParseController, EditedModuleInfo> ctrlMap; 17 17 18 18 public EditedProjectManager(IProject project) { 19 19 super(project); 20 this.ctrlMap = new IdentityHashMap< ParseController, EditedModuleInfo>();20 this.ctrlMap = new IdentityHashMap<MagnoliaParseController, EditedModuleInfo>(); 21 21 this.backManager = MagnoliaProjectManager.getProjectManager(project); 22 22 } … … 43 43 } 44 44 45 public void addEditedModule( ParseController ctrl) {45 public void addEditedModule(MagnoliaParseController ctrl) { 46 46 if(ctrlMap.containsKey(ctrl)) 47 47 ctrlMap.remove(ctrl); … … 53 53 } 54 54 55 public void removeEditedModule( ParseController ctrl) {55 public void removeEditedModule(MagnoliaParseController ctrl) { 56 56 // TODO: Handle multiple editors for same module 57 57 EditedModuleInfo info = ctrlMap.get(ctrl); … … 66 66 } 67 67 68 public String findEditedModule( ParseController ctrl) {68 public String findEditedModule(MagnoliaParseController ctrl) { 69 69 // TODO: Handle multiple editors for same module 70 70 EditedModuleInfo info = ctrlMap.get(ctrl); -
trunk/MagnoliaPlugin/src/org/magnolialang/manager/FileModuleInfo.java
r452 r453 8 8 import org.eclipse.core.resources.IResource; 9 9 import org.eclipse.core.runtime.CoreException; 10 import org.magnolialang.eclipse.MagnoliaPlugin; 11 import org.magnolialang.eclipse.editor.ImplementationError; 10 import org.magnolialang.errors.ImplementationError; 12 11 import org.magnolialang.errors.ModuleNotFoundError; 13 12 import org.magnolialang.load.ProjectURIResolver; -
trunk/MagnoliaPlugin/src/org/magnolialang/manager/MagnoliaModuleInfo.java
r452 r453 4 4 import java.net.URI; 5 5 6 import org.eclipse.core.resources.IFile;7 import org.eclipse.core.resources.IMarker;8 import org.eclipse.core.resources.IResource;9 import org.eclipse.core.runtime.CoreException;10 6 import org.eclipse.imp.pdb.facts.IConstructor; 11 import org.magnolialang.eclipse.MagnoliaPlugin;12 import org.magnolialang.eclipse.editor.ImplementationError;13 import org.magnolialang.eclipse.editor.ParseController;14 7 import org.magnolialang.env.MagnoliaEnvironment; 8 import org.magnolialang.errors.ImplementationError; 15 9 import org.magnolialang.xatree.TreeImploder; 16 10 import org.rascalmpl.values.uptr.ParsetreeAdapter; -
trunk/MagnoliaPlugin/src/org/magnolialang/manager/MagnoliaProjectManager.java
r452 r453 1 1 package org.magnolialang.manager; 2 2 3 import java.io.IOException;4 import java.io.StringBufferInputStream;5 3 import java.net.URI; 6 4 import java.util.HashMap; 7 import java.util.IdentityHashMap;8 5 import java.util.Map; 9 6 … … 18 15 import org.eclipse.imp.pdb.facts.IConstructor; 19 16 import org.eclipse.imp.pdb.facts.ISourceLocation; 20 import org.eclipse.imp.utils.Pair;21 import org.magnolialang.eclipse.editor.ImplementationError;22 17 import org.magnolialang.env.MagnoliaEnvironment; 23 18 import org.magnolialang.errors.CompilationError; 24 import org.magnolialang.errors. ModuleNotFoundError;19 import org.magnolialang.errors.ImplementationError; 25 20 import org.magnolialang.load.IBuildPath; 26 21 import org.magnolialang.load.MagnoliaBuildPath; … … 35 30 * 36 31 */ 37 @SuppressWarnings("deprecation")38 32 public class MagnoliaProjectManager { 39 33 private static Map<String, MagnoliaProjectManager> managerMap; … … 181 175 ce.printStackTrace(); 182 176 } 183 184 public Object getImports(String moduleName) {185 MagnoliaEnvironment env = getModuleEnv(moduleName);186 return null;187 }188 189 177 } -
trunk/MagnoliaPlugin/src/org/magnolialang/xatree/TreeImplodeVisitor.java
r448 r453 4 4 import java.util.regex.Pattern; 5 5 6 import org.eclipse.core.resources.IFile;7 import org.eclipse.core.resources.IMarker;8 import org.eclipse.core.resources.IResource;9 import org.eclipse.core.resources.IResourceRuleFactory;10 import org.eclipse.core.runtime.CoreException;11 import org.eclipse.imp.parser.IMessageHandler;12 6 import org.eclipse.imp.pdb.facts.IConstructor; 13 7 import org.eclipse.imp.pdb.facts.IList; 14 8 import org.eclipse.imp.pdb.facts.IListWriter; 15 9 import org.eclipse.imp.pdb.facts.INode; 16 import org.eclipse.imp.pdb.facts.ISet;17 import org.eclipse.imp.pdb.facts.ISourceLocation;18 10 import org.eclipse.imp.pdb.facts.IString; 19 11 import org.eclipse.imp.pdb.facts.ITuple; … … 25 17 import org.eclipse.imp.pdb.facts.type.TypeStore; 26 18 import org.eclipse.imp.pdb.facts.visitors.VisitorException; 27 import org.magnolialang.eclipse.editor.Token;28 import org.magnolialang.eclipse.editor.TokenColorer;29 import org.magnolialang.load.ProjectURIResolver;30 19 import org.rascalmpl.values.ValueFactoryFactory; 31 20 import org.rascalmpl.values.uptr.Factory; … … 45 34 public static final Type Attr = tf.abstractDataType(uptr, "Attr"); 46 35 public static final Type Attr_Abstract = tf.constructor(uptr, Attr, "selectable"); 47 private static final String AMB_MARKER = "magnolia_eclipse.ambiguityMarker";48 private IMessageHandler handler;49 36 50 37 … … 53 40 */ 54 41 public TreeImplodeVisitor() { 55 this.handler = null; 56 } 57 58 /** 59 * Create a new tree imploder, attached to the file. 60 * @param handler Message handler for reporting errors 61 */ 62 public TreeImplodeVisitor(IMessageHandler handler) { 63 this.handler = handler; 64 } 65 66 42 } 43 44 67 45 @Override 68 46 public IConstructor visitTreeAmb(IConstructor tree) throws VisitorException { -
trunk/MagnoliaPlugin/src/org/magnolialang/xatree/TreeImploder.java
r448 r453 1 1 package org.magnolialang.xatree; 2 2 3 import org.eclipse.core.resources.IFile;4 import org.eclipse.imp.parser.IMessageHandler;5 3 import org.eclipse.imp.pdb.facts.IValue; 6 4 import org.eclipse.imp.pdb.facts.visitors.VisitorException; 7 import org.magnolialang.e clipse.editor.ImplementationError;5 import org.magnolialang.errors.ImplementationError; 8 6 9 7 public class TreeImploder { … … 21 19 } 22 20 } 23 24 /**25 * Implode an AsFix tree to an XaTree, annotating the given file with any errors encountered.26 * @param tree A tree in AsFix format27 * @param file A file, for marker annotations28 * @return An imploded XaTree29 */30 public static IValue implodeTree(IValue tree, IMessageHandler handler) {31 try {32 return tree.accept(new TreeImplodeVisitor(handler));33 } catch (VisitorException e) {34 throw new ImplementationError("Failed to implode parse tree", e);35 }36 }37 38 21 } -
trunk/MagnoliaPlugin/src/org/magnolialang/xatree/XaTreeAdapter.java
r442 r453 14 14 import org.eclipse.imp.pdb.facts.visitors.NullVisitor; 15 15 import org.eclipse.imp.pdb.facts.visitors.VisitorException; 16 import org.magnolialang.e clipse.editor.ImplementationError;16 import org.magnolialang.errors.ImplementationError; 17 17 import org.rascalmpl.values.ValueFactoryFactory; 18 18
Note:
See TracChangeset
for help on using the changeset viewer.