예제 #1
0
 public override void ExitLetIn([NotNull] LetInContext context)
 {
     base.ExitLetIn(context);
     Log("ExitLetIn");
     if (phase == Phase.Building)
     {
         symbolTableCreator.ExitLetIn(context);
     }
     else
     {
         symbolTableTraverser.ExitLetIn(context);
         semanticErrorChecker.ExitLetIn(context);
     }
 }
        public override ASTN VisitLetIn([NotNull] LetInContext context)
        {
            LetInNode node = new LetInNode(context)
            {
                propertyLet = new List <PropertyNode>(),
                exprBody    = VisitExpr(context.expr()) as ExprNode
            };

            foreach (var property in context.property())
            {
                node.propertyLet.Add(VisitProperty(property) as PropertyNode);
            }

            return(node);
        }