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 namespace Antlr.Runtime.Tree
00036 {
00037 using System;
00038 using CommonToken = Antlr.Runtime.CommonToken;
00039 using IToken = Antlr.Runtime.IToken;
00040
00051 public class CommonTreeAdaptor : BaseTreeAdaptor
00052 {
00060 public override object DupNode(object t)
00061 {
00062 if (t == null)
00063 {
00064 return null;
00065 }
00066 return ((ITree)t).DupNode();
00067 }
00068
00069 public override object Create(IToken payload)
00070 {
00071 return new CommonTree(payload);
00072 }
00073
00084 public override IToken CreateToken(int tokenType, string text)
00085 {
00086 return new CommonToken(tokenType, text);
00087 }
00088
00105 public override IToken CreateToken(IToken fromToken)
00106 {
00107 return new CommonToken(fromToken);
00108 }
00109
00117 public override void SetTokenBoundaries(object t, IToken startToken, IToken stopToken)
00118 {
00119 if (t == null)
00120 {
00121 return ;
00122 }
00123
00124 int start = 0;
00125 int stop = 0;
00126 if (startToken != null)
00127 {
00128 start = startToken.TokenIndex;
00129 }
00130 if (stopToken != null)
00131 {
00132 stop = stopToken.TokenIndex;
00133 }
00134 ((ITree) t).TokenStartIndex = start;
00135 ((ITree) t).TokenStopIndex = stop;
00136 }
00137
00138 override public int GetTokenStartIndex(object t)
00139 {
00140 if (t == null)
00141 {
00142 return -1;
00143 }
00144 return ((ITree)t).TokenStartIndex;
00145 }
00146
00147 override public int GetTokenStopIndex(object t)
00148 {
00149 if (t == null)
00150 {
00151 return -1;
00152 }
00153 return ((ITree)t).TokenStopIndex;
00154 }
00155
00156 override public string GetNodeText(object t)
00157 {
00158 if (t == null)
00159 {
00160 return null;
00161 }
00162 return ((ITree)t).Text;
00163 }
00164
00165 override public int GetNodeType(object t)
00166 {
00167 if (t == null)
00168 {
00169 return Token.INVALID_TOKEN_TYPE;
00170 }
00171 return ((ITree)t).Type;
00172 }
00173
00181 override public IToken GetToken(object treeNode)
00182 {
00183 if ( treeNode is CommonTree )
00184 {
00185 return ((CommonTree)treeNode).Token;
00186 }
00187 return null;
00188 }
00189
00190 override public object GetChild(object t, int i)
00191 {
00192 if (t == null)
00193 {
00194 return null;
00195 }
00196 return ((ITree)t).GetChild(i);
00197 }
00198
00199 override public int GetChildCount(object t)
00200 {
00201 if (t == null)
00202 {
00203 return 0;
00204 }
00205 return ((ITree)t).ChildCount;
00206 }
00207
00208 override public object GetParent(object t)
00209 {
00210 return ((ITree)t).Parent;
00211 }
00212
00213 override public void SetParent(object t, object parent)
00214 {
00215 ((ITree)t).Parent = (ITree)parent;
00216 }
00217
00218 override public int GetChildIndex(object t)
00219 {
00220 return ((ITree)t).ChildIndex;
00221 }
00222
00223 override public void SetChildIndex(object t, int index)
00224 {
00225 ((ITree)t).ChildIndex = index;
00226 }
00227
00228 override public void ReplaceChildren(object parent, int startChildIndex, int stopChildIndex, object t)
00229 {
00230 if (parent != null)
00231 {
00232 ((ITree)parent).ReplaceChildren(startChildIndex, stopChildIndex, t);
00233 }
00234 }
00235 }
00236 }