/// <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); }
/// <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); }
/// <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)); }
/// <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)); }
public Pattern(int id, PatternMatchAction b, string pattern, params object[] args) { ID = id; Action = b; Term = Object.Format(pattern, args); }
public Pattern(int id, PatternMatchAction b, Erlang.Object p) { ID = id; Action = b; Term = p; }
/// <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)); }