changeset 604:87f09469d337

Moved class Parameter/s to module dil.ast.Parameter.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sun, 06 Jan 2008 01:06:36 +0100
parents fc351756cc84
children 9daa6c34c45a
files trunk/src/dil/ast/Declarations.d trunk/src/dil/ast/Expressions.d trunk/src/dil/ast/Parameter.d trunk/src/dil/ast/Statements.d trunk/src/dil/ast/Types.d trunk/src/dil/parser/Parser.d
diffstat 6 files changed, 76 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/dil/ast/Declarations.d	Sun Jan 06 01:00:43 2008 +0100
+++ b/trunk/src/dil/ast/Declarations.d	Sun Jan 06 01:06:36 2008 +0100
@@ -8,6 +8,7 @@
 import dil.ast.Expressions;
 import dil.ast.Types;
 import dil.ast.Statements;
+import dil.ast.Parameter;
 import dil.lexer.IdTable;
 import dil.semantic.Scope;
 import dil.semantic.Analysis;
--- a/trunk/src/dil/ast/Expressions.d	Sun Jan 06 01:00:43 2008 +0100
+++ b/trunk/src/dil/ast/Expressions.d	Sun Jan 06 01:06:36 2008 +0100
@@ -8,6 +8,7 @@
 import dil.ast.Types;
 import dil.ast.Declarations;
 import dil.ast.Statements;
+import dil.ast.Parameter;
 import dil.lexer.Identifier;
 import dil.semantic.Scope;
 import dil.semantic.Types;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/trunk/src/dil/ast/Parameter.d	Sun Jan 06 01:06:36 2008 +0100
@@ -0,0 +1,71 @@
+/++
+  Author: Aziz Köksal
+  License: GPL3
++/
+module dil.ast.Parameter;
+
+import dil.ast.Node;
+import dil.ast.Types;
+import dil.ast.Expressions;
+import dil.lexer.Identifier;
+import dil.Enums;
+
+class Parameter : Node
+{
+  StorageClass stc;
+  TypeNode type;
+  Identifier* ident;
+  Expression defValue;
+
+  this(StorageClass stc, TypeNode type, Identifier* ident, Expression defValue)
+  {
+    super(NodeCategory.Other);
+    mixin(set_kind);
+    // type can be null when param in foreach statement
+    addOptChild(type);
+    addOptChild(defValue);
+
+    this.stc = stc;
+    this.type = type;
+    this.ident = ident;
+    this.defValue = defValue;
+  }
+
+  /// func(...) or func(int[] values ...)
+  bool isVariadic()
+  {
+    return !!(stc & StorageClass.Variadic);
+  }
+
+  /// func(...)
+  bool isOnlyVariadic()
+  {
+    return stc == StorageClass.Variadic &&
+           type is null && ident is null;
+  }
+}
+
+class Parameters : Node
+{
+  this()
+  {
+    super(NodeCategory.Other);
+    mixin(set_kind);
+  }
+
+  bool hasVariadic()
+  {
+    if (children.length != 0)
+      return items[$-1].isVariadic();
+    return false;
+  }
+
+  void opCatAssign(Parameter param)
+  { addChild(param); }
+
+  Parameter[] items()
+  { return cast(Parameter[])children; }
+
+  size_t length()
+  { return children.length; }
+}
--- a/trunk/src/dil/ast/Statements.d	Sun Jan 06 01:00:43 2008 +0100
+++ b/trunk/src/dil/ast/Statements.d	Sun Jan 06 01:06:36 2008 +0100
@@ -8,6 +8,7 @@
 import dil.ast.Expressions;
 import dil.ast.Declarations;
 import dil.ast.Types;
+import dil.ast.Parameter;
 import dil.lexer.IdTable;
 import dil.semantic.Scope;
 import dil.semantic.Analysis;
--- a/trunk/src/dil/ast/Types.d	Sun Jan 06 01:00:43 2008 +0100
+++ b/trunk/src/dil/ast/Types.d	Sun Jan 06 01:06:36 2008 +0100
@@ -6,71 +6,12 @@
 
 import dil.ast.Node;
 import dil.ast.Expressions;
+import dil.ast.Parameter;
 import dil.lexer.Identifier;
 import dil.Enums;
 import dil.semantic.Scope;
 import dil.semantic.Types;
 
-class Parameter : Node
-{
-  StorageClass stc;
-  TypeNode type;
-  Identifier* ident;
-  Expression defValue;
-
-  this(StorageClass stc, TypeNode type, Identifier* ident, Expression defValue)
-  {
-    super(NodeCategory.Other);
-    mixin(set_kind);
-    // type can be null when param in foreach statement
-    addOptChild(type);
-    addOptChild(defValue);
-
-    this.stc = stc;
-    this.type = type;
-    this.ident = ident;
-    this.defValue = defValue;
-  }
-
-  /// func(...) or func(int[] values ...)
-  bool isVariadic()
-  {
-    return !!(stc & StorageClass.Variadic);
-  }
-
-  /// func(...)
-  bool isOnlyVariadic()
-  {
-    return stc == StorageClass.Variadic &&
-           type is null && ident is null;
-  }
-}
-
-class Parameters : Node
-{
-  this()
-  {
-    super(NodeCategory.Other);
-    mixin(set_kind);
-  }
-
-  bool hasVariadic()
-  {
-    if (children.length != 0)
-      return items[$-1].isVariadic();
-    return false;
-  }
-
-  void opCatAssign(Parameter param)
-  { addChild(param); }
-
-  Parameter[] items()
-  { return cast(Parameter[])children; }
-
-  size_t length()
-  { return children.length; }
-}
-
 class BaseClass : Node
 {
   Protection prot;
--- a/trunk/src/dil/parser/Parser.d	Sun Jan 06 01:00:43 2008 +0100
+++ b/trunk/src/dil/parser/Parser.d	Sun Jan 06 01:06:36 2008 +0100
@@ -10,6 +10,7 @@
 import dil.ast.Statements;
 import dil.ast.Expressions;
 import dil.ast.Types;
+import dil.ast.Parameter;
 import dil.lexer.IdTable;
 import dil.Messages;
 import dil.Information;