Mercurial > projects > dil
diff trunk/src/Expressions.d @ 242:7ec7ad8df9da
- Changed type of member tok in class BinaryExpression to Token*.
- Added method set() to Parser.
- Classes Parameter and Parameters inherit from Node now.
- Added member stcTok to Parameter. Changed constructor accordingly.
- Added member Other to enum NodeType.
- Added local variable 'begin' to many parse functions. Also calling the set() method to set the begin and end token for the parsed object.
- Fix: in some cases parsing AAs would cause getting caught in an infinite loop.
author | aziz |
---|---|
date | Wed, 01 Aug 2007 10:12:01 +0000 |
parents | deab661906ae |
children | 461e544ebb53 |
line wrap: on
line diff
--- a/trunk/src/Expressions.d Tue Jul 31 14:09:03 2007 +0000 +++ b/trunk/src/Expressions.d Wed Aug 01 10:12:01 2007 +0000 @@ -25,8 +25,8 @@ class BinaryExpression : Expression { Expression left, right; - TOK tok; - this(Expression left, Expression right, TOK tok) + Token* tok; + this(Expression left, Expression right, Token* tok) { this.left = left; this.right = right; @@ -40,194 +40,194 @@ this(Expression condition, Expression left, Expression right) { this.condition = condition; - super(left, right, TOK.Comma); + super(left, right, null); } } class CommaExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.Comma); } + { super(left, right, null); } } class OrOrExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.OrLogical); } + { super(left, right, null); } } class AndAndExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.AndLogical); } + { super(left, right, null); } } class OrExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.OrBinary); } + { super(left, right, null); } } class XorExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.Xor); } + { super(left, right, null); } } class AndExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.AndBinary); } + { super(left, right, null); } } class CmpExpression : BinaryExpression { - this(Expression left, Expression right, TOK tok) + this(Expression left, Expression right, Token* tok) { super(left, right, tok); } } class EqualExpression : CmpExpression { - this(Expression left, Expression right, TOK tok) - { super(left, right, TOK.Equal); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class IdentityExpression : CmpExpression { - this(Expression left, Expression right, TOK tok) + this(Expression left, Expression right, Token* tok) { super(left, right, tok); } } class RelExpression : CmpExpression { - this(Expression left, Expression right, TOK tok) + this(Expression left, Expression right, Token* tok) { super(left, right, tok); } } class InExpression : BinaryExpression { - this(Expression left, Expression right, TOK tok) - { super(left, right, TOK.In); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class LShiftExpression : BinaryExpression { - this(Expression left, Expression right) - { super(left, right, TOK.LShiftAssign); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class RShiftExpression : BinaryExpression { - this(Expression left, Expression right) - { super(left, right, TOK.RShiftAssign); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class URShiftExpression : BinaryExpression { - this(Expression left, Expression right) - { super(left, right, TOK.URShiftAssign); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class PlusExpression : BinaryExpression { - this(Expression left, Expression right) - { super(left, right, TOK.Plus); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class MinusExpression : BinaryExpression { - this(Expression left, Expression right) - { super(left, right, TOK.Minus); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } +} + +class CatExpression : BinaryExpression +{ + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class MulExpression : BinaryExpression { - this(Expression left, Expression right) - { super(left, right, TOK.Mul); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class DivExpression : BinaryExpression { - this(Expression left, Expression right) - { super(left, right, TOK.Div); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class ModExpression : BinaryExpression { - this(Expression left, Expression right) - { super(left, right, TOK.Mod); } -} - -class CatExpression : BinaryExpression -{ - this(Expression left, Expression right) - { super(left, right, TOK.Catenate); } + this(Expression left, Expression right, Token* tok) + { super(left, right, tok); } } class AssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.Assign); } + { super(left, right, null); } } class LShiftAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.LShiftAssign); } + { super(left, right, null); } } class RShiftAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.RShiftAssign); } + { super(left, right, null); } } class URShiftAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.URShiftAssign); } + { super(left, right, null); } } class OrAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.OrAssign); } + { super(left, right, null); } } class AndAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.AndAssign); } + { super(left, right, null); } } class PlusAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.PlusAssign); } + { super(left, right, null); } } class MinusAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.MinusAssign); } + { super(left, right, null); } } class DivAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.DivAssign); } + { super(left, right, null); } } class MulAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.MulAssign); } + { super(left, right, null); } } class ModAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.ModAssign); } + { super(left, right, null); } } class XorAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.XorAssign); } + { super(left, right, null); } } class CatAssignExpression : BinaryExpression { this(Expression left, Expression right) - { super(left, right, TOK.CatAssign); } + { super(left, right, null); } } class UnaryExpression : Expression @@ -275,11 +275,9 @@ class SignExpression : UnaryExpression { - TOK sign; - this(Expression e, TOK sign) + this(Expression e) { super(e); - this.sign = sign; } } @@ -475,9 +473,8 @@ class BoolExpression : Expression { - bool value; - this(bool value) - { this.value = value; } + this() + {} } class IntNumberExpression : Expression @@ -504,9 +501,8 @@ class CharLiteralExpression : Expression { - TOK tok; - this(TOK tok) - { this.tok = tok; } + this() + {} } class StringLiteralsExpression : Expression