示例#1
0
        /// <summary>
        /// Visit Markup
        /// </summary>
        /// <param name="markup">Markup to check</param>
        public override void Visit(Markup markup)
        {
            //Check identifier in designator, it should be an XHTML or an user defined function
            String identifier = markup.GetDesignator().GetIdentifier();

            if (SymbolTable.ContainsFunction(identifier))
            {
                //Check arguments
                FunctionDefinition referencedDefinition = SymbolTable.GetFunctionDefinition(identifier);

                if (referencedDefinition.GetFormals().Count != markup.GetArguments().Count)
                {   //Arity mismatch
                    ExceptionList.Add(new FunctionCallArityIncorrect(identifier));
                }
            }
            else
            {
                //Check if it is XHTML, if not its undefined
                if (!IdentifierIsXHTML(identifier) && markup.GetCallState())
                {
                    ExceptionList.Add(new UndefinedFunction(identifier));
                }
            }
        }
示例#2
0
        /// <summary>
        /// Visit Markup
        /// </summary>
        /// <param name="markup">Markup to check</param>
        public override void Visit(Markup markup)
        {
            //Check identifier in designator, it should be an XHTML or an user defined function
            String identifier = markup.GetDesignator().GetIdentifier();

            if(SymbolTable.ContainsFunction(identifier))
            {
                //Check arguments
                FunctionDefinition referencedDefinition = SymbolTable.GetFunctionDefinition(identifier);

                if(referencedDefinition.GetFormals().Count != markup.GetArguments().Count)
                {   //Arity mismatch
                    ExceptionList.Add(new FunctionCallArityIncorrect(identifier));
                }
            }
            else
            {
                //Check if it is XHTML, if not its undefined
                if (!IdentifierIsXHTML(identifier) && markup.GetCallState())
                {
                    ExceptionList.Add(new UndefinedFunction(identifier));
                }
            }
        }