Beispiel #1
0
        private IfStatementBodyNode BindIfStatementBody(IfStatementNode parent, Scanner <CommonTree> parentChildren)
        {
            return(CreateNode <IfStatementBodyNode>(parent, parentChildren, (node, children) =>
            {
                switch (node.CompilerNode.GetAstType())
                {
                case AstType.If:
                    node.BodyKind = IfStatementBodyKind.If;
                    break;

                case AstType.ElseIf:
                    node.BodyKind = IfStatementBodyKind.ElseIf;
                    break;

                case AstType.Else:
                    node.BodyKind = IfStatementBodyKind.Else;
                    break;
                }

                if (node.BodyKind != IfStatementBodyKind.Else)
                {
                    children.Next();
                    node.Condition = BindExpression(node, children);
                }

                children.Next();
                BindStatementsToBlock(node, children);
            }));
        }
 public virtual T VisitIfStatement(IfStatementNode node, T1 t1)
 {
     return(VisitDefault(node, t1));
 }