[svn] r7471: nemerle/trunk/ncc: generation/DecisionTreeCompiler.n
generation/ILEmitter.n parsing/MainParse...
IT
svnadmin at nemerle.org
Fri Feb 23 07:23:39 CET 2007
Log:
Working on debug locations.
Author: IT
Date: Fri Feb 23 07:23:36 2007
New Revision: 7471
Modified:
nemerle/trunk/ncc/generation/DecisionTreeCompiler.n
nemerle/trunk/ncc/generation/ILEmitter.n
nemerle/trunk/ncc/parsing/MainParser-Extensions.n
Modified: nemerle/trunk/ncc/generation/DecisionTreeCompiler.n
==============================================================================
--- nemerle/trunk/ncc/generation/DecisionTreeCompiler.n (original)
+++ nemerle/trunk/ncc/generation/DecisionTreeCompiler.n Fri Feb 23 07:23:36 2007
@@ -295,7 +295,7 @@
build_path_expression (path : Path) : TExpr
{
| Here =>
- val.loc = Location.Default; // try to not confuse debugger with back reference location
+ //val.loc = Location.Default; // try to not confuse debugger with back reference location
val
| Field (f, p) =>
@@ -449,7 +449,7 @@
else
(Cast (compare_to, literal.GetInternalType (compare_to.Type.Manager.InternalType)),
TExpr.Literal (literal));
- TExpr.Call (InternalType.Boolean, method, [Parm (compare_to), Parm (lit)], false)
+ TExpr.Call (compare_to.Location, InternalType.Boolean, method, [Parm (compare_to), Parm (lit)], false)
}
/**
Modified: nemerle/trunk/ncc/generation/ILEmitter.n
==============================================================================
--- nemerle/trunk/ncc/generation/ILEmitter.n (original)
+++ nemerle/trunk/ncc/generation/ILEmitter.n Fri Feb 23 07:23:36 2007
@@ -503,6 +503,11 @@
}
}
+ private _debug(loc : Located) : void
+ {
+ _ = loc.Location;
+ }
+
/**
* Emits an expression.
*/
@@ -634,10 +639,12 @@
}
}
- when (IsDebugEnabled) {
- Mark (expr.loc);
- _ilg.Emit (OpCodes.Nop);
- }
+ // IT: this code is very questionable.
+ //when (IsDebugEnabled) {
+ // Mark (expr.loc);
+ // _ilg.Emit (OpCodes.Nop);
+ //}
+
def label_condition_else = _ilg.DefineLabel ();
def label_condition_fi = _ilg.DefineLabel ();
emit_branch (cond_expr, label_condition_else);
Modified: nemerle/trunk/ncc/parsing/MainParser-Extensions.n
==============================================================================
--- nemerle/trunk/ncc/parsing/MainParser-Extensions.n (original)
+++ nemerle/trunk/ncc/parsing/MainParser-Extensions.n Fri Feb 23 07:23:36 2007
@@ -272,7 +272,9 @@
def (end, parms) = parse_grammar_rule (tree, stop, (1 << 15) :> MacroTargets);
match (end) {
| GrammarElement.End (definition) =>
- PExpr.MacroCall (loc.Combine(last_tok.Location), mkname (nm, loc), definition.MacroNamespace,
+ def mloc = loc.Combine(last_tok.Location);
+ def mloc = parms.FoldLeft(mloc, (e, l) => l.Combine(e.Location));
+ PExpr.MacroCall (mloc, mkname (nm, mloc), definition.MacroNamespace,
definition.Permute (parms))
| _ =>
fatal_error (loc, "unable to parse syntax rule, stopped at: " + end.ToString ())
More information about the svn
mailing list