Example #1
0
 public override object VisitCondition([NotNull] ChatParser.ConditionContext context)
 {
     if (context.HasUserMentioned() != null)
     {
         string username = context.huser().GetText();
         if (username != "<missing STRING>")
         {
             return(Retrievers.HasUserMentioned(username));
         }
         else
         {
             return(new List <int>());
         }
     }
     else if (context.ByUser() != null)
     {
         string username = context.huser().GetText();
         if (username != "<missing STRING>")
         {
             return(Retrievers.HasUser(username));
         }
         else
         {
             return(new List <int>());
         }
     }
     else if (context.HasLocation() != null)
     {
         return(Retrievers.HasNERTag(NER.LOC));
     }
     else if (context.HasOrganization() != null)
     {
         return(Retrievers.HasNERTag(NER.ORG));
     }
     else if (context.HasTime() != null)
     {
         return(Retrievers.HasNERTag(NER.TIME));
     }
     else if (context.HasURL() != null)
     {
         return(Retrievers.HasNERTag(NER.URL));
     }
     else if (context.HasQuestion() != null)
     {
         return(Retrievers.HasQuestion());
     }
     else if (context.HasWordOfDict() != null)
     {
         string        dictname = context.hdict().GetText();
         List <string> list     = new List <string>();
         if (dictname != "<missing STRING>")
         {
             if (UserDictsContainer.UserDicts.TryGetValue(dictname, out list))
             {
                 return(Retrievers.HasWordOfList(list));
             }
             else
             {
                 return(null);
             }
         }
         else
         {
             return(null);
         }
     }
     else if (context.HasDate() != null)
     {
         return(Retrievers.HasNERTag(NER.DATE));
     }
     else
     {
         // Message about incorrect query
         return(null);
     }
 }
 /// <summary>
 /// Visit a parse tree produced by <see cref="ChatParser.condition"/>.
 /// <para>
 /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
 /// on <paramref name="context"/>.
 /// </para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 /// <return>The visitor result.</return>
 public virtual Result VisitCondition([NotNull] ChatParser.ConditionContext context)
 {
     return(VisitChildren(context));
 }