[svn] r7756: nemerle/trunk/ncc: generation/DecisionTreeCompiler.n
misc/PrettyPrint.n parsing/MainParser.n ...
IT
svnadmin at nemerle.org
Wed Aug 8 06:15:52 CEST 2007
Log:
Working on debugging.
Author: IT
Date: Wed Aug 8 06:15:47 2007
New Revision: 7756
Modified:
nemerle/trunk/ncc/generation/DecisionTreeCompiler.n
nemerle/trunk/ncc/misc/PrettyPrint.n
nemerle/trunk/ncc/parsing/MainParser.n
nemerle/trunk/ncc/parsing/Utility.n
nemerle/trunk/ncc/typing/DecisionTreeBuilder.n
Modified: nemerle/trunk/ncc/generation/DecisionTreeCompiler.n
==============================================================================
--- nemerle/trunk/ncc/generation/DecisionTreeCompiler.n (original)
+++ nemerle/trunk/ncc/generation/DecisionTreeCompiler.n Wed Aug 8 06:15:47 2007
@@ -288,8 +288,15 @@
get_debug_loc (decision : Decision) : Location
{
- if (Manager.Options.EmitDebug && decision is Decision.Success && !decision.Location.IsGeneratedOrEmpty)
- decision.Location;
+ if (Manager.Options.EmitDebug && !decision.Location.IsGeneratedOrEmpty)
+ {
+ match (decision)
+ {
+ | Success
+ | Assign => decision.Location;
+ | _ => Location.Default;
+ }
+ }
else
Location.Default;
}
Modified: nemerle/trunk/ncc/misc/PrettyPrint.n
==============================================================================
Modified: nemerle/trunk/ncc/parsing/MainParser.n
==============================================================================
--- nemerle/trunk/ncc/parsing/MainParser.n (original)
+++ nemerle/trunk/ncc/parsing/MainParser.n Wed Aug 8 06:15:47 2007
@@ -1713,13 +1713,13 @@
| "=" => PExpr.Assign (loc, e1, e2)
| ":" => PExpr.TypeEnforcement (loc, e1, e2)
| ":>" => PExpr.TypeConversion (loc, e1, e2)
- | "::" => Util.locate (loc, <[ list.Cons ($e1, $e2) ]>)
+ | "::" => Util.set (loc, <[ list.Cons ($e1, $e2) ]>);
| "as" => PExpr.As (loc, e1, make_splicable (e2))
| "where" => PExpr.Where (loc, e1, e2)
| "is" => PExpr.Is (loc, e1, e2)
| "matches" =>
- Util.locate (loc, <[ match ($e1) { | $e2 => true | _ => false } ]>)
+ Util.set (loc, <[ match ($e1) { | $e2 => true | _ => false } ]>)
| _ => PExpr.Call (loc, PExpr.Ref (op_loc, mkname (name)), [e1, e2])
}
Modified: nemerle/trunk/ncc/parsing/Utility.n
==============================================================================
--- nemerle/trunk/ncc/parsing/Utility.n (original)
+++ nemerle/trunk/ncc/parsing/Utility.n Wed Aug 8 06:15:47 2007
@@ -152,6 +152,12 @@
<[ $expr . $(name : dyn) ]>
})
}
+
+ public set (loc : Location, expr : Parsetree.PExpr) : Parsetree.PExpr
+ {
+ expr.Location = loc;
+ expr;
+ }
}
[ManagerAccess (ManagerClass.Instance)]
Modified: nemerle/trunk/ncc/typing/DecisionTreeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/typing/DecisionTreeBuilder.n (original)
+++ nemerle/trunk/ncc/typing/DecisionTreeBuilder.n Wed Aug 8 06:15:47 2007
@@ -666,7 +666,7 @@
| Decision.IfEq (_, Con.Guard, _, _) => Decision.Assign (dtree.Location, path, decl, dtree)
| Decision.IfEq (p, con, if_true, if_false) =>
- def assign = Decision.Assign (dtree.Location, path, decl, if_true);
+ def assign = Decision.Assign (if_true.Location, path, decl, if_true);
Decision.IfEq (dtree.Location, p, con, assign, if_false);
| Decision.Success
More information about the svn
mailing list