public override Node VisitClass([NotNull] coolgrammarParser.ClassContext context) { List <Method_Def> met = new List <Method_Def>(); List <Attr_Def> attr = new List <Attr_Def>(); foreach (var item in context.feature()) { var v = Visit(item); if (v is Method_Def) { met.Add((Method_Def)v); } else { attr.Add((Attr_Def)v); } } string father; if (context.TYPE().Length > 1) { father = context.TYPE(1).GetText(); } else { father = "Object"; } return(new Class_Def(new Type_cool(context.TYPE(0).GetText()), new Type_cool(father), new Lista <Method_Def>(met), new Lista <Attr_Def>(attr))); }
/// <summary> /// Visit a parse tree produced by <see cref="coolgrammarParser.class"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitClass([NotNull] coolgrammarParser.ClassContext context) { return(VisitChildren(context)); }