Beispiel #1
0
 public virtual void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     if (this.ThrowException)
     {
         throw (System.Exception) this.CreateException(stackAllocExpression);
     }
 }
Beispiel #2
0
 public virtual void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     if (ThrowException)
     {
         throw (Exception)CreateException(stackAllocExpression);
     }
 }
Beispiel #3
0
 public override object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data)
 {
     /*ReturnType returnType = new ReturnType(stackAllocExpression.TypeReference);
      ++returnType.PointerNestingLevel;
      * return returnType;*/
     return(null);
 }
Beispiel #4
0
        public override object Visit(StackAllocExpression stackAllocExpression, object data)
        {
            ReturnType returnType = new ReturnType(stackAllocExpression.Type);

            ++returnType.PointerNestingLevel;
            return(returnType);
        }
Beispiel #5
0
        protected internal override bool DoMatch(AstNode other, PatternMatching.Match match)
        {
            StackAllocExpression o = other as StackAllocExpression;

            return(o != null && this.Type.DoMatch(o.Type, match) &&
                   this.CountExpression.DoMatch(o.CountExpression, match) &&
                   this.Initializer.DoMatch(o.Initializer, match));
        }
        public void StackAllocExpressionTest()
        {
            var vd = ParseUtilCSharp.ParseStatement <VariableDeclarationStatement>("int* a = stackalloc int[100];");
            StackAllocExpression sae = (StackAllocExpression)vd.Variables.Single().Initializer;

            Assert.AreEqual("int", ((PrimitiveType)sae.Type).Keyword);
            Assert.AreEqual(100, ((PrimitiveExpression)sae.CountExpression).Value);
        }
 public virtual object Visit(StackAllocExpression stackAllocExpression, object data)
 {
     Debug.Assert(stackAllocExpression != null);
     Debug.Assert(stackAllocExpression.TypeReference != null);
     Debug.Assert(stackAllocExpression.Expression != null);
     stackAllocExpression.TypeReference.AcceptVisitor(this, data);
     stackAllocExpression.Expression.AcceptVisitor(this, data);
     return(data);
 }
 public override void VisitStackAllocExpression(StackAllocExpression node)
 {
     if (state == SearchState.Propagation)
     {
         canBePropagated = false;
         return;
     }
     base.VisitStackAllocExpression(node);
 }
 public override void VisitStackAllocExpression(StackAllocExpression node)
 {
     if (this.state == ExpressionPropagationStep.ExpressionTreeVisitor.SearchState.Propagation)
     {
         this.canBePropagated = false;
         return;
     }
     this.VisitStackAllocExpression(node);
     return;
 }
Beispiel #10
0
        public override bool VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
        {
            bool result = base.VisitStackAllocExpression(stackAllocExpression);
            var  rr     = stackAllocExpression.GetResolveResult();

            if (rr?.Type is PointerType)
            {
                return(true);
            }
            return(result);
        }
 public virtual object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data)
 {
     throw new global::System.NotImplementedException("StackAllocExpression");
 }
Beispiel #12
0
 public object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data)
 {
     AddError(stackAllocExpression, "StackAlloc is not supported.");
     return(null);
 }
Beispiel #13
0
 public override void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     stackAllocExpression.CountExpression.AcceptVisitor(this);
 }
Beispiel #14
0
 public StringBuilder VisitStackAllocExpression(StackAllocExpression stackAllocExpression, int data)
 {
     throw new SLSharpException("Cannot stack-allocate memory in GLSL.");
 }
 public override object Visit(StackAllocExpression stackAllocExpression, object data)
 {
     ReturnType returnType = new ReturnType(stackAllocExpression.Type);
     ++returnType.PointerNestingLevel;
     return returnType;
 }
		public virtual object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data) {
			Debug.Assert((stackAllocExpression != null));
			Debug.Assert((stackAllocExpression.TypeReference != null));
			Debug.Assert((stackAllocExpression.Expression != null));
			stackAllocExpression.TypeReference.AcceptVisitor(this, data);
			return stackAllocExpression.Expression.AcceptVisitor(this, data);
		}
		public virtual void VisitStackAllocExpression (StackAllocExpression stackAllocExpression)
		{
			VisitChildren (stackAllocExpression);
		}
