/// <summary> /// Visit a parse tree produced by <see cref="DazelParser.gameObjectContent"/>. /// <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 VisitGameObjectContent([NotNull] DazelParser.GameObjectContentContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="DazelParser.gameObjectContent"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitGameObjectContent([NotNull] DazelParser.GameObjectContentContext context) { }
public GameObjectContentNode VisitGameObjectContent(DazelParser.GameObjectContentContext context) { GameObjectContentTypeNode gameObjectContentTypeNode; switch (context.gameObjectContentType.Type) { case DazelLexer.MAP: gameObjectContentTypeNode = new MapTypeNode() { Token = context.Start }; break; case DazelLexer.ONSCREENENTERED: gameObjectContentTypeNode = new OnScreenEnteredTypeNode() { Token = context.Start }; break; case DazelLexer.ENTITIES: gameObjectContentTypeNode = new EntitiesTypeNodeNode() { Token = context.Start }; break; case DazelLexer.EXITS: gameObjectContentTypeNode = new ExitsTypeNodeNode() { Token = context.Start }; break; case DazelLexer.DATA: gameObjectContentTypeNode = new DataTypeNodeNode() { Token = context.Start }; break; case DazelLexer.PATTERN: gameObjectContentTypeNode = new PatternTypeNode() { Token = context.Start }; break; default: throw new ArgumentException("Invalid content type."); } GameObjectContentNode contentNode = new GameObjectContentNode() { Token = context.Start, Statements = VisitStatementBlock(context.statementBlock()), TypeNode = gameObjectContentTypeNode, }; return(contentNode); }