Package org.apache.flex.compiler.common

Examples of org.apache.flex.compiler.common.ModifiersSet


     * Ensure that a definition does not have the same modifier more than once
     */
    public void checkForDuplicateModifiers(BaseDefinitionNode bdn)
    {
        ModifiersContainerNode mcn = bdn.getModifiersContainer();
        ModifiersSet modifierSet = bdn.getModifiers();
        if( mcn != null && modifierSet != null )
        {
            int modifierNodeCount = mcn.getChildCount();
            if( modifierNodeCount > modifierSet.getAllModifiers().length )
            {
                ModifiersSet tempSet = new ModifiersSet();
                // More children than modifiers - must have dups
                for( int i = 0; i < modifierNodeCount; ++i )
                {
                    IASNode node = mcn.getChild(i);
                    if( node instanceof ModifierNode )
                    {
                        ModifierNode modNode = (ModifierNode)node;
                        if( tempSet.hasModifier(modNode.getModifier()) )
                        {
                            currentScope.addProblem(new DuplicateAttributeProblem(modNode, modNode.getModifierString()));
                        }
                        tempSet.addModifier(modNode);
                    }
                }
            }
        }
    }
View Full Code Here


     *  Check a variable declaration.
     */
    public void checkVariableDeclaration(IASNode iNode)
    {
        VariableNode var = (VariableNode)iNode;
        ModifiersSet modifiersSet = var.getModifiers();

        boolean isInFunction = SemanticUtils.isInFunction(iNode);
        
        if (isInFunction)
        {
            checkForNamespaceInFunction(var, currentScope);
        }
       
        //  Variable decls inside methods can't have attributes other than namespaces.
        if ( isInFunction && modifiersSet != null)
        {
            IASNode site = var.getNameExpressionNode();
            for ( ASModifier modifier : modifiersSet.getAllModifiers() )
            {
                if( modifier == ASModifier.NATIVE )
                {
                    currentScope.addProblem(new NativeVariableProblem(site));
                }
View Full Code Here

     */
    public ModifiersContainerNode()
    {
        super();
       
        modifiersSet = new ModifiersSet();
    }
View Full Code Here

    /**
     * validate the modifiers used on a function decl.
     */
    protected void verifyFunctionModifiers(FunctionNode f)
    {
        ModifiersSet modifiersSet = f.getModifiers();
        if (modifiersSet == null)
            return;

        ASModifier[] modifiers = modifiersSet.getAllModifiers();
        IExpressionNode site = f.getNameExpressionNode();
        for (ASModifier modifier : modifiers)
        {
            verifyModifier(site, modifier);
        }
View Full Code Here

    /**
     * validate the modifiers used on a var decl
     */
    protected void verifyVariableModifiers(VariableNode v)
    {
        ModifiersSet modifiersSet = v.getModifiers();
        if (modifiersSet == null)
            return;

        ASModifier[] modifiers = modifiersSet.getAllModifiers();
        IExpressionNode site = v.getNameExpressionNode();
        for (ASModifier modifier : modifiers)
        {
            // native on a variable generates a different error
            if (modifier == ASModifier.NATIVE)
View Full Code Here

    /**
     * validate the modifiers used on a class decl
     */
    protected void verifyClassModifiers(ClassNode c)
    {
        ModifiersSet modifiersSet = c.getModifiers();
        if (modifiersSet == null)
            return;

        ASModifier[] modifiers = modifiersSet.getAllModifiers();
        IExpressionNode site = c.getNameExpressionNode();
        for (ASModifier modifier : modifiers)
        {
            // final allowed on a class
            if( modifier == ASModifier.FINAL || modifier == ASModifier.DYNAMIC)
View Full Code Here

    /**
     * Validate the modifiers used on an interface decl
     */
    protected void verifyInterfaceModifiers(InterfaceNode i)
    {
        ModifiersSet modifiersSet = i.getModifiers();
        if (modifiersSet == null)
            return;

        ASModifier[] modifiers = modifiersSet.getAllModifiers();
        IExpressionNode site = i.getNameExpressionNode();
        for (ASModifier modifier : modifiers)
        {
            // final generates a different error for an interface
            if( modifier == ASModifier.FINAL || modifier == ASModifier.DYNAMIC)
View Full Code Here

    }

    @Override
    public ModifiersSet getModifiers()
    {
        ModifiersSet result = new ModifiersSet();
        if ((flags & FLAG_OVERRIDE) != 0)
            result.addModifier(ASModifier.OVERRIDE);
        if ((flags & FLAG_STATIC) != 0)
            result.addModifier(ASModifier.STATIC);
        if ((flags & FLAG_FINAL) != 0)
            result.addModifier(ASModifier.FINAL);
        if ((flags & FLAG_DYNAMIC) != 0)
            result.addModifier(ASModifier.DYNAMIC);
        if ((flags & FLAG_NATIVE) != 0)
            result.addModifier(ASModifier.NATIVE);
        return result;
    }
View Full Code Here

    }
    /**
     */
    protected void verifyFunctionModifiers(FunctionNode f)
    {
        ModifiersSet modifiersSet = f.getModifiers();
        if (modifiersSet == null)
            return;

        IExpressionNode site = f.getNameExpressionNode();
        if( modifiersSet.hasModifier(ASModifier.STATIC) )
        {
            if( modifiersSet.hasModifier(ASModifier.FINAL) )
            {
                classScope.addProblem(new FinalOutsideClassProblem(site) );
            }
            if( modifiersSet.hasModifier(ASModifier.OVERRIDE) )
            {
                classScope.addProblem(new StaticAndOverrideProblem(site) );
            }
            if( modifiersSet.hasModifier(ASModifier.DYNAMIC) )
            {
                classScope.addProblem(new DynamicNotOnClassProblem(site) );
            }
            if( modifiersSet.hasModifier(ASModifier.VIRTUAL) )
            {
                classScope.addProblem(new VirtualOutsideClassProblem(site) );
            }
        }
        classScope.getMethodBodySemanticChecker().checkForDuplicateModifiers(f);
View Full Code Here

        return;
    }

    protected void verifyVariableModifiers(VariableNode v)
    {
        ModifiersSet modifiersSet = v.getModifiers();
        if (modifiersSet == null)
            return;

        ASModifier[] modifiers = modifiersSet.getAllModifiers();
        IExpressionNode site = v.getNameExpressionNode();
        for (ASModifier modifier : modifiers)
        {
            if( modifier == ASModifier.NATIVE )
            {
View Full Code Here

TOP

Related Classes of org.apache.flex.compiler.common.ModifiersSet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.