Ejemplo n.º 1
0
        /// <summary>
        /// Add a matching pattern to the collection
        /// </summary>
        /// <param name="pattern">Pattern to compile</param>
        /// <param name="action">Action to invoke on successful match</param>
        /// <param name="args">Arguments used in the pattern</param>
        /// <returns>ID of the newly added pattern</returns>
        public int Add <TErlTerm>(TErlTerm pattern, PatternMatchAction action) where TErlTerm : ErlObject
        {
            int id = ++m_lastID;
            var pt = new Pattern(id, (p, t, b, args) => action(p, t.Cast <TErlTerm>(), b, args), pattern);

            m_patterns.Add(pt);
            return(id);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Add a matching pattern to the collection
        /// </summary>
        /// <typeparam name="TContext">Type of context passed to action</typeparam>
        /// <param name="context">Context passed to action</param>
        /// <param name="action">Action to invoke on successful match</param>
        /// <param name="pattern">Compiled pattern containing variables to match</param>
        /// <returns>ID of the newly added pattern</returns>
        public int Add <TContext>(TContext context, ErlObject pattern, PatternMatchAction <TContext> action)
        {
            int id = ++m_lastID;
            var pt = new Pattern(id, (p, t, b, args) => action(context, p, t, b, args), pattern);

            m_patterns.Add(pt);
            return(id);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Add a matching pattern to the collection
 /// </summary>
 /// <typeparam name="TContext">Type of context passed to action</typeparam>
 /// <param name="context">Context passed to action</param>
 /// <param name="pattern">Pattern to compile</param>
 /// <param name="action">Action to invoke on successful match</param>
 /// <returns>ID of the newly added pattern</returns>
 public int Add <TContext>(TContext context, string pattern, PatternMatchAction <TContext> action)
 {
     return(Add(context, ErlObject.Format(pattern), action));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Add a matching pattern to the collection
 /// </summary>
 /// <param name="pattern">Pattern to compile</param>
 /// <param name="action">Action to invoke on successful match</param>
 /// <returns>ID of the newly added pattern</returns>
 public int Add(string pattern, PatternMatchAction action)
 {
     return(Add(ErlObject.Format(pattern), action));
 }
Ejemplo n.º 5
0
 public Pattern(int id, PatternMatchAction b, string pattern, params object[] args)
 {
     ID = id; Action = b; Term = Object.Format(pattern, args);
 }
Ejemplo n.º 6
0
 public Pattern(int id, PatternMatchAction b, Erlang.Object p)
 {
     ID = id; Action = b; Term = p;
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Add a matching pattern to the collection
 /// </summary>
 /// <typeparam name="TContext">Type of context passed to action</typeparam>
 /// <param name="context">Context passed to action</param>
 /// <param name="pattern">Pattern to compile</param>
 /// <param name="action">Action to invoke on successful match</param>
 /// <returns>ID of the newly added pattern</returns>
 public int Add <TContext, TErlTerm>(TContext context, string pattern,
                                     PatternMatchAction <TContext, TErlTerm> action
                                     ) where TErlTerm : ErlObject
 {
     return(Add(context, ErlObject.Format(pattern).Cast <TErlTerm>(), action));
 }