changeset 694:19a34b69cc7d

Renamed some members of BinaryExpression and QualifiedType. Added visit(TypeofType) to SemanticPass2.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Tue, 22 Jan 2008 20:56:10 +0100
parents 56100b270897
children 170ddcdc9711
files trunk/src/dil/ast/DefaultVisitor.d trunk/src/dil/ast/Expressions.d trunk/src/dil/ast/Node.d trunk/src/dil/ast/Types.d trunk/src/dil/semantic/Pass2.d trunk/src/dil/translator/German.d
diffstat 6 files changed, 29 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/dil/ast/DefaultVisitor.d	Tue Jan 22 19:34:58 2008 +0100
+++ b/trunk/src/dil/ast/DefaultVisitor.d	Tue Jan 22 20:56:10 2008 +0100
@@ -113,10 +113,10 @@
     {}
     else
     static if (is(E : CondExpression))
-      visitE(e.condition), visitE(e.left), visitE(e.right);
+      visitE(e.condition), visitE(e.lhs), visitE(e.rhs);
     else
     static if (is(E : BinaryExpression))
-      visitE(e.left), visitE(e.right);
+      visitE(e.lhs), visitE(e.rhs);
     else
     static if (is(E : UnaryExpression))
     {
@@ -291,7 +291,7 @@
     //IntegralType,
     //IdentifierType have no subnodes.
     static if (is(T == QualifiedType))
-      visitT(t.left), visitT(t.right);
+      visitT(t.lhs), visitT(t.rhs);
     static if (is(T == TypeofType))
       visitE(t.e);
     static if (is(T == TemplateInstanceType))
--- a/trunk/src/dil/ast/Expressions.d	Tue Jan 22 19:34:58 2008 +0100
+++ b/trunk/src/dil/ast/Expressions.d	Tue Jan 22 20:56:10 2008 +0100
@@ -24,13 +24,14 @@
 
 abstract class BinaryExpression : Expression
 {
-  Expression left, right;
+  Expression lhs; /// Left-hand side expression.
+  Expression rhs; /// Right-hand side expression.
   Token* tok;
-  this(Expression left, Expression right, Token* tok)
+  this(Expression lhs, Expression rhs, Token* tok)
   {
-    addChildren([left, right]);
-    this.left = left;
-    this.right = right;
+    addChildren([lhs, rhs]);
+    this.lhs = lhs;
+    this.rhs = rhs;
     this.tok = tok;
   }
 }
--- a/trunk/src/dil/ast/Node.d	Tue Jan 22 19:34:58 2008 +0100
+++ b/trunk/src/dil/ast/Node.d	Tue Jan 22 20:56:10 2008 +0100
@@ -16,7 +16,7 @@
 {
   NodeCategory category;
   NodeKind kind;
-  Node[] children;
+  Node[] children; // Will be probably removed sometime.
   Token* begin, end;
 
   this(NodeCategory category)
--- a/trunk/src/dil/ast/Types.d	Tue Jan 22 19:34:58 2008 +0100
+++ b/trunk/src/dil/ast/Types.d	Tue Jan 22 20:56:10 2008 +0100
@@ -64,14 +64,14 @@
 /// Type "." Type
 class QualifiedType : TypeNode
 {
-  alias next left;
-  TypeNode right;
-  this(TypeNode left, TypeNode right)
+  alias next lhs; /// Left-hand side type.
+  TypeNode rhs; /// Right-hand side type.
+  this(TypeNode lhs, TypeNode rhs)
   {
-    super(left);
+    super(lhs);
     mixin(set_kind);
-    addChild(right);
-    this.right = right;
+    addChild(rhs);
+    this.rhs = rhs;
   }
 }
 
--- a/trunk/src/dil/semantic/Pass2.d	Tue Jan 22 19:34:58 2008 +0100
+++ b/trunk/src/dil/semantic/Pass2.d	Tue Jan 22 20:56:10 2008 +0100
@@ -102,6 +102,13 @@
     return md;
   }
 
+  T visit(TypeofType t)
+  {
+    t.e = visitE(t.e);
+    t.type = t.e.type;
+    return t;
+  }
+
   T visit(ArrayType t)
   {
     return t;
@@ -125,6 +132,7 @@
       TOK.Ifloat : Types.Ifloat, TOK.Idouble : Types.Idouble, TOK.Ireal : Types.Ireal,
       TOK.Cfloat : Types.Cfloat, TOK.Cdouble : Types.Cdouble, TOK.Creal : Types.Creal, TOK.Void : Types.Void
     ];
+    assert(t.tok in tok2Type);
     t.type = tok2Type[t.tok];
     return t;
   }
@@ -143,9 +151,9 @@
   {
     if (!e.type)
     {
-      e.left = visitE(e.left);
-      e.right = visitE(e.right);
-      e.type = e.right.type;
+      e.lhs = visitE(e.lhs);
+      e.rhs = visitE(e.rhs);
+      e.type = e.rhs.type;
     }
     return e;
   }
--- a/trunk/src/dil/translator/German.d	Tue Jan 22 19:34:58 2008 +0100
+++ b/trunk/src/dil/translator/German.d	Tue Jan 22 20:56:10 2008 +0100
@@ -316,9 +316,9 @@
 
   TypeNode visit(QualifiedType n)
   {
-    visitT(n.left);
+    visitT(n.lhs);
     put(".");
-    visitT(n.right);
+    visitT(n.rhs);
     return n;
   }