Esempio n. 1
0
 public override void ExitClassDefine([NotNull] ClassDefineContext context)
 {
     base.ExitClassDefine(context);
     Log("ExitClassDefine");
     if (phase == Phase.Building)
     {
         symbolTableCreator.ExitClassDefine(context);
     }
     else
     {
         symbolTableTraverser.ExitClassDefine(context);
         semanticErrorChecker.ExitClassDefine(context);
     }
 }
        public override ASTN VisitClassDefine([NotNull] ClassDefineContext context)
        {
            ClassNode node = new ClassNode(context)
            {
                features = new List <FeatureNode>(),
                Inherit  = context.TYPE(1) == null ? TypeNode.OBJECT : new TypeNode(context.TYPE(1).Symbol.Line,
                                                                                    context.TYPE(1).Symbol.Column, context.TYPE(1).GetText()),
                type = new TypeNode(context.TYPE(0).Symbol.Line, context.TYPE(0).Symbol.Column, context.TYPE(0).GetText())
            };

            foreach (var feat in context.feature())
            {
                node.features.Add(VisitFeature(feat) as FeatureNode);
            }

            return(node);
        }
Esempio n. 3
0
 void Visit(ClassDefineContext cdcontext)
 {
 }