[svn] r6629: nemerle/trunk/ncc: hierarchy/ClassMembers.n
parsing/MainParser.n passes.n
VladD2
svnadmin at nemerle.org
Fri Sep 8 12:24:34 CEST 2006
Log:
Fix parsing method body (which contains implicit match) in completion mode.
Author: VladD2
Date: Fri Sep 8 12:24:28 2006
New Revision: 6629
Modified:
nemerle/trunk/ncc/hierarchy/ClassMembers.n
nemerle/trunk/ncc/parsing/MainParser.n
nemerle/trunk/ncc/passes.n
Modified: nemerle/trunk/ncc/hierarchy/ClassMembers.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/ClassMembers.n (original)
+++ nemerle/trunk/ncc/hierarchy/ClassMembers.n Fri Sep 8 12:24:28 2006
@@ -632,6 +632,8 @@
[Accessor (flags = Override)]
protected body_location : Location;
+ [Accessor] _parsedFunction : PT.ClassMember.Function;
+
is_var_args : bool;
public GetMethodBase () : SR.MethodBase
@@ -714,7 +716,10 @@
public this (par : TypeBuilder, f : PT.ClassMember.Function)
{
- this (par, f, false)
+ this (par, f, false);
+
+ //when (Manager.IsInCompletionMode)
+ _parsedFunction = f;
}
public this (par : TypeBuilder, f : PT.ClassMember.Function, is_property : bool)
Modified: nemerle/trunk/ncc/parsing/MainParser.n
==============================================================================
--- nemerle/trunk/ncc/parsing/MainParser.n (original)
+++ nemerle/trunk/ncc/parsing/MainParser.n Fri Sep 8 12:24:28 2006
@@ -149,6 +149,27 @@
}
}
+ /// Parse function boby expression given lexer producing its content
+ /// and context in which this expression is situated.
+ public static ParseExpr (
+ [NotNull] env : GlobalEnv,
+ [NotNull] lexer : LexerBase,
+ [NotNull] funHeader : Fun_header
+ ) : PExpr
+ {
+ def preparser = PreParser (lexer);
+ def tokens = preparser.PreParse ();
+ def parser = MainParser (env);
+
+ def tokens2 = match (tokens)
+ {
+ | BracesGroup(LooseGroup(BracesGroup as group)) => group
+ | _ => tokens
+ };
+
+ parser.parse_block (tokens2, funHeader.parms);
+ }
+
/** Parse well formed source code of toplevel program, using the given instance
of [LexerBase] for obtaining tokens.
*/
Modified: nemerle/trunk/ncc/passes.n
==============================================================================
--- nemerle/trunk/ncc/passes.n (original)
+++ nemerle/trunk/ncc/passes.n Fri Sep 8 12:24:28 2006
@@ -283,9 +283,7 @@
protected mutable _isInCompletionMode : bool = false;
- public IsInCompletionMode : bool {
- get { _isInCompletionMode }
- }
+ public IsInCompletionMode : bool { get { _isInCompletionMode } }
ProgressBar (stage : int) : void
{
More information about the svn
mailing list