Browse Source
Re-enabled debugger tooltips. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2842 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
7 changed files with 129 additions and 8 deletions
@ -0,0 +1,41 @@
@@ -0,0 +1,41 @@
|
||||
// <file>
|
||||
// <copyright license="BSD-new" see="prj:///COPYING"/>
|
||||
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
|
||||
using Debugger; |
||||
|
||||
namespace Debugger.Expressions |
||||
{ |
||||
public class SimpleIdentifierExpression: Expression |
||||
{ |
||||
string identifier; |
||||
|
||||
public string Identifier { |
||||
get { return identifier; } |
||||
} |
||||
|
||||
public SimpleIdentifierExpression(string identifier) |
||||
{ |
||||
this.identifier = identifier; |
||||
} |
||||
|
||||
public override string Code { |
||||
get { |
||||
return identifier; |
||||
} |
||||
} |
||||
|
||||
protected override Value EvaluateInternal(StackFrame context) |
||||
{ |
||||
Value value = context.GetValue(identifier); |
||||
if (value == null) { |
||||
throw new GetValueException("Identifier " + identifier + " not found"); |
||||
} |
||||
return value; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,44 @@
@@ -0,0 +1,44 @@
|
||||
// <file>
|
||||
// <copyright license="BSD-new" see="prj:///COPYING"/>
|
||||
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
|
||||
using Debugger; |
||||
|
||||
namespace Debugger.Expressions |
||||
{ |
||||
public class SimpleMemberReferenceExpression: Expression |
||||
{ |
||||
Expression targetObject; |
||||
string member; |
||||
|
||||
public Expression TargetObject { |
||||
get { return targetObject; } |
||||
} |
||||
|
||||
public string Member { |
||||
get { return member; } |
||||
} |
||||
|
||||
public SimpleMemberReferenceExpression(Expression targetObject, string member) |
||||
{ |
||||
this.targetObject = targetObject; |
||||
this.member = member; |
||||
} |
||||
|
||||
public override string Code { |
||||
get { |
||||
return targetObject.Code + "." + member; |
||||
} |
||||
} |
||||
|
||||
protected override Value EvaluateInternal(StackFrame context) |
||||
{ |
||||
Value targetValue = targetObject.Evaluate(context); |
||||
return targetValue.GetMemberValue(member); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
// <file>
|
||||
// <copyright license="BSD-new" see="prj:///COPYING"/>
|
||||
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
|
||||
using Debugger; |
||||
|
||||
namespace Debugger.Expressions |
||||
{ |
||||
public static class SimpleParser |
||||
{ |
||||
public static Expression Parse(string code) |
||||
{ |
||||
int dotIndex = code.LastIndexOf('.'); |
||||
if (dotIndex == -1) { |
||||
return new SimpleIdentifierExpression(code); |
||||
} else { |
||||
string member = code.Substring(dotIndex + 1); |
||||
string target = code.Substring(0, dotIndex); |
||||
return new SimpleMemberReferenceExpression(Parse(target), member); |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue