コード例 #1
0
ファイル: AstPrinter.cs プロジェクト: chhoumann/p4
 public void Visit(MapTypeNode mapTypeNode)
 {
     sb.AppendLine("Map");
 }
コード例 #2
0
 public void Visit(MapTypeNode mapTypeNode)
 {
 }
コード例 #3
0
ファイル: Parser.cs プロジェクト: knat/SData
 private bool MapType(NamespaceNode ns, out MapTypeNode result)
 {
     Token tk;
     if (Keyword(ParserConstants.MapKeyword, out tk))
     {
         TokenExpected('<');
         var key = (GlobalTypeRefNode)LocalTypeExpected(ns, LocalTypeFlags.GlobalTypeRef);
         TokenExpected(',');
         var value = LocalTypeExpected(ns, LocalTypeFlags.GlobalTypeRef | LocalTypeFlags.Nullable | LocalTypeFlags.List | LocalTypeFlags.Set | LocalTypeFlags.Map);
         TokenExpected('>');
         result = new MapTypeNode(ns, tk.TextSpan, key, value);
         return true;
     }
     result = null;
     return false;
 }
コード例 #4
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);
        }