Merge: UTF-8 Regex
[nit.git] / contrib / objcwrapper / src / objcwrapper.nit
index 71e86ed..28746d8 100644 (file)
@@ -45,6 +45,7 @@ end
 
 var v = new ObjcVisitor
 
+var failed_parsing = new Array[String]
 for src in opts.rest do
        # Read input
        var content = src.preprocess_content
@@ -61,15 +62,8 @@ for src in opts.rest do
                var pos = root.position
                print_error "Syntax Error: {root.message}, at {pos or else ""}"
                print_error "in {src}"
-               if pos != null then
-                       var lines = content.split("\n")
-                       for line in [pos.line_start..pos.line_end] do
-                               print_error lines[line-1]
-                       end
-
-                       var ptr = " "*(pos.col_start-1).max(0) + "^"*(pos.col_end-pos.col_start)
-                       print_error ptr
-               end
+               if pos != null then print_error pos.underline(content)
+               failed_parsing.add src
                continue
        end
 
@@ -79,3 +73,8 @@ end
 
 var g = new CodeGenerator(v.model)
 g.generate
+
+if failed_parsing.not_empty then
+       print_error "Failed to parse {failed_parsing.length}/{opts.rest.length} files:"
+       print_error failed_parsing.join(" ")
+end