예제 #1
0
        public override void EnterClass_declaration(DcParser.Class_declarationContext context)
        {
            _currentClass = new DcClass(_dcFile, context.name.Text, false, false);

            // Add all our parents
            var parents = context.parents;

            while (parents != null)
            {
                if (!_dcFile.TryGetClassByName(parents.name.Text, out var parent))
                {
                    throw new Exception($"Unknown parent: {parents.name.Text}");
                }

                _currentClass.AddParent(parent);
                parents = parents.next;
            }
        }
예제 #2
0
 public override void ExitClass_declaration(DcParser.Class_declarationContext context)
 {
     _dcFile.AddClass(_currentClass);
     _currentClass = null;
 }
예제 #3
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="DcParser.class_declaration"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitClass_declaration([NotNull] DcParser.Class_declarationContext context)
 {
 }