/// <summary> /// Exit a parse tree produced by <see cref="DDD_layout_scriptParser.object_block"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitObject_block([NotNull] DDD_layout_scriptParser.Object_blockContext context) { }
/* * * OBJECT_TYPE CURLY_O object_content CURLY_C; */ public override object VisitObject_block([NotNull] DDD_layout_scriptParser.Object_blockContext context) { DDDObject dddObject = null; switch (context.OBJECT_TYPE().GetText()) { case "circle": dddObject = new Circle(); break; case "cone": dddObject = new Cone(); break; case "cube": dddObject = new Cube(); break; case "cuboid": dddObject = new Cuboid(); break; case "cylinder": dddObject = new Cylinder(); break; case "hemisphere": dddObject = new Hemisphere(); break; case "quad": dddObject = new Quad(); break; case "sphere": dddObject = new Sphere(); break; case "triangle": dddObject = new Triangle(); break; default: alerts.Add(new error(context.Start.Line, $"Undefined object type {context.OBJECT_TYPE().GetText()}")); return(null); } AttributeList attributeList = (AttributeList)VisitObject_content(context.object_content()); if (attributeList == null) { return(null); } if (dddObject.SetAttributes(attributeList) == false) { alerts.Add(new warning(context.Start.Line, $"For '{context.OBJECT_TYPE().GetText()}' [{dddObject.WarningMsg}] attributes are defined. Others will be ignored. " + $"Missing required(*) attributes will default to 0 or [0, 0, 0]")); } if (dddObject != null) { DDDObjects.Add(dddObject); } return(null); }
/// <summary> /// Visit a parse tree produced by <see cref="DDD_layout_scriptParser.object_block"/>. /// <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 VisitObject_block([NotNull] DDD_layout_scriptParser.Object_blockContext context) { return(VisitChildren(context)); }