Query queries the interpreter's state.
(query ast.Atom)
| 236 | |
| 237 | // Query queries the interpreter's state. |
| 238 | func (i *Interpreter) Query(query ast.Atom) ([]ast.Term, error) { |
| 239 | var results []ast.Term |
| 240 | // Query simple store |
| 241 | i.simpleStore.GetFacts(query, func(a ast.Atom) error { |
| 242 | results = append(results, a) |
| 243 | return nil |
| 244 | }) |
| 245 | // Query temporal store |
| 246 | i.temporalStore.GetAllFacts(query, func(tf factstore.TemporalFact) error { |
| 247 | // Capture interval variable to take address |
| 248 | interval := tf.Interval |
| 249 | results = append(results, ast.TemporalAtom{Atom: tf.Atom, Interval: &interval}) |
| 250 | return nil |
| 251 | }) |
| 252 | return results, nil |
| 253 | } |
| 254 | |
| 255 | // QueryInteractive parses query string, queries the interpreter's state, returns |
| 256 | // results formatted as strings. |