protected virtual void VisitCaseSyntax(CaseSyntax pNode) { foreach (var c in pNode.Conditions) { Visit(c); } Visit(pNode.Body); }
protected virtual SyntaxNode VisitCaseSyntax(CaseSyntax pNode) { List <SyntaxNode> conditions = new List <SyntaxNode>(pNode.Conditions.Count); foreach (var c in pNode.Conditions) { conditions.Add(Visit(c)); } return(SyntaxFactory.Case(conditions, (BlockSyntax)Visit(pNode.Body))); }
protected override void VisitCaseSyntax(CaseSyntax pNode) { var caseType = Store.GetValue <SmallType>("CaseType"); foreach (var c in pNode.Conditions) { if (!CanCast(caseType, c.Type)) { CompilerErrors.TypeCastError(c.Type, caseType, pNode.Span); } } base.VisitCaseSyntax(pNode); }
protected override void VisitCaseSyntax(CaseSyntax pNode) { _locals.AddScope(); foreach (var c in pNode.Conditions) { Visit(c); } using (var iw = Store.AddValue("CanBreak", true)) { _breakCount++; Visit(pNode.Body); _breakCount--; } _locals.RemoveScope(); }
public virtual void Visit(CaseSyntax caseSyntax) { Visit(caseSyntax.Expression); Visit(caseSyntax.Statements); }
public BoundCase(BoundExpression boundExpression, BoundStatement boundStatement, CaseSyntax syntax) : base(syntax) { BoundExpression = boundExpression; BoundStatement = boundStatement; }
private BoundCase BindCase(CaseSyntax syntax) { var boundExpression = BindExpression(syntax.Expression); var boundStatement = BindStatement(syntax.Statements); return new BoundCase(boundExpression, boundStatement, syntax); }