PageRenderTime 31ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/Dependencies/boo/src/Boo.Lang.Compiler/Ast/Impl/SlicingExpressionImpl.cs

https://github.com/w4x/boolangstudio
C# | 199 lines | 142 code | 27 blank | 30 comment | 32 complexity | 7e19b376cfcc1bbbdd02996da416d707 MD5 | raw file
Possible License(s): GPL-2.0
  1. #region license
  2. // Copyright (c) 2003, 2004, 2005 Rodrigo B. de Oliveira (rbo@acm.org)
  3. // All rights reserved.
  4. //
  5. // Redistribution and use in source and binary forms, with or without modification,
  6. // are permitted provided that the following conditions are met:
  7. //
  8. // * Redistributions of source code must retain the above copyright notice,
  9. // this list of conditions and the following disclaimer.
  10. // * Redistributions in binary form must reproduce the above copyright notice,
  11. // this list of conditions and the following disclaimer in the documentation
  12. // and/or other materials provided with the distribution.
  13. // * Neither the name of Rodrigo B. de Oliveira nor the names of its
  14. // contributors may be used to endorse or promote products derived from this
  15. // software without specific prior written permission.
  16. //
  17. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  18. // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  19. // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  20. // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
  21. // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  22. // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  23. // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  24. // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  25. // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26. // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. #endregion
  28. //
  29. // DO NOT EDIT THIS FILE!
  30. //
  31. // This file was generated automatically by astgen.boo.
  32. //
  33. namespace Boo.Lang.Compiler.Ast
  34. {
  35. using System.Collections;
  36. using System.Runtime.Serialization;
  37. [System.Serializable]
  38. public partial class SlicingExpression : Expression
  39. {
  40. protected Expression _target;
  41. protected SliceCollection _indices;
  42. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  43. new public SlicingExpression CloneNode()
  44. {
  45. return Clone() as SlicingExpression;
  46. }
  47. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  48. override public NodeType NodeType
  49. {
  50. get
  51. {
  52. return NodeType.SlicingExpression;
  53. }
  54. }
  55. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  56. override public void Accept(IAstVisitor visitor)
  57. {
  58. visitor.OnSlicingExpression(this);
  59. }
  60. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  61. override public bool Matches(Node node)
  62. {
  63. SlicingExpression other = node as SlicingExpression;
  64. if (null == other) return false;
  65. if (!Node.Matches(_target, other._target)) return NoMatch("SlicingExpression._target");
  66. if (!Node.AllMatch(_indices, other._indices)) return NoMatch("SlicingExpression._indices");
  67. return true;
  68. }
  69. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  70. override public bool Replace(Node existing, Node newNode)
  71. {
  72. if (base.Replace(existing, newNode))
  73. {
  74. return true;
  75. }
  76. if (_target == existing)
  77. {
  78. this.Target = (Expression)newNode;
  79. return true;
  80. }
  81. if (_indices != null)
  82. {
  83. Slice item = existing as Slice;
  84. if (null != item)
  85. {
  86. Slice newItem = (Slice)newNode;
  87. if (_indices.Replace(item, newItem))
  88. {
  89. return true;
  90. }
  91. }
  92. }
  93. return false;
  94. }
  95. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  96. override public object Clone()
  97. {
  98. SlicingExpression clone = (SlicingExpression)FormatterServices.GetUninitializedObject(typeof(SlicingExpression));
  99. clone._lexicalInfo = _lexicalInfo;
  100. clone._endSourceLocation = _endSourceLocation;
  101. clone._documentation = _documentation;
  102. if (_annotations != null) clone._annotations = (Hashtable)_annotations.Clone();
  103. clone._expressionType = _expressionType;
  104. if (null != _target)
  105. {
  106. clone._target = _target.Clone() as Expression;
  107. clone._target.InitializeParent(clone);
  108. }
  109. if (null != _indices)
  110. {
  111. clone._indices = _indices.Clone() as SliceCollection;
  112. clone._indices.InitializeParent(clone);
  113. }
  114. return clone;
  115. }
  116. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  117. override internal void ClearTypeSystemBindings()
  118. {
  119. _annotations = null;
  120. _expressionType = null;
  121. if (null != _target)
  122. {
  123. _target.ClearTypeSystemBindings();
  124. }
  125. if (null != _indices)
  126. {
  127. _indices.ClearTypeSystemBindings();
  128. }
  129. }
  130. [System.Xml.Serialization.XmlElement]
  131. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  132. public Expression Target
  133. {
  134. get
  135. {
  136. return _target;
  137. }
  138. set
  139. {
  140. if (_target != value)
  141. {
  142. _target = value;
  143. if (null != _target)
  144. {
  145. _target.InitializeParent(this);
  146. }
  147. }
  148. }
  149. }
  150. [System.Xml.Serialization.XmlElement]
  151. [System.CodeDom.Compiler.GeneratedCodeAttribute("astgen.boo", "1")]
  152. public SliceCollection Indices
  153. {
  154. get
  155. {
  156. if (_indices == null) _indices = new SliceCollection(this);
  157. return _indices;
  158. }
  159. set
  160. {
  161. if (_indices != value)
  162. {
  163. _indices = value;
  164. if (null != _indices)
  165. {
  166. _indices.InitializeParent(this);
  167. }
  168. }
  169. }
  170. }
  171. }
  172. }