Beispiel #18
0
		public virtual void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
		{
			DebugExpression(stackAllocExpression);
			StartNode(stackAllocExpression);
			WriteKeyword(StackAllocExpression.StackallocKeywordRole);
			stackAllocExpression.Type.AcceptVisitor(this);
			WriteCommaSeparatedListInBrackets(new[] { stackAllocExpression.CountExpression }, CodeBracesRangeFlags.SquareBrackets);
			EndNode(stackAllocExpression);
		}
Beispiel #19
0
	void VariableInitializer(
#line  1332 "cs.ATG" 
out Expression initializerExpression) {

#line  1333 "cs.ATG" 
		TypeReference type = null; Expression expr = null; initializerExpression = null; 
		if (StartOf(6)) {
			Expr(
#line  1335 "cs.ATG" 
out initializerExpression);
		} else if (la.kind == 16) {
			CollectionInitializer(
#line  1336 "cs.ATG" 
out initializerExpression);
		} else if (la.kind == 106) {
			lexer.NextToken();
			Type(
#line  1337 "cs.ATG" 
out type);
			Expect(18);
			Expr(
#line  1337 "cs.ATG" 
out expr);
			Expect(19);

#line  1337 "cs.ATG" 
			initializerExpression = new StackAllocExpression(type, expr); 
		} else SynErr(191);
	}
Beispiel #20
0
 public UnifiedElement VisitStackAllocExpression(
     StackAllocExpression stackAllocExpression, object data)
 {
     throw new NotImplementedException("StackAllocExpression");
 }
 public virtual ICodeNode VisitStackAllocExpression(StackAllocExpression node)
 {
     node.set_Expression((Expression)this.Visit(node.get_Expression()));
     return(node);
 }
 public Node VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     return(CreateDummy(stackAllocExpression));
 }
Beispiel #23
0
 public override bool VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data)
 {
     base.VisitStackAllocExpression(stackAllocExpression, data);
     return(true);
 }
Beispiel #24
0
 public virtual void VisitStackAllocExpression(StackAllocExpression node)
 {
     Visit(node.Expression);
 }
Beispiel #25
0
 public override object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data)
 {
     return(base.VisitStackAllocExpression(stackAllocExpression, data));
 }
Beispiel #26
0
		public void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
		{
			StartNode(stackAllocExpression);
			WriteKeyword(StackAllocExpression.StackallocKeywordRole);
			stackAllocExpression.Type.AcceptVisitor(this);
			WriteCommaSeparatedListInBrackets(new[] { stackAllocExpression.CountExpression });
			EndNode(stackAllocExpression);
		}
 public override bool VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     base.VisitStackAllocExpression(stackAllocExpression);
     return(true);
 }
 /// <inheritdoc/>
 public virtual void VisitStackAllocExpression(StackAllocExpression syntax)
 {
     VisitNode(syntax);
 }
Beispiel #29
0
 public void VisitStackAllocExpression(StackAllocExpression node)
 {
     NotSupported(node);
 }
Beispiel #30
0
 public override void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     HandleExpressionNode(stackAllocExpression);
 }
Beispiel #31
0
 public void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     throw new NotImplementedException();
 }
Beispiel #32
0
 public virtual void VisitStackAllocExpression(StackAllocExpression node)
 {
     this.Visit(node.get_Expression());
     return;
 }
		public virtual object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data) {
			throw new global::System.NotImplementedException("StackAllocExpression");
		}
 public override object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data)
 {
     return(null);
 }
Beispiel #35
0
 private void VariableInitializer(out Expression initializerExpression)
 {
     TypeReference type = null;
     Expression expr = null;
     initializerExpression = null;
     if (this.StartOf(5))
     {
         this.Expr(out initializerExpression);
     }
     else if (this.la.kind == 0x10)
     {
         this.ArrayInitializer(out initializerExpression);
     }
     else if (this.la.kind == 0x69)
     {
         base.lexer.NextToken();
         this.Type(out type);
         base.Expect(0x12);
         this.Expr(out expr);
         base.Expect(0x13);
         initializerExpression = new StackAllocExpression(type, expr);
     }
     else if (this.la.kind == 0x3e)
     {
         base.lexer.NextToken();
         base.Expect(20);
         this.Type(out type);
         base.Expect(0x15);
         initializerExpression = new DefaultValueExpression(type);
     }
     else
     {
         base.SynErr(0xa7);
     }
 }
 public override void VisitStackAllocExpression(StackAllocExpression syntax)
 {
     _underlyingVisitor.VisitStackAllocExpression(syntax);
 }
