00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 namespace Antlr.Runtime.Tree
00037 {
00038 using System;
00039 using IToken = Antlr.Runtime.IToken;
00040
00051 public interface ITreeAdaptor
00052 {
00053
00054
00062 object Create(IToken payload);
00063
00066 object DupNode(object treeNode);
00067
00069 object DupTree(object tree);
00070
00076 object GetNilNode();
00077
00094 object ErrorNode(ITokenStream input, IToken start, IToken stop, RecognitionException e);
00095
00099 bool IsNil(object tree);
00100
00119 void AddChild(object t, object child);
00120
00150 object BecomeRoot(object newRoot, object oldRoot);
00151
00166 object RulePostProcessing(object root);
00167
00186 int GetUniqueID(object node);
00187
00188
00189 #region R e w r i t e R u l e s
00190
00198 object BecomeRoot(IToken newRoot, object oldRoot);
00199
00206 object Create(int tokenType, IToken fromToken);
00207
00214 object Create(int tokenType, IToken fromToken, string text);
00215
00222 object Create(int tokenType, string text);
00223
00224 #endregion
00225
00226 #region C o n t e n t
00227
00229 int GetNodeType(object t);
00230
00232 void SetNodeType(object t, int type);
00233
00234 string GetNodeText(object t);
00235
00237 void SetNodeText(object t, string text);
00238
00239
00251 IToken GetToken(object treeNode);
00252
00263 void SetTokenBoundaries(object t, IToken startToken, IToken stopToken);
00264
00268 int GetTokenStartIndex(object t);
00269
00273 int GetTokenStopIndex(object t);
00274
00275 #endregion
00276
00277 #region N a v i g a t i o n / T r e e P a r s i n g
00278
00280 object GetChild(object t, int i);
00281
00283 void SetChild(object t, int i, object child);
00284
00286 object DeleteChild(object t, int i);
00287
00289 int GetChildCount(object t);
00290
00298 object GetParent(object t);
00299 void SetParent(object t, object parent);
00300
00308 int GetChildIndex(object t);
00309 void SetChildIndex(object t, int index);
00310
00319 void ReplaceChildren(object parent, int startChildIndex, int stopChildIndex, object t);
00320
00321 #endregion
00322 }
00323 }