private TypeNode ValueType() { TypeNode itsAST; SourceCodePosition itsPos = _currentToken.SourcePosition; if (_currentToken.Type == Token.TokenType.Int) { itsAST = new IntTypeNode(itsPos); Accept(Token.TokenType.Int); } else if (_currentToken.Type == Token.TokenType.Real) { itsAST = new RealTypeNode(itsPos); Accept(Token.TokenType.Real); } else if (_currentToken.Type == Token.TokenType.String) { itsAST = new StringTypeNode(itsPos); Accept(Token.TokenType.String); } else { itsAST = new BooleanTypeNode(itsPos); Accept(Token.TokenType.Boolean); } return(itsAST); }
public BitwiseOrExpressionNode(ExpressionNode leftExpression, ExpressionNode exclusiveOrExpression, Token token) : base(leftExpression, exclusiveOrExpression, token) { var t = new IntTypeNode(); rules[Utils.Char + "," + Utils.Char] = t; rules[Utils.Char + "," + Utils.Int] = t; rules[Utils.Int + "," + Utils.Char] = t; rules[Utils.Int + "," + Utils.Int] = t; }
public BitwiseAndExpressionNode(ExpressionNode leftExpression, ExpressionNode equalityExpression, Token token) : base(leftExpression, equalityExpression, token) { var t = new IntTypeNode(); rules[Utils.Char + "," + Utils.Char] = t; rules[Utils.Char + "," + Utils.Int] = t; rules[Utils.Int + "," + Utils.Char] = t; rules[Utils.Int + "," + Utils.Int] = t; }
public ShiftExpressionNode(ExpressionNode leftExpression, ExpressionNode additiveExpression, Token token) : base(leftExpression, additiveExpression, token) { var t = new IntTypeNode(); rules[Utils.Char + "," + Utils.Char] = t; rules[Utils.Char + "," + Utils.Int] = t; rules[Utils.Int + "," + Utils.Char] = t; rules[Utils.Int + "," + Utils.Int] = t; }
public ExclusiveOrExpression(ExpressionNode leftExpression, ExpressionNode bitsAnd, Token token) : base(leftExpression, bitsAnd, token) { rules[Utils.Bool + "," + Utils.Bool] = new BoolTypeNode(); var t = new IntTypeNode(); rules[Utils.Char + "," + Utils.Char] = t; rules[Utils.Char + "," + Utils.Int] = t; rules[Utils.Int + "," + Utils.Char] = t; rules[Utils.Int + "," + Utils.Int] = t; }
public AdditiveExpressionNode(ExpressionNode leftExpression, ExpressionNode multExpression, Token token) : base(leftExpression, multExpression, token) { var tInt = new IntTypeNode(); var tFloat = new FloatTypeNode(); rules[Utils.Int + "," + Utils.Int] = tInt; rules[Utils.Int + "," + Utils.Char] = tInt; rules[Utils.Char + "," + Utils.Int] = tInt; rules[Utils.Char + "," + Utils.Char] = tInt; rules[Utils.Float + "," + Utils.Int] = tFloat; rules[Utils.Int + "," + Utils.Float] = tFloat; rules[Utils.Float + "," + Utils.Float] = tFloat; rules[Utils.Float + "," + Utils.Char] = tFloat; rules[Utils.Char + "," + Utils.Float] = tFloat; }
public MultipicativeExpressionNode(ExpressionNode leftExpression, UnaryExpressionNode unaryExpression, Token token) : base(leftExpression, unaryExpression, token) { var tInt = new IntTypeNode(); var tFloat = new FloatTypeNode(); rules[Utils.Int + "," + Utils.Int] = tInt; rules[Utils.Char + "," + Utils.Int] = tInt; rules[Utils.Int + "," + Utils.Char] = tInt; rules[Utils.Int + "," + Utils.Float] = tFloat; rules[Utils.Float + "," + Utils.Int] = tFloat; rules[Utils.Float + "," + Utils.Float] = tFloat; rules[Utils.Float + "," + Utils.Char] = tFloat; rules[Utils.Char + "," + Utils.Float] = tFloat; rules[Utils.Char + "," + Utils.Char] = tInt; }
public object Visit(IntTypeNode n, object o) { return(null); }
public object Visit(IntTypeNode n, object o) { Append("int"); return(null); }