Improved intrinsic procedure descriptions in Fortran Declaration view
diff --git a/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Intrinsic.java b/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Intrinsic.java
index 1477108..bb60858 100644
--- a/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Intrinsic.java
+++ b/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/analysis/binding/Intrinsic.java
@@ -50,6 +50,18 @@
 //            return false;
 //        }
 
+    @Override
+    public String describe()
+    {
+        String canonicalizedName = PhotranVPG.canonicalizeIdentifier(declaredName);
+        
+        IntrinsicProcDescription proc = Intrinsics.get(canonicalizedName);
+        if (proc == null)
+            return "";
+        else
+            return proc.toString();
+    }
+
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     // BINDING RESOLUTION
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/org.eclipse.photran.core/src/org/eclipse/photran/internal/core/intrinsics/IntrinsicProcDescription.java b/org.eclipse.photran.core/src/org/eclipse/photran/internal/core/intrinsics/IntrinsicProcDescription.java
index 21c17fd..6a80bff 100644
--- a/org.eclipse.photran.core/src/org/eclipse/photran/internal/core/intrinsics/IntrinsicProcDescription.java
+++ b/org.eclipse.photran.core/src/org/eclipse/photran/internal/core/intrinsics/IntrinsicProcDescription.java
@@ -54,8 +54,19 @@
     
     public String toString()
     {
-        return "! (Intrinsic Procedure) " + description + "\n" //$NON-NLS-1$ //$NON-NLS-2$
-             + "! Usage: " + genericName + args + "\n";               //$NON-NLS-1$ //$NON-NLS-2$
+        StringBuilder sb = new StringBuilder();
+        
+        sb.append("! "); sb.append(description); sb.append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+        sb.append("!\n"); //$NON-NLS-1$
+        sb.append("! Usage: "); sb.append(genericName); sb.append(args); sb.append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+//        for (String form : getAllForms())
+//        {
+//            sb.append("!     "); sb.append(form); sb.append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+//        }
+        sb.append("!\n"); //$NON-NLS-1$
+        sb.append("INTRINSIC "); sb.append(genericName); sb.append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+        
+        return sb.toString();
     }
 
     /**
diff --git a/org.eclipse.photran.core/src/org/eclipse/photran/internal/core/intrinsics/Intrinsics.java b/org.eclipse.photran.core/src/org/eclipse/photran/internal/core/intrinsics/Intrinsics.java
index ad4210a..119e269 100644
--- a/org.eclipse.photran.core/src/org/eclipse/photran/internal/core/intrinsics/Intrinsics.java
+++ b/org.eclipse.photran.core/src/org/eclipse/photran/internal/core/intrinsics/Intrinsics.java
@@ -32,7 +32,18 @@
     private Intrinsics() {;}
     
     private static TreeSet<IntrinsicProcDescription> intrinsicProcedures = null;
-    
+
+    public static IntrinsicProcDescription get(String identifier)
+    {
+        String target = identifier.toUpperCase();
+        
+        for (IntrinsicProcDescription proc : intrinsicProcedures)
+            if (proc.genericName.toUpperCase().equals(target))
+                return proc;
+        
+        return null;
+    }
+
     public static TreeSet<IntrinsicProcDescription> getAllIntrinsicProcedures()
     {
         if (intrinsicProcedures == null) loadData();