public void ParseQuestion(Question question) { if (question.IsParsable) { PhraseParser parser = new PhraseParser(m_keyTermsTable, m_phraseSubstitutions, m_questionWordsLookupTable, question, GetOrCreatePart); foreach (ParsedPart part in parser.Parse()) { question.ParsedParts.Add(part); } } }
public bool ParseNewOrModifiedQuestion(Question question, Action <KeyTermMatch> processKeyTermMatch) { if (question.IsParsable) { PhraseParser parser = new PhraseParser(m_keyTermsTable, m_phraseSubstitutions, m_questionWordsLookupTable, question, GetOrCreatePart); foreach (ParsedPart part in parser.Parse()) { question.ParsedParts.Add(part); } foreach (var match in parser.KeyTermsUsedForPhrase) { processKeyTermMatch(match); } return(true); } return(false); }