SortedSet: Enable set comparision operations on views, and improve performance
[mono.git] / mcs / class / System / System.Text.RegularExpressions / Regex.jvm.cs
index ea203d241e9f422f0f441c3b6ee3fb7235ae8c15..0578fa46b669a9456b6f3e2545337311573cda59 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-using System;
-using System.Text;
-using System.Collections;
-using System.Reflection;
-using System.Reflection.Emit;
 using System.Runtime.Serialization;
 
-using RegularExpression = System.Text.RegularExpressions.Syntax.RegularExpression;
-using Parser = System.Text.RegularExpressions.Syntax.Parser;
-
-using System.Diagnostics;
-
-
 namespace System.Text.RegularExpressions
 {
        public partial class Regex : ISerializable
@@ -70,7 +59,7 @@ namespace System.Text.RegularExpressions
                        if (machineFactory is InterpreterFactory)
                                return null;
 
-                       return (JvmReMachine) ((JvmReMachineFactory) machineFactory).GetMachine ();
+                       return ((JvmReMachineFactory) machineFactory).GetMachine ();
                }
 
                internal int GetJavaNumberByNetNumber (int netNumber) {
@@ -94,10 +83,23 @@ namespace System.Text.RegularExpressions
                                return;
                        }
 
-                       PatternData patternData = PatternDataBuilder.GetPatternData (pattern, roptions);
+                       PatternData patternData = null;
+                       string errorMessage = null;
+                       try{
+                               patternData = PatternDataBuilder.GetPatternData(pattern, roptions);
+                       }catch(Exception e){
+#if DEBUG
+                               throw;
+#endif
+                               errorMessage = "Creating pattern on JVM failed for pattern " + pattern
+                               + "\n" + e.Message;
+                       }
 
-                       if (patternData == null)
-                               InitNewRegex ();
+                       if (patternData == null){
+                               InitNewRegex();
+                               if (errorMessage != null)
+                                       Console.WriteLine (errorMessage);
+                       }
                        else
                                InitJvmRegex (patternData);