Merge branch 'ptp_9_1'
Change-Id: I0a9fe14a1dbc3dd45e1276eebc1f55c35b738e7b
Signed-off-by: Greg Watson <g.watson@computer.org>
diff --git a/org.eclipse.photran.cdtinterface/icons/obj16/f_file_obj.gif b/org.eclipse.photran.cdtinterface/icons/obj16/f_file_obj.gif
index ac45f38..5981749 100644
--- a/org.eclipse.photran.cdtinterface/icons/obj16/f_file_obj.gif
+++ b/org.eclipse.photran.cdtinterface/icons/obj16/f_file_obj.gif
Binary files differ
diff --git a/org.eclipse.photran.cdtinterface/plugin.xml b/org.eclipse.photran.cdtinterface/plugin.xml
index 53b9f5e..99e98a6 100644
--- a/org.eclipse.photran.cdtinterface/plugin.xml
+++ b/org.eclipse.photran.cdtinterface/plugin.xml
@@ -450,7 +450,7 @@
activeByDefault="true"
id="org.eclipse.photran.ui.navigator.content"
contentProvider="org.eclipse.cdt.internal.ui.navigator.CNavigatorContentProvider"
- labelProvider="org.eclipse.cdt.internal.ui.navigator.CNavigatorLabelProvider"
+ labelProvider="org.eclipse.photran.internal.cdtinterface.ui.FNavigatorLabelProvider"
name="Fortran Elements"
priority="high">
<triggerPoints>
diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/internal/cdtinterface/errorparsers/GFortranErrorParser.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/internal/cdtinterface/errorparsers/GFortranErrorParser.java
index a31bfc0..81534f8 100644
--- a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/internal/cdtinterface/errorparsers/GFortranErrorParser.java
+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/internal/cdtinterface/errorparsers/GFortranErrorParser.java
@@ -7,6 +7,7 @@
*
* Contributors:
* UIUC - Initial API and implementation
+ * Greg Watson - GFortran 5.x support
*******************************************************************************/
package org.eclipse.photran.internal.cdtinterface.errorparsers;
@@ -20,7 +21,7 @@
import org.eclipse.core.resources.IResource;
/**
- * An error parser for GNU Fortran 4.x
+ * An error parser for GNU Fortran 4.x and 5.x
*
* @author Jeff Overbey
*/
@@ -29,6 +30,9 @@
private static final int MAX_LINES_IN_ERROR_MESSAGE = 10;
/*================================================================================
+ Gfortran 4.x
+ ------------
+
cray-pointers.f90:56.21:
subroutine example3()
@@ -43,13 +47,22 @@
real :: pointee
1
Error: Array 'pointee' at (1) cannot have a deferred shape
+
+ GFortran 5.x:
+ -------------
+
+ delme.f90:4:2:
+
+ i = i + 1
+ 1
+ Error: Named constant 'i' in variable definition context (assignment) at (1)
================================================================================*/
// Filename
// | Line Column
// | | |
// Regex group number 1 2 3 4 5
- private static final Pattern startLine = Pattern.compile("^(In file )?(.+):([0-9]+)(\\.([0-9]+))?:$"); //$NON-NLS-1$
+ private static final Pattern startLine = Pattern.compile("^(In file )?([^:]+):([0-9]+)([\\.:]([0-9]+))?:$"); //$NON-NLS-1$
private static final Pattern errorLine = Pattern.compile("^(Fatal )?Error: .*"); //$NON-NLS-1$
private static final Pattern warningLine = Pattern.compile("^Warning: .*"); //$NON-NLS-1$
@@ -98,7 +111,7 @@
String filename = startLineMatcher.group(2);
int lineNumber = Integer.parseInt(startLineMatcher.group(3));
currentState = new AccumulateErrorMessageLines(filename, lineNumber, line);
- }
+ }
return false;
}
}
diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/internal/cdtinterface/ui/FNavigatorLabelProvider.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/internal/cdtinterface/ui/FNavigatorLabelProvider.java
new file mode 100644
index 0000000..badcd22
--- /dev/null
+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/internal/cdtinterface/ui/FNavigatorLabelProvider.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2018 TODO COMPANY NAME and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * gw6 (TODO COMPANY NAME) - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.photran.internal.cdtinterface.ui;
+
+import org.eclipse.cdt.core.model.IArchiveContainer;
+import org.eclipse.cdt.core.model.IBinary;
+import org.eclipse.cdt.core.model.IBinaryContainer;
+import org.eclipse.cdt.core.model.IBinaryModule;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.internal.ui.cview.CViewMessages;
+import org.eclipse.cdt.internal.ui.navigator.CNavigatorProblemsLabelDecorator;
+import org.eclipse.cdt.internal.ui.viewsupport.AppearanceAwareLabelProvider;
+import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.navigator.ICommonContentExtensionSite;
+import org.eclipse.ui.navigator.ICommonLabelProvider;
+
+/**
+ *
+ * @author gw6
+ */
+@SuppressWarnings("restriction")
+public class FNavigatorLabelProvider extends FViewLabelProvider implements ICommonLabelProvider
+{
+
+ /**
+ * Create a default label provider.
+ */
+ public FNavigatorLabelProvider()
+ {
+ super(AppearanceAwareLabelProvider.DEFAULT_TEXTFLAGS,
+ AppearanceAwareLabelProvider.DEFAULT_IMAGEFLAGS | CElementImageProvider.SMALL_ICONS);
+ addLabelDecorator(new CNavigatorProblemsLabelDecorator());
+ }
+
+ /*
+ * @see org.eclipse.ui.navigator.ICommonLabelProvider#init(org.eclipse.ui.navigator.
+ * ICommonContentExtensionSite)
+ */
+ @Override
+ public void init(ICommonContentExtensionSite extensionSite)
+ {
+ // no-op
+ }
+
+ /*
+ * @see org.eclipse.ui.navigator.IMementoAware#restoreState(org.eclipse.ui.IMemento)
+ */
+ @Override
+ public void restoreState(IMemento memento)
+ {
+ // no-op
+ }
+
+ /*
+ * @see org.eclipse.ui.navigator.IMementoAware#saveState(org.eclipse.ui.IMemento)
+ */
+ @Override
+ public void saveState(IMemento memento)
+ {
+ // no-op
+ }
+
+ /*
+ * @see org.eclipse.ui.navigator.IDescriptionProvider#getDescription(java.lang.Object)
+ */
+ @Override
+ public String getDescription(Object element)
+ {
+ if (element instanceof IResource)
+ {
+ return ((IResource)element).getFullPath().makeRelative().toString();
+ }
+ else if (element instanceof ICElement)
+ {
+ ICElement celement = (ICElement)element;
+ IResource res = celement.getAdapter(IResource.class);
+ if (res != null)
+ {
+ return res.getFullPath().toString();
+ }
+ else if (celement.getElementType() == ICElement.C_VCONTAINER)
+ {
+ if (celement instanceof IBinaryContainer)
+ {
+ ICProject cproj = celement.getCProject();
+ if (cproj != null) { return cproj.getPath() + CViewMessages.CView_binaries; }
+ }
+ else if (celement instanceof IArchiveContainer)
+ {
+ ICProject cproj = celement.getCProject();
+ if (cproj != null) { return cproj.getPath() + CViewMessages.CView_archives; }
+ }
+ else if (celement instanceof IBinaryModule)
+ {
+ IBinary bin = ((IBinaryModule)celement).getBinary();
+ return bin.getPath() + ":" + celement.getElementName(); //$NON-NLS-1$
+ }
+ }
+ else if (celement
+ .getElementType() > ICElement.C_UNIT) { return celement.getPath().toString()
+ + " - [" + celement.getElementName() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ return celement.getElementName();
+ }
+ else if (element instanceof IWorkbenchAdapter)
+ {
+ IWorkbenchAdapter wAdapter = (IWorkbenchAdapter)element;
+ return wAdapter.getLabel(element);
+ }
+ return null;
+ }
+
+}
diff --git a/org.eclipse.photran.ui/.classpath b/org.eclipse.photran.ui/.classpath
index deb6736..b277a8a 100644
--- a/org.eclipse.photran.ui/.classpath
+++ b/org.eclipse.photran.ui/.classpath
@@ -2,6 +2,6 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/org.eclipse.photran.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.photran.ui/.settings/org.eclipse.jdt.core.prefs
index bc13f2e..1d33f3f 100644
--- a/org.eclipse.photran.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.photran.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,9 +1,8 @@
-#Tue Nov 01 15:52:43 CDT 2011
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -74,7 +73,7 @@
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=20