Esempio n. 1
0
 /// <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));
 }
Esempio n. 2
0
 /// <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)
 {
 }
Esempio n. 3
0
        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);
        }