14 using System.Collections.Generic;
20 using Irony.Interpreter;
22 namespace Irony.Interpreter.Ast {
40 EvaluateRef = this.EvaluateNode;
44 #region IAstNodeInit Members
46 this.Term = treeNode.Term;
48 ErrorAnchor = this.Location;
49 treeNode.AstNode =
this;
50 AsString = (Term == null ? this.GetType().Name : Term.Name);
54 #region IInterpretedAstNode Members
61 EvaluateRef(context, mode);
77 #region IBrowsableAstNode Members
82 get {
return Span.Location; }
86 #region properties: Parent, Term, Span, Caption, Role, Flags, ChildNodes, Attributes
101 public string AsString {
get;
protected set; }
109 #region Utility methods: AddChild, SetParent, FlagIsSet ...
115 child.SetParent(
this);
116 ChildNodes.Add(child);
125 return (
Flags & flag) != 0;
131 return string.IsNullOrEmpty(Role) ? AsString : Role +
": " + AsString;
138 #region Visitors, Iterators
141 visitor.BeginVisit(
this);
142 if (ChildNodes.Count > 0)
143 foreach(
AstNode node
in ChildNodes)
144 node.AcceptVisitor(visitor);
145 visitor.EndVisit(
this);
156 foreach (
AstNode child
in this.ChildNodes)
virtual System.Collections.IEnumerable GetChildNodes()
static string ErrInvalidAstMode
Looks up a localized string similar to Invalid AstMode value in call to Evaluate method. Node: {0}, mode: {1}..
virtual void Init(ParsingContext context, ParseTreeNode treeNode)
bool FlagIsSet(AstNodeFlags flag)
A strongly-typed resource class, for looking up localized strings, etc.
virtual SourceLocation GetErrorAnchor()
AstNode AddChild(string role, ParseTreeNode childParseNode)
Flags
Enumeration of the new Assimp's flags.
virtual void EvaluateNode(EvaluationContext context, AstMode mode)
delegate void NodeEvaluate(EvaluationContext context, AstMode mode)
void InvalidAstMode(string mode)
override string ToString()
void SetParent(AstNode parent)
virtual void Evaluate(EvaluationContext context, AstMode mode)
virtual void AcceptVisitor(IAstVisitor visitor)
SourceLocation ErrorAnchor
IEnumerable< AstNode > GetAll()