Beispiel #37
0
 public StringBuilder VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     throw new NotImplementedException();
 }
Beispiel #38
0
 public virtual ICodeNode VisitStackAllocExpression(StackAllocExpression node)
 {
     node.Expression = (Expression)Visit(node.Expression);
     return(node);
 }
		public virtual object TrackedVisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data) {
			return base.VisitStackAllocExpression(stackAllocExpression, data);
		}
 public virtual void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     if (this.ThrowException)
     {
         throw (Exception)this.CreateException(stackAllocExpression);
     }
 }
Beispiel #41
0
 public JNode VisitStackAllocExpression(StackAllocExpression node)
 {
     throw new NotImplementedException();
 }
		public sealed override object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data) {
			BeginVisit(stackAllocExpression);
			object result = TrackedVisitStackAllocExpression(stackAllocExpression, data);
			EndVisit(stackAllocExpression);
			return result;
		}
Beispiel #43
0
			public override object Visit (StackAlloc stackAllocExpression)
			{
				var result = new StackAllocExpression ();
				
				var location = LocationsBag.GetLocations (stackAllocExpression);
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[0]), "stackalloc".Length), StackAllocExpression.Roles.Keyword);
				result.AddChild (ConvertToType (stackAllocExpression.TypeExpression), StackAllocExpression.Roles.Type);
				if (location != null && location.Count > 1)
					result.AddChild (new CSharpTokenNode (Convert (location[1]), 1), StackAllocExpression.Roles.LBracket);
				result.AddChild ((MonoDevelop.CSharp.Ast.Expression)stackAllocExpression.CountExpression.Accept (this), StackAllocExpression.Roles.Expression);
				if (location != null && location.Count > 2)
					result.AddChild (new CSharpTokenNode (Convert (location[2]), 1), StackAllocExpression.Roles.RBracket);
				return result;
			}
Beispiel #44
0
			public override object Visit (StackAlloc stackAllocExpression)
			{
				var result = new StackAllocExpression ();
				
				var location = LocationsBag.GetLocations (stackAllocExpression);
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[0]), "stackalloc".Length), StackAllocExpression.StackAllocKeywordRole);
				result.AddChild ((INode)stackAllocExpression.TypeExpression.Accept (this), StackAllocExpression.Roles.ReturnType);
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[1]), 1), StackAllocExpression.Roles.LBracket);
				result.AddChild ((INode)stackAllocExpression.CountExpression.Accept (this), StackAllocExpression.Roles.Expression);
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[2]), 1), StackAllocExpression.Roles.RBracket);
				return result;
			}
		public virtual object VisitStackAllocExpression(StackAllocExpression stackAllocExpression, object data) {
			Debug.Assert((stackAllocExpression != null));
			Debug.Assert((stackAllocExpression.TypeReference != null));
			Debug.Assert((stackAllocExpression.Expression != null));
			nodeStack.Push(stackAllocExpression.TypeReference);
			stackAllocExpression.TypeReference.AcceptVisitor(this, data);
			stackAllocExpression.TypeReference = ((TypeReference)(nodeStack.Pop()));
			nodeStack.Push(stackAllocExpression.Expression);
			stackAllocExpression.Expression.AcceptVisitor(this, data);
			stackAllocExpression.Expression = ((Expression)(nodeStack.Pop()));
			return null;
		}
 public override void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
 {
     throw NotSupportedToConsistency();
 }
Beispiel #47
0
        public void VisitStackAllocExpression(StackAllocExpression stackAllocExpression)
        {
            JsonObject expression = CreateJsonExpression(stackAllocExpression);
            AddKeyword(expression, StackAllocExpression.StackallocKeywordRole);
            expression.AddJsonValue("type-info", GenTypeInfo(stackAllocExpression.Type));
            expression.AddJsonValue("count-expression", GetCommaSeparatedList(new[] { stackAllocExpression.CountExpression }));

            Push(expression);
        }