示例#1
0
        public static AttributeNode Parse(Lexer lex)
        {
            AttributeNode n = new AttributeNode();

            lex.Dequeue(TokenType.LBracket);
            n.Identifier = TRefNode.Parse(lex);
            lex.Dequeue(TokenType.LParen);

            //TODO: Add parameter parsing

            lex.Dequeue(TokenType.RParen);
            lex.Dequeue(TokenType.RBracket);

            return(n);
        }
示例#2
0
        public static bool IsPresent(Lexer lex)
        {
            if (AttributeNode.IsPresent(lex))
            {
                return(true);
            }

            var tkn = lex.Peek();

            if (tkn.Type == TokenType.Keyword && tkn.Value == "public")
            {
                return(true);
            }

            if (ClassDefNode.IsPresent(lex))
            {
                return(true);
            }

            if (StructDefNode.IsPresent(lex))
            {
                return(true);
            }

            if (EnumDefNode.IsPresent(lex))
            {
                return(true);
            }

            if (InterfaceDefNode.IsPresent(lex))
            {
                return(true);
            }

            return(false);
        }