Exemple #1
0
        public override bool SyntaxVerify()
        {
            var symbolIndices = this.Modifierlist.Symbol.GetModifiers(new List <Token <TypeLuaParser.SymbolIndex> >());

            Modifier_list_basisproduction.ModifierVerify(symbolIndices, TypeLuaParser.SymbolIndex.Global, TypeLuaParser.SymbolIndex.Private, TypeLuaParser.SymbolIndex.Protected, TypeLuaParser.SymbolIndex.Public, TypeLuaParser.SymbolIndex.Static);
            return(base.SyntaxVerify());
        }
        public override bool SyntaxVerify()
        {
            //the class modifier
            var symbolIndices = this.Modifierlist.Symbol.GetModifiers(new List <Token <TypeLuaParser.SymbolIndex> >());

            Modifier_list_basisproduction.ModifierVerify(symbolIndices, TypeLuaParser.SymbolIndex.Public);

            //members
            var classMembers    = this.Classmemberlist.Symbol.GetClassMembers(new List <Token <Class_member_basisproduction> >());
            int staticCtorCount = 0;
            var type            = typeof(Classmember_Classctor);

            foreach (var classMember in classMembers)
            {
                if (type.IsAssignableFrom(classMember.Symbol.GetType()) && (((Classmember_Classctor)classMember.Symbol).IsStaticCtor()))
                {
                    if (++staticCtorCount > 1)
                    {
                        throw new SyntaxException("static constructor is redundant", classMember.Line, classMember.Column);
                    }
                }
            }

            return(base.SyntaxVerify());
        }
        public override bool SyntaxVerify()
        {
            var symbolIndices = this.Modifierlist.Symbol.GetModifiers(new List <Token <TypeLuaParser.SymbolIndex> >());

            Modifier_list_basisproduction.ModifierVerify(symbolIndices, TypeLuaParser.SymbolIndex.Global, TypeLuaParser.SymbolIndex.Private, TypeLuaParser.SymbolIndex.Protected, TypeLuaParser.SymbolIndex.Public, TypeLuaParser.SymbolIndex.Static, TypeLuaParser.SymbolIndex.Extern);

            if (this.Emptyabletype.Symbol.IsEmptyType())
            {
                throw new SyntaxException("field type cannot be 'void'", this.Emptyabletype.Line, this.Emptyabletype.Column);
            }

            return(base.SyntaxVerify());
        }