浏览代码

[java] add line position comments to help debugging

Cauê Waneck 11 年之前
父节点
当前提交
80cd4df9a5
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. 10 1
      genjava.ml

+ 10 - 1
genjava.ml

@@ -1161,6 +1161,15 @@ let configure gen =
 		| _ -> t
 	in
 
+	let line_directive =
+		if Common.defined gen.gcon Define.RealPosition then
+			fun w p -> ()
+		else fun w p ->
+			let cur_line = Lexer.get_error_line p in
+			let file = Common.get_full_path p.pfile in
+			print w "//line %d \"%s\"" cur_line (Ast.s_escape file); newline w
+	in
+
 	let expr_s w e =
 		in_value := false;
 		let rec expr_s w e =
@@ -1404,11 +1413,11 @@ let configure gen =
 						if cur_line <> ((!last_line)+1) then begin print w "//#line %d \"%s\"" cur_line (Ast.s_escape file); newline w end;
 						last_line := cur_line in*)
 					List.iter (fun e ->
-						(*line_directive e.epos;*)
 						in_value := false;
 						(match e.eexpr with
 						| TConst _ -> ()
 						| _ ->
+							line_directive w e.epos;
 							expr_s w e;
 							(if has_semicolon e then write w ";");
 							newline w);