Example #1
0
 public override void ProcessNode(ScriptCallNode node)
 {
     foreach (NodeBase child in node.Children)
     {
         child.VisitThis(this);
     }
 }
        public override void ProcessNode(ScriptCallNode node)
        {
            ScriptNode callee = node.Script;

            if (m_tierStateStack.Peek().ReturnExpected&& callee.ReturnType == (short)IntegralValueType.Void)
            {
                throw new OnlyForDebuggingException("Return value expected from a script returning void.");
            }

            if (callee.Namespace != m_state.Namespace)
            {
                m_output.Append(CUSTOM_NAMESPACE_PREFIX);
                m_output.Append(callee.Namespace.Name);
                m_output.Append(NAMESPACE_DELIMITER);
            }
            m_output.Append(callee.Name);
            m_output.Append(OPEN_BRACKET);
            m_tierStateStack.Push(new PslInspectionTierState(PslContext.Inline, true));

            List <NodeBase> arguments         = node.Arguments;
            int             lastArgumentIndex = arguments.Count - 1;

            for (int i = 0; i <= lastArgumentIndex; i++)
            {
                arguments[i].VisitThis(this);

                if (i != lastArgumentIndex)
                {
                    m_output.Append(PARAMETER_DELIMITER);
                }
            }

            m_tierStateStack.Pop();
            m_output.Append(CLOSE_BRACKET);

            if (m_tierStateStack.Peek().Context != PslContext.Inline)
            {
                m_output.Append(STATEMENT_TERMINATOR);
            }
        }
 public override void ProcessNode(ScriptCallNode node)
 {
 }
 public abstract void ProcessNode(ScriptCallNode